hbf / miniball

Fast computation of the smallest enclosing ball of a point set, in low or moderately high dimensions.
133 stars 41 forks source link

c# port of the java version #34

Closed devel0 closed 1 year ago

devel0 commented 1 year ago

This PR adds c# support for the miniball library. Complete of unit tests ( 11 passed, 3 failed, 1 skipped ) like the Java implementation results, with an example like the c++ version and the Getting Started doc.

devel0 commented 1 year ago

Thanks you, I added to acknowledgements.

This happens from java test

cd java
mvn test

results

Failed tests:   test_cocircular_points_large_radius_2(com.dreizak.miniball.highdim.MiniballTest)
  test_simplex_10(com.dreizak.miniball.highdim.MiniballTest)
  test_simplex_15(com.dreizak.miniball.highdim.MiniballTest)

Tests run: 15, Failures: 3, Errors: 0, Skipped: 1

and corresponding c#

cd csharp
dotnet test

resulting

Starting test execution, please wait...
A total of 1 test files matched the specified pattern.
[xUnit.net 00:00:00.54]     test.MiniballTest.test_cocircular_points_large_radius_2 [FAIL]
[xUnit.net 00:00:00.55]     test.MiniballTest.test_schnarz [SKIP]
[xUnit.net 00:00:00.95]     test.MiniballTest.test_simplex_15 [FAIL]
[xUnit.net 00:00:00.97]     test.MiniballTest.test_simplex_10 [FAIL]
...
Failed!  - Failed:     3, Passed:    11, Skipped:     1, Total:    15, Duration: 703 ms - test.dll (net7.0)

details follows:

test_cocircular_points_large_radius_2

data

image

test_simplex_15

data

image

test_simplex_10

data

image

notes on how to debug test c

prerequisites

open folder miniball then install suggested extensions Omnisharp then reload and answer yes to create default assets choosing example or test project ( this will create .vscode/tasks.json and .vscode/launch.json ); then open csharp/test/MiniballTest.cs and run tests using the codelen Debug All Tests

image

shortcuts:

devel0 commented 1 year ago

From what I can see on my side, for the purpose I used this port, it seems to work nicely, following a sample from an opensource project I'm working on about a multiplatform opengl toolkit, as can see the sphere contains the inner blue tube object:

image

hbf commented 1 year ago

Ah, I see, they fail in Java as well. That definitely needs some cleanup/addressing some time but I don’t want you to be blocked by this.

Not sure you can merge, if not lmk when it’s ready from your side and I’ll merge.

devel0 commented 1 year ago

I have no more commit, for me it can be merged. Thanks you.