in skiko/src/commonTest/kotlin/org/jetbrains/skia/PathTests.kt [196:227]
fun utilsTest() {
assertFalse(Path.isLineDegenerate(Point(0f, 0f), Point(10f, 0f), false))
assertTrue(Path.isLineDegenerate(Point(0f, 0f), Point(0f, 0f), true))
assertTrue(Path.isLineDegenerate(Point(0f, 0f), Point(0f, 0f), false))
assertFalse(Path.isLineDegenerate(Point(0f, 0f), Point(0f, 1e-13f), true))
assertFalse(Path.isQuadDegenerate(Point(0f, 0f), Point(10f, 0f), Point(0f, 0f), false))
assertTrue(Path.isQuadDegenerate(Point(0f, 0f), Point(0f, 0f), Point(0f, 0f), false))
assertFalse(Path.isCubicDegenerate(Point(0f, 0f), Point(10f, 0f), Point(0f, 0f), Point(0f, 0f), false))
assertTrue(Path.isCubicDegenerate(Point(0f, 0f), Point(0f, 0f), Point(0f, 0f), Point(0f, 0f), false))
assertContentCloseEnough(
arrayOf(Point(0f, 20f), Point(6.666667f, 13.333334f)),
Path.convertConicToQuads(Point(0f, 20f), Point(20f, 0f), Point(40f, 20f), 0.5f, 1)
)
assertContentCloseEnough(
arrayOf(
Point(0f, 20f),
Point(3.0940108f, 16.90599f),
Point(8.4529950f, 15.119661f),
Point(13.811979f, 13.333334f)
),
Path.convertConicToQuads(Point(0f, 20f), Point(20f, 0f), Point(40f, 20f), 0.5f, 2)
)
Path().lineTo(40f, 40f).use { p ->
val g1 = p.generationId
p.lineTo(10f, 40f)
val g2 = p.generationId
assertNotEquals(g1, g2)
p.fillMode = PathFillMode.EVEN_ODD
val g3 = p.generationId
assertEquals(g2, g3)
}
}