|
|
|
@ -1,7 +1,9 @@
|
|
|
|
|
package me.eater.test.threedom.dom
|
|
|
|
|
|
|
|
|
|
import io.kotest.core.spec.style.StringSpec
|
|
|
|
|
import io.kotest.matchers.collections.*
|
|
|
|
|
import io.kotest.matchers.collections.shouldContainExactly
|
|
|
|
|
import io.kotest.matchers.collections.shouldHaveSingleElement
|
|
|
|
|
import io.kotest.matchers.collections.shouldHaveSize
|
|
|
|
|
import io.kotest.matchers.shouldBe
|
|
|
|
|
import me.eater.threedom.dom.Document
|
|
|
|
|
import me.eater.threedom.dom.IDocument
|
|
|
|
@ -50,7 +52,7 @@ class PositionTest : StringSpec({
|
|
|
|
|
doc.findAt(-10, 40, 0) shouldHaveSingleElement nodeThree
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
"ensure in selection works" {
|
|
|
|
|
"ensure in region works" {
|
|
|
|
|
val doc: IDocument = Document()
|
|
|
|
|
val node = doc.createNode<PlainNode>()
|
|
|
|
|
val nodeTwo = doc.createNode<PlainNode>()
|
|
|
|
@ -70,4 +72,25 @@ class PositionTest : StringSpec({
|
|
|
|
|
resultTwo shouldHaveSize 2
|
|
|
|
|
resultTwo shouldContainExactly listOf(nodeTwo, nodeThree)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
"ensure in range works" {
|
|
|
|
|
val doc: IDocument = Document()
|
|
|
|
|
val node = doc.createNode<PlainNode>()
|
|
|
|
|
val nodeTwo = doc.createNode<PlainNode>()
|
|
|
|
|
val nodeThree = doc.createNode<PlainNode>()
|
|
|
|
|
doc.addNode(node)
|
|
|
|
|
node.addNode(nodeTwo)
|
|
|
|
|
nodeTwo.addNode(nodeThree)
|
|
|
|
|
node.model { setTranslation(10, 0, 10) }
|
|
|
|
|
nodeTwo.model { setTranslation(-10, 20, 0) }
|
|
|
|
|
nodeThree.model { setTranslation(0, 20, 0) }
|
|
|
|
|
|
|
|
|
|
val result = doc.findInRange(Vector3d(0, 0, 0), 20).toList()
|
|
|
|
|
result shouldHaveSize 1
|
|
|
|
|
result shouldContainExactly listOf(node)
|
|
|
|
|
|
|
|
|
|
val resultTwo = doc.findInRange(Vector3d(0, 20, 10), 20).toList()
|
|
|
|
|
resultTwo shouldHaveSize 2
|
|
|
|
|
resultTwo shouldContainExactly listOf(nodeTwo, nodeThree)
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|