search for shortest path algorithm

This commit is contained in:
Artyom Degtyarev 2023-03-24 10:28:02 +03:00
parent 81213eb943
commit ea5305c8d8
2 changed files with 5 additions and 28 deletions

View File

@ -7,7 +7,9 @@ package space.kscience.kmath.trajectory
import space.kscience.kmath.geometry.Circle2D import space.kscience.kmath.geometry.Circle2D
import space.kscience.kmath.geometry.Euclidean2DSpace.vector import space.kscience.kmath.geometry.Euclidean2DSpace.vector
import space.kscience.kmath.geometry.equalsFloat
import kotlin.test.Test import kotlin.test.Test
import kotlin.test.assertTrue
class DubinsTest { class DubinsTest {
@Test @Test
@ -31,7 +33,7 @@ class DubinsTest {
finalRadius, finalRadius,
obstacles) obstacles)
val length = pathLength(shortestPath(outputTangents)) val length = pathLength(shortestPath(outputTangents))
println(length) assertTrue(length.equalsFloat(27.2113183))
} }
@Test @Test
@ -65,19 +67,7 @@ class DubinsTest {
finalRadius, finalRadius,
obstacles) obstacles)
val length = pathLength(shortestPath(paths)) val length = pathLength(shortestPath(paths))
println(length) assertTrue(length.equalsFloat(28.9678224))
for (path in paths) {
println(pathLength(path))
println(path.size)
for (tangent in path) {
// println(tangent.route)
// println(tangent.startCircle)
// println(tangent.endCircle)
// println(Euclidean2DSpace.norm(tangent.lineSegment.end - tangent.lineSegment.begin))
}
println()
println()
}
} }
@Test @Test
fun equalCircles() { fun equalCircles() {

View File

@ -12,6 +12,7 @@ import space.kscience.kmath.geometry.LineSegment
import space.kscience.kmath.geometry.equalsLine import space.kscience.kmath.geometry.equalsLine
import kotlin.test.Test import kotlin.test.Test
import kotlin.test.assertEquals import kotlin.test.assertEquals
import kotlin.test.assertFailsWith
import kotlin.test.assertTrue import kotlin.test.assertTrue
class TangentTest { class TangentTest {
@ -60,18 +61,4 @@ class TangentTest {
val c2 = Circle2D(vector(0.0, 0.0), 1.0) val c2 = Circle2D(vector(0.0, 0.0), 1.0)
assertEquals(emptyMap(), c1.tangentsToCircle(c2)) assertEquals(emptyMap(), c1.tangentsToCircle(c2))
} }
//
// @Test
// fun nonExistingTangents() {
// assertFailsWith<NotImplementedError> {
// val c1 = Circle2D(vector(0.0, 0.0), 1.0)
// val c2 = Circle2D(vector(2.0, 0.0), 1.0)
// c1.tangentsToCircle(c2)
// }
// assertFailsWith<NotImplementedError> {
// val c1 = Circle2D(vector(0.0, 0.0), 1.0)
// val c2 = Circle2D(vector(0.5, 0.0), 1.0)
// c1.tangentsToCircle(c2)
// }
// }
} }