Remove Spek add Kotest
This commit is contained in:
@@ -7,10 +7,10 @@ openrndr = { require = "[0.4.2, 0.5.0)" }
|
|||||||
kotlinxCoroutines = "1.7.3"
|
kotlinxCoroutines = "1.7.3"
|
||||||
kotlinLogging = "3.0.0"
|
kotlinLogging = "3.0.0"
|
||||||
kotlinxSerialization = "1.6.1"
|
kotlinxSerialization = "1.6.1"
|
||||||
|
kotest = "5.8.0"
|
||||||
dokka = "1.7.10"
|
dokka = "1.7.10"
|
||||||
nebulaRelease = "18.0.4"
|
nebulaRelease = "18.0.4"
|
||||||
gradleNexusPublish = "2.0.0-rc-1"
|
gradleNexusPublish = "2.0.0-rc-1"
|
||||||
spek = "2.0.19"
|
|
||||||
boofcv = "1.0.0"
|
boofcv = "1.0.0"
|
||||||
kluent = "1.73"
|
kluent = "1.73"
|
||||||
junitJupiter = "5.9.2"
|
junitJupiter = "5.9.2"
|
||||||
@@ -43,6 +43,11 @@ kotlin-gradle-plugin = { group = "org.jetbrains.kotlin", name = "kotlin-gradle-p
|
|||||||
kotlin-serialization-gradle-plugin = { group = "org.jetbrains.kotlin", name = "kotlin-serialization", version.ref = "kotlin" }
|
kotlin-serialization-gradle-plugin = { group = "org.jetbrains.kotlin", name = "kotlin-serialization", version.ref = "kotlin" }
|
||||||
dokka-gradle-plugin = { group = "org.jetbrains.dokka", name = "dokka-gradle-plugin", version.ref = "dokka" }
|
dokka-gradle-plugin = { group = "org.jetbrains.dokka", name = "dokka-gradle-plugin", version.ref = "dokka" }
|
||||||
|
|
||||||
|
kotest-assertions = { group = "io.kotest", name = "kotest-assertions-core", version.ref = "kotest" }
|
||||||
|
kotest-runner = { group = "io.kotest", name = "kotest-runner-junit5", version.ref = "kotest" }
|
||||||
|
kotest-framework-engine = { group = "io.kotest", name = "kotest-framework-engine", version.ref = "kotest" }
|
||||||
|
|
||||||
|
|
||||||
openrndr-application = { group = "org.openrndr", name = "openrndr-application", version.ref = "openrndr" }
|
openrndr-application = { group = "org.openrndr", name = "openrndr-application", version.ref = "openrndr" }
|
||||||
openrndr-extensions = { group = "org.openrndr", name = "openrndr-extensions", version.ref = "openrndr" }
|
openrndr-extensions = { group = "org.openrndr", name = "openrndr-extensions", version.ref = "openrndr" }
|
||||||
openrndr-math = { group = "org.openrndr", name = "openrndr-math", version.ref = "openrndr" }
|
openrndr-math = { group = "org.openrndr", name = "openrndr-math", version.ref = "openrndr" }
|
||||||
@@ -73,8 +78,6 @@ antlr-runtime = { group = "org.antlr", name = "antlr4-runtime", version.ref = "a
|
|||||||
|
|
||||||
jupiter-api = { group = "org.junit.jupiter", name = "junit-jupiter-api", version.ref = "junitJupiter" }
|
jupiter-api = { group = "org.junit.jupiter", name = "junit-jupiter-api", version.ref = "junitJupiter" }
|
||||||
jupiter-engine = { group = "org.junit.jupiter", name = "junit-jupiter-engine", version.ref = "junitJupiter" }
|
jupiter-engine = { group = "org.junit.jupiter", name = "junit-jupiter-engine", version.ref = "junitJupiter" }
|
||||||
spek-dsl = { group = "org.spekframework.spek2", name = "spek-dsl-jvm", version.ref = "spek" }
|
|
||||||
spek-junit5 = { group = "org.spekframework.spek2", name = "spek-runner-junit5", version.ref = "spek" }
|
|
||||||
kluent = { group = "org.amshove.kluent", name = "kluent", version.ref = "kluent" }
|
kluent = { group = "org.amshove.kluent", name = "kluent", version.ref = "kluent" }
|
||||||
slf4j-simple = { group = "org.slf4j", name = "slf4j-simple", version.ref = "slf4j" }
|
slf4j-simple = { group = "org.slf4j", name = "slf4j-simple", version.ref = "slf4j" }
|
||||||
|
|
||||||
@@ -82,6 +85,8 @@ slf4j-simple = { group = "org.slf4j", name = "slf4j-simple", version.ref = "slf4
|
|||||||
kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
|
kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
|
||||||
nebula-release = { id = "nebula.release", version.ref = "nebulaRelease" }
|
nebula-release = { id = "nebula.release", version.ref = "nebulaRelease" }
|
||||||
gradle-nexus-publish = { id = "io.github.gradle-nexus.publish-plugin", version.ref = "gradleNexusPublish" }
|
gradle-nexus-publish = { id = "io.github.gradle-nexus.publish-plugin", version.ref = "gradleNexusPublish" }
|
||||||
|
kotest-multiplatform = { id = "io.kotest.multiplatform", version.ref = "kotest"}
|
||||||
|
|
||||||
|
|
||||||
[bundles]
|
[bundles]
|
||||||
jupiter = ["jupiter-api", "jupiter-engine"]
|
jupiter = ["jupiter-api", "jupiter-engine"]
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ kotlin {
|
|||||||
jvm {
|
jvm {
|
||||||
testRuns["test"].executionTask {
|
testRuns["test"].executionTask {
|
||||||
useJUnitPlatform {
|
useJUnitPlatform {
|
||||||
includeEngines("spek2")
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,19 +5,11 @@ plugins {
|
|||||||
// version was used. If openrndr were an included build, we probably wouldn't need to do this.
|
// version was used. If openrndr were an included build, we probably wouldn't need to do this.
|
||||||
// https://github.com/gradle/gradle/issues/20084
|
// https://github.com/gradle/gradle/issues/20084
|
||||||
id(libs.plugins.kotlin.serialization.get().pluginId)
|
id(libs.plugins.kotlin.serialization.get().pluginId)
|
||||||
|
alias(libs.plugins.kotest.multiplatform)
|
||||||
}
|
}
|
||||||
|
|
||||||
kotlin {
|
kotlin {
|
||||||
jvm {
|
|
||||||
testRuns["test"].executionTask {
|
|
||||||
useJUnitPlatform {
|
|
||||||
includeEngines("spek2")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
sourceSets {
|
sourceSets {
|
||||||
@Suppress("UNUSED_VARIABLE")
|
|
||||||
val commonMain by getting {
|
val commonMain by getting {
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation(project(":orx-parameters"))
|
implementation(project(":orx-parameters"))
|
||||||
@@ -30,24 +22,14 @@ kotlin {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Suppress("UNUSED_VARIABLE")
|
|
||||||
val commonTest by getting {
|
val commonTest by getting {
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation(libs.kotlin.serialization.json)
|
implementation(libs.kotlin.serialization.json)
|
||||||
|
implementation(libs.kotest.assertions)
|
||||||
|
implementation(libs.kotest.framework.engine)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Suppress("UNUSED_VARIABLE")
|
|
||||||
val jvmTest by getting {
|
|
||||||
dependencies {
|
|
||||||
implementation(libs.kluent)
|
|
||||||
implementation(libs.spek.dsl)
|
|
||||||
runtimeOnly(libs.spek.junit5)
|
|
||||||
runtimeOnly(libs.kotlin.reflect)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Suppress("UNUSED_VARIABLE")
|
|
||||||
val jvmDemo by getting {
|
val jvmDemo by getting {
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation(project(":orx-camera"))
|
implementation(project(":orx-camera"))
|
||||||
|
|||||||
@@ -1,21 +1,25 @@
|
|||||||
import org.amshove.kluent.`should be equal to`
|
package spaces
|
||||||
|
|
||||||
|
import io.kotest.core.spec.style.DescribeSpec
|
||||||
import org.openrndr.color.ColorRGBa
|
import org.openrndr.color.ColorRGBa
|
||||||
import org.openrndr.color.Linearity
|
import org.openrndr.color.Linearity
|
||||||
import org.openrndr.extra.color.palettes.rangeTo
|
import org.openrndr.extra.color.palettes.rangeTo
|
||||||
import org.spekframework.spek2.Spek
|
|
||||||
import org.spekframework.spek2.style.specification.describe
|
|
||||||
|
|
||||||
object TestMix : Spek({
|
import kotlin.test.assertEquals
|
||||||
|
import kotlin.test.assertSame
|
||||||
|
|
||||||
|
class TestMix : DescribeSpec({
|
||||||
|
|
||||||
describe("two srgb colors") {
|
describe("two srgb colors") {
|
||||||
val a = ColorRGBa.BLUE
|
val a = ColorRGBa.BLUE
|
||||||
val b = ColorRGBa.RED
|
val b = ColorRGBa.RED
|
||||||
|
|
||||||
a.linearity `should be equal to` Linearity.SRGB
|
assertEquals(Linearity.SRGB, a.linearity)
|
||||||
|
|
||||||
|
|
||||||
it("should mix properly") {
|
it("should mix properly") {
|
||||||
a.mix(b, 0.0) `should be equal to` a
|
assertSame(a, a.mix(b, 0.0))
|
||||||
a.mix(b, 1.0) `should be equal to` b
|
assertSame(b, a.mix(b, 1.0))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -24,8 +28,8 @@ object TestMix : Spek({
|
|||||||
val b = ColorRGBa.RED.toLinear()
|
val b = ColorRGBa.RED.toLinear()
|
||||||
|
|
||||||
it("should mix properly") {
|
it("should mix properly") {
|
||||||
a.mix(b, 0.0) `should be equal to` a
|
assertSame(a, a.mix(b, 0.0))
|
||||||
a.mix(b, 1.0) `should be equal to` b
|
assertSame(b, a.mix(b, 1.0))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -34,9 +38,9 @@ object TestMix : Spek({
|
|||||||
val b = ColorRGBa.RED
|
val b = ColorRGBa.RED
|
||||||
|
|
||||||
val blend = a..b blend 2
|
val blend = a..b blend 2
|
||||||
blend.size `should be equal to` 2
|
assertEquals(2, blend.size)
|
||||||
blend[0] `should be equal to` a
|
assertEquals(a, blend[0])
|
||||||
blend[1] `should be equal to` b
|
assertEquals(b, blend[1])
|
||||||
}
|
}
|
||||||
|
|
||||||
})
|
})
|
||||||
@@ -2,7 +2,6 @@ package spaces
|
|||||||
|
|
||||||
import org.openrndr.color.ColorRGBa
|
import org.openrndr.color.ColorRGBa
|
||||||
import org.openrndr.extra.color.spaces.toOKHSLa
|
import org.openrndr.extra.color.spaces.toOKHSLa
|
||||||
import org.openrndr.extra.color.spaces.toOKHSVa
|
|
||||||
import kotlin.test.Test
|
import kotlin.test.Test
|
||||||
import kotlin.test.assertTrue
|
import kotlin.test.assertTrue
|
||||||
|
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
plugins {
|
plugins {
|
||||||
org.openrndr.extra.convention.`kotlin-multiplatform`
|
org.openrndr.extra.convention.`kotlin-multiplatform`
|
||||||
|
alias(libs.plugins.kotest.multiplatform)
|
||||||
}
|
}
|
||||||
|
|
||||||
kotlin {
|
kotlin {
|
||||||
jvm {
|
jvm {
|
||||||
testRuns["test"].executionTask {
|
testRuns["test"].executionTask {
|
||||||
useJUnitPlatform {
|
useJUnitPlatform {
|
||||||
includeEngines("spek2")
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
sourceSets {
|
sourceSets {
|
||||||
@Suppress("UNUSED_VARIABLE")
|
|
||||||
val commonMain by getting {
|
val commonMain by getting {
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation(project(":orx-parameters"))
|
implementation(project(":orx-parameters"))
|
||||||
@@ -23,13 +23,17 @@ kotlin {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val commonTest by getting {
|
||||||
|
dependencies {
|
||||||
|
implementation(libs.kotest.assertions)
|
||||||
|
implementation(libs.kotest.framework.engine)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Suppress("UNUSED_VARIABLE")
|
|
||||||
val jvmTest by getting {
|
val jvmTest by getting {
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation(libs.kluent)
|
implementation(libs.kotest.assertions)
|
||||||
implementation(libs.spek.dsl)
|
implementation(libs.kotest.framework.engine)
|
||||||
runtimeOnly(libs.spek.junit5)
|
|
||||||
runtimeOnly(libs.kotlin.reflect)
|
runtimeOnly(libs.kotlin.reflect)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
26
orx-gradient-descent/src/commonTest/kotlin/TestDot.kt
Normal file
26
orx-gradient-descent/src/commonTest/kotlin/TestDot.kt
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
import io.kotest.core.spec.style.DescribeSpec
|
||||||
|
import io.kotest.matchers.equals.shouldBeEqual
|
||||||
|
import org.openrndr.extra.gradientdescent.dot
|
||||||
|
|
||||||
|
|
||||||
|
class TestDot : DescribeSpec({
|
||||||
|
describe("some vectors") {
|
||||||
|
val a = doubleArrayOf(10.0)
|
||||||
|
val b = doubleArrayOf(4.0)
|
||||||
|
dot(a, b).shouldBeEqual(40.0)
|
||||||
|
}
|
||||||
|
|
||||||
|
describe("a matrix and a vector") {
|
||||||
|
val a = arrayOf(doubleArrayOf(10.0))
|
||||||
|
val b = doubleArrayOf(1.0)
|
||||||
|
val d = dot(a, b)
|
||||||
|
d[0].shouldBeEqual(10.0)
|
||||||
|
}
|
||||||
|
|
||||||
|
describe("another matrix and a vector") {
|
||||||
|
val a = arrayOf(doubleArrayOf(1.0))
|
||||||
|
val b = doubleArrayOf(19.99999999995339)
|
||||||
|
val d = dot(a, b)
|
||||||
|
d[0].shouldBeEqual(19.99999999995339)
|
||||||
|
}
|
||||||
|
})
|
||||||
@@ -1,18 +1,16 @@
|
|||||||
import org.amshove.kluent.`should be equal to`
|
import io.kotest.core.spec.style.DescribeSpec
|
||||||
import org.amshove.kluent.`should equal`
|
import io.kotest.matchers.equals.shouldBeEqual
|
||||||
import org.openrndr.extra.gradientdescent.gradient
|
import org.openrndr.extra.gradientdescent.gradient
|
||||||
import org.spekframework.spek2.Spek
|
|
||||||
import org.spekframework.spek2.style.specification.describe
|
|
||||||
|
|
||||||
object TestGradient : Spek({
|
class TestGradient : DescribeSpec({
|
||||||
describe("a simple 1d function") {
|
describe("a simple 1d function") {
|
||||||
fun parabola(x: DoubleArray): Double {
|
fun parabola(x: DoubleArray): Double {
|
||||||
return x[0] * x[0]
|
return x[0] * x[0]
|
||||||
}
|
}
|
||||||
it("its gradient at x=0 is 0.0") {
|
it("its gradient at x=0 is 0.0") {
|
||||||
val g0 = gradient(doubleArrayOf(0.0), ::parabola)
|
val g0 = gradient(doubleArrayOf(0.0), ::parabola)
|
||||||
g0.size `should equal` 1
|
g0.size.shouldBeEqual(1)
|
||||||
g0[0] `should be equal to` 0.0
|
g0[0].shouldBeEqual(0.0)
|
||||||
}
|
}
|
||||||
it("its gradient at x=1 is ~2.0") {
|
it("its gradient at x=1 is ~2.0") {
|
||||||
val g1 = gradient(doubleArrayOf(1.0), ::parabola)
|
val g1 = gradient(doubleArrayOf(1.0), ::parabola)
|
||||||
@@ -29,8 +27,8 @@ object TestGradient : Spek({
|
|||||||
|
|
||||||
it("its gradient at x=0 is 0.0") {
|
it("its gradient at x=0 is 0.0") {
|
||||||
val g0 = gradient(doubleArrayOf(0.0, 0.0), ::parabola)
|
val g0 = gradient(doubleArrayOf(0.0, 0.0), ::parabola)
|
||||||
g0.size `should equal` 2
|
g0.size.shouldBeEqual(2)
|
||||||
g0[0] `should be equal to` 0.0
|
g0[0].shouldBeEqual(0.0)
|
||||||
}
|
}
|
||||||
|
|
||||||
it("its gradient at x=1 is ~2.0") {
|
it("its gradient at x=1 is ~2.0") {
|
||||||
@@ -1,11 +1,10 @@
|
|||||||
|
import io.kotest.core.spec.style.DescribeSpec
|
||||||
import org.openrndr.extra.gradientdescent.minimize
|
import org.openrndr.extra.gradientdescent.minimize
|
||||||
import org.spekframework.spek2.Spek
|
|
||||||
import org.spekframework.spek2.style.specification.describe
|
|
||||||
|
|
||||||
object TestMinimize : Spek({
|
class TestMinimize : DescribeSpec({
|
||||||
describe("a simple 1d function") {
|
describe("a simple 1d function") {
|
||||||
fun parabola(x: DoubleArray): Double {
|
fun parabola(x: DoubleArray): Double {
|
||||||
return (x[0]+1) * (x[0]+1)
|
return (x[0] + 1) * (x[0] + 1)
|
||||||
}
|
}
|
||||||
it("it can be minimized") {
|
it("it can be minimized") {
|
||||||
val result = minimize(doubleArrayOf(10.0), f = ::parabola)
|
val result = minimize(doubleArrayOf(10.0), f = ::parabola)
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
package org.openrndr.extra.gradientdescent
|
|
||||||
import org.amshove.kluent.`should be equal to`
|
|
||||||
import org.spekframework.spek2.Spek
|
|
||||||
import org.spekframework.spek2.style.specification.describe
|
|
||||||
|
|
||||||
object TestDot : Spek({
|
|
||||||
describe("some vectors") {
|
|
||||||
val a = doubleArrayOf(10.0)
|
|
||||||
val b = doubleArrayOf(4.0)
|
|
||||||
|
|
||||||
dot(a,b) `should be equal to` 40.0
|
|
||||||
|
|
||||||
}
|
|
||||||
describe("a matrix and a vector") {
|
|
||||||
val a = arrayOf(doubleArrayOf(10.0))
|
|
||||||
val b = doubleArrayOf(1.0)
|
|
||||||
val d = dot(a,b)
|
|
||||||
d[0] `should be equal to` 10.0
|
|
||||||
}
|
|
||||||
|
|
||||||
describe("a matrix and a vector") {
|
|
||||||
val a = arrayOf(doubleArrayOf(1.0))
|
|
||||||
val b = doubleArrayOf(19.99999999995339)
|
|
||||||
val d = dot(a,b)
|
|
||||||
d[0] `should be equal to` 19.99999999995339
|
|
||||||
}
|
|
||||||
|
|
||||||
})
|
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
import org.amshove.kluent.shouldBeNear
|
import io.kotest.core.spec.style.DescribeSpec
|
||||||
|
import io.kotest.matchers.doubles.plusOrMinus
|
||||||
|
import io.kotest.matchers.shouldBe
|
||||||
import org.openrndr.extra.gradientdescent.minimizeModel
|
import org.openrndr.extra.gradientdescent.minimizeModel
|
||||||
import org.openrndr.math.Vector2
|
import org.openrndr.math.Vector2
|
||||||
import org.spekframework.spek2.Spek
|
|
||||||
import org.spekframework.spek2.style.specification.describe
|
|
||||||
|
|
||||||
object TestMinimizeModel : Spek({
|
class TestMinimizeModel : DescribeSpec({
|
||||||
describe("a model") {
|
describe("a model") {
|
||||||
val m = object {
|
val m = object {
|
||||||
var x = 0.0
|
var x = 0.0
|
||||||
@@ -14,8 +14,8 @@ object TestMinimizeModel : Spek({
|
|||||||
minimizeModel(m) { m->
|
minimizeModel(m) { m->
|
||||||
(m.x - 4.0) * (m.x - 4.0) + (m.y - 3.0) * (m.y - 3.0)
|
(m.x - 4.0) * (m.x - 4.0) + (m.y - 3.0) * (m.y - 3.0)
|
||||||
}
|
}
|
||||||
m.x.shouldBeNear(4.0, 0.01)
|
m.x.shouldBe(4.0.plusOrMinus(0.01))
|
||||||
m.y.shouldBeNear(3.0, 0.01)
|
m.y.shouldBe(3.0.plusOrMinus(0.01))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -27,8 +27,8 @@ object TestMinimizeModel : Spek({
|
|||||||
minimizeModel(m) { m->
|
minimizeModel(m) { m->
|
||||||
(m.position.x - 4.0) * (m.position.x - 4.0) + (m.position.y - 3.0) * (m.position.y - 3.0)
|
(m.position.x - 4.0) * (m.position.x - 4.0) + (m.position.y - 3.0) * (m.position.y - 3.0)
|
||||||
}
|
}
|
||||||
m.position.x.shouldBeNear(4.0, 0.01)
|
m.position.x.shouldBe(4.0.plusOrMinus(0.01))
|
||||||
m.position.y.shouldBeNear(3.0, 0.01)
|
m.position.y.shouldBe(3.0.plusOrMinus(0.01))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -10,7 +10,6 @@ tasks.withType<KotlinCompile> {
|
|||||||
|
|
||||||
tasks.test {
|
tasks.test {
|
||||||
useJUnitPlatform {
|
useJUnitPlatform {
|
||||||
includeEngines("spek2")
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -25,7 +24,7 @@ dependencies {
|
|||||||
implementation(libs.kotlin.scriptingJSR223)
|
implementation(libs.kotlin.scriptingJSR223)
|
||||||
implementation(libs.kotlin.coroutines)
|
implementation(libs.kotlin.coroutines)
|
||||||
testImplementation(libs.kluent)
|
testImplementation(libs.kluent)
|
||||||
testImplementation(libs.spek.dsl)
|
testImplementation(libs.kotest.runner)
|
||||||
testRuntimeOnly(libs.spek.junit5)
|
testImplementation(libs.kotest.assertions)
|
||||||
testRuntimeOnly(libs.kotlin.reflect)
|
testRuntimeOnly(libs.kotlin.reflect)
|
||||||
}
|
}
|
||||||
@@ -1,18 +1,16 @@
|
|||||||
import org.amshove.kluent.`should be equal to`
|
import io.kotest.core.spec.style.DescribeSpec
|
||||||
|
import io.kotest.matchers.equals.shouldBeEqual
|
||||||
import org.openrndr.extra.olive.ScriptObjectLoader
|
import org.openrndr.extra.olive.ScriptObjectLoader
|
||||||
import org.openrndr.extra.olive.loadFromScript
|
|
||||||
import org.spekframework.spek2.Spek
|
|
||||||
import org.spekframework.spek2.style.specification.describe
|
|
||||||
|
|
||||||
object TestLoadScript : Spek({
|
class TestLoadScript : DescribeSpec({
|
||||||
|
|
||||||
describe("some script") {
|
describe("some script") {
|
||||||
val loader = ScriptObjectLoader()
|
val loader = ScriptObjectLoader()
|
||||||
|
|
||||||
val number = loader.load<Int>("5")
|
val number = loader.load<Int>("5")
|
||||||
|
|
||||||
it("should evaluate properly") {
|
it("should evaluate properly") {
|
||||||
number `should be equal to` 5
|
number shouldBeEqual 5
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -1,15 +1,14 @@
|
|||||||
import org.amshove.kluent.`should be equal to`
|
import io.kotest.core.spec.style.DescribeSpec
|
||||||
|
import io.kotest.matchers.equals.shouldBeEqual
|
||||||
import org.openrndr.extra.olive.loadFromScriptContentsKSH
|
import org.openrndr.extra.olive.loadFromScriptContentsKSH
|
||||||
import org.spekframework.spek2.Spek
|
|
||||||
import org.spekframework.spek2.style.specification.describe
|
|
||||||
|
|
||||||
object TestLoadScriptKSH : Spek({
|
class TestLoadScriptKSH : DescribeSpec({
|
||||||
|
|
||||||
describe("some script") {
|
describe("some script") {
|
||||||
val number = loadFromScriptContentsKSH<Int>("5")
|
val number = loadFromScriptContentsKSH<Int>("5")
|
||||||
|
|
||||||
it("should evaluate properly") {
|
it("should evaluate properly") {
|
||||||
number `should be equal to` 5
|
number shouldBeEqual 5
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -10,7 +10,6 @@ tasks.withType<KotlinCompile> {
|
|||||||
|
|
||||||
tasks.test {
|
tasks.test {
|
||||||
useJUnitPlatform {
|
useJUnitPlatform {
|
||||||
includeEngines("spek2")
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -20,8 +19,6 @@ dependencies {
|
|||||||
implementation(libs.openrndr.math)
|
implementation(libs.openrndr.math)
|
||||||
implementation(libs.kotlin.coroutines)
|
implementation(libs.kotlin.coroutines)
|
||||||
implementation(libs.kotlin.reflect)
|
implementation(libs.kotlin.reflect)
|
||||||
testImplementation(libs.spek.dsl)
|
|
||||||
testRuntimeOnly(libs.spek.junit5)
|
|
||||||
testRuntimeOnly(libs.kotlin.reflect)
|
testRuntimeOnly(libs.kotlin.reflect)
|
||||||
demoImplementation(libs.openrndr.dialogs)
|
demoImplementation(libs.openrndr.dialogs)
|
||||||
demoImplementation(libs.gson)
|
demoImplementation(libs.gson)
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
plugins {
|
plugins {
|
||||||
org.openrndr.extra.convention.`kotlin-multiplatform`
|
org.openrndr.extra.convention.`kotlin-multiplatform`
|
||||||
|
alias(libs.plugins.kotest.multiplatform)
|
||||||
}
|
}
|
||||||
|
|
||||||
val embedShaders = tasks.register<EmbedShadersTask>("embedShaders") {
|
val embedShaders = tasks.register<EmbedShadersTask>("embedShaders") {
|
||||||
@@ -11,17 +12,8 @@ val embedShaders = tasks.register<EmbedShadersTask>("embedShaders") {
|
|||||||
}.get()
|
}.get()
|
||||||
|
|
||||||
kotlin {
|
kotlin {
|
||||||
jvm {
|
|
||||||
testRuns["test"].executionTask {
|
|
||||||
useJUnitPlatform {
|
|
||||||
includeEngines("spek2")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
kotlin.sourceSets.getByName("commonMain").kotlin.srcDir(embedShaders.outputDir)
|
kotlin.sourceSets.getByName("commonMain").kotlin.srcDir(embedShaders.outputDir)
|
||||||
sourceSets {
|
sourceSets {
|
||||||
@Suppress("UNUSED_VARIABLE")
|
|
||||||
val commonMain by getting {
|
val commonMain by getting {
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation(libs.openrndr.math)
|
implementation(libs.openrndr.math)
|
||||||
@@ -33,16 +25,13 @@ kotlin {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Suppress("UNUSED_VARIABLE")
|
val commonTest by getting {
|
||||||
val jvmTest by getting {
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation(libs.spek.dsl)
|
implementation(libs.kotest.assertions)
|
||||||
runtimeOnly(libs.spek.junit5)
|
implementation(libs.kotest.framework.engine)
|
||||||
runtimeOnly(libs.kotlin.reflect)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Suppress("UNUSED_VARIABLE")
|
|
||||||
val jvmDemo by getting {
|
val jvmDemo by getting {
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation(project(":orx-hash-grid"))
|
implementation(project(":orx-hash-grid"))
|
||||||
|
|||||||
@@ -1,9 +1,8 @@
|
|||||||
|
import io.kotest.core.spec.style.DescribeSpec
|
||||||
import org.openrndr.extra.noise.*
|
import org.openrndr.extra.noise.*
|
||||||
import org.spekframework.spek2.Spek
|
|
||||||
import org.spekframework.spek2.style.specification.describe
|
|
||||||
import kotlin.test.assertEquals
|
import kotlin.test.assertEquals
|
||||||
|
|
||||||
object TestGradient : Spek({
|
class TestGradient : DescribeSpec({
|
||||||
describe("Noise") {
|
describe("Noise") {
|
||||||
it("has a gradient") {
|
it("has a gradient") {
|
||||||
gradient1D(::perlinLinear, 100, 0.1)
|
gradient1D(::perlinLinear, 100, 0.1)
|
||||||
@@ -1,9 +1,8 @@
|
|||||||
|
import io.kotest.core.spec.style.DescribeSpec
|
||||||
import org.openrndr.extra.noise.fastFloor
|
import org.openrndr.extra.noise.fastFloor
|
||||||
import org.spekframework.spek2.Spek
|
|
||||||
import org.spekframework.spek2.style.specification.describe
|
|
||||||
import kotlin.test.assertEquals
|
import kotlin.test.assertEquals
|
||||||
|
|
||||||
object TestMathUtils : Spek({
|
class TestMathUtils : DescribeSpec({
|
||||||
describe("Fast floor") {
|
describe("Fast floor") {
|
||||||
it("it is corrrect for 0.0") {
|
it("it is corrrect for 0.0") {
|
||||||
assertEquals(0, 0.0.fastFloor())
|
assertEquals(0, 0.0.fastFloor())
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
|
import io.kotest.core.spec.style.DescribeSpec
|
||||||
import org.openrndr.extra.noise.Random
|
import org.openrndr.extra.noise.Random
|
||||||
import org.openrndr.extra.noise.perlinQuintic
|
import org.openrndr.extra.noise.perlinQuintic
|
||||||
import org.openrndr.math.Vector4
|
import org.openrndr.math.Vector4
|
||||||
import org.spekframework.spek2.Spek
|
|
||||||
import org.spekframework.spek2.style.specification.describe
|
|
||||||
import kotlin.test.assertEquals
|
import kotlin.test.assertEquals
|
||||||
|
|
||||||
object TestVectorShortcutFunctions : Spek({
|
class TestVectorShortcutFunctions : DescribeSpec({
|
||||||
|
|
||||||
val v = Vector4(1.13, 2.74, 3.59, 4.83)
|
val v = Vector4(1.13, 2.74, 3.59, 4.83)
|
||||||
|
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
plugins {
|
plugins {
|
||||||
org.openrndr.extra.convention.`kotlin-multiplatform`
|
org.openrndr.extra.convention.`kotlin-multiplatform`
|
||||||
|
alias(libs.plugins.kotest.multiplatform)
|
||||||
}
|
}
|
||||||
|
|
||||||
kotlin {
|
kotlin {
|
||||||
@@ -10,6 +11,7 @@ kotlin {
|
|||||||
implementation(libs.openrndr.application)
|
implementation(libs.openrndr.application)
|
||||||
implementation(libs.openrndr.math)
|
implementation(libs.openrndr.math)
|
||||||
implementation(libs.kotlin.reflect)
|
implementation(libs.kotlin.reflect)
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -17,11 +19,10 @@ kotlin {
|
|||||||
@Suppress("UNUSED_VARIABLE")
|
@Suppress("UNUSED_VARIABLE")
|
||||||
val jvmTest by getting {
|
val jvmTest by getting {
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation(libs.kluent)
|
implementation(libs.kotest.assertions)
|
||||||
implementation(libs.spek.dsl)
|
implementation(libs.kotest.framework.engine)
|
||||||
runtimeOnly(libs.spek.junit5)
|
implementation(libs.kotlin.serialization.json)
|
||||||
runtimeOnly(libs.kotlin.reflect)
|
runtimeOnly(libs.kotlin.reflect)
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,12 +1,16 @@
|
|||||||
import org.amshove.kluent.*
|
import io.kotest.assertions.throwables.shouldThrowUnit
|
||||||
import org.junit.jupiter.api.Assertions.assertEquals
|
import io.kotest.core.spec.style.DescribeSpec
|
||||||
|
import io.kotest.matchers.collections.shouldBeIn
|
||||||
|
import io.kotest.matchers.doubles.plusOrMinus
|
||||||
|
import io.kotest.matchers.equals.shouldBeEqual
|
||||||
|
import io.kotest.matchers.nulls.shouldBeNull
|
||||||
|
import io.kotest.matchers.shouldBe
|
||||||
import org.openrndr.color.ColorRGBa
|
import org.openrndr.color.ColorRGBa
|
||||||
import org.openrndr.extra.parameters.*
|
import org.openrndr.extra.parameters.*
|
||||||
import org.openrndr.math.Vector2
|
import org.openrndr.math.Vector2
|
||||||
import org.openrndr.math.Vector3
|
import org.openrndr.math.Vector3
|
||||||
import org.openrndr.math.Vector4
|
import org.openrndr.math.Vector4
|
||||||
import org.spekframework.spek2.Spek
|
import kotlin.test.assertEquals
|
||||||
import org.spekframework.spek2.style.specification.describe
|
|
||||||
|
|
||||||
val a = object {
|
val a = object {
|
||||||
@DoubleParameter("a double scalar", 0.0, 1.0, order = 0)
|
@DoubleParameter("a double scalar", 0.0, 1.0, order = 0)
|
||||||
@@ -52,81 +56,83 @@ val a = object {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
object TestAnnotations : Spek({
|
class TestAnnotations : DescribeSpec({
|
||||||
describe("an annotated object") {
|
describe("an annotated object") {
|
||||||
it("has listable parameters") {
|
it("has listable parameters") {
|
||||||
val list = a.listParameters()
|
val list = a.listParameters()
|
||||||
list.size `should be equal to` 13
|
list.size shouldBeEqual 13
|
||||||
|
|
||||||
list[0].property?.name `should be equal to` "d"
|
list[0].property?.name shouldBe "d"
|
||||||
list[0].parameterType `should be equal to` ParameterType.Double
|
list[0].parameterType shouldBeEqual ParameterType.Double
|
||||||
list[0].label `should be equal to` "a double scalar"
|
list[0].label shouldBeEqual "a double scalar"
|
||||||
list[0].doubleRange?.let {
|
list[0].doubleRange?.let {
|
||||||
it.start shouldBeInRange 0.0..0.0001
|
it.start.shouldBe(0.0.plusOrMinus(0.001))
|
||||||
it.endInclusive shouldBeInRange 0.999..1.001
|
it.endInclusive.shouldBe(1.0.plusOrMinus(0.001))
|
||||||
}
|
}
|
||||||
list[0].precision `should be equal to` 3
|
list[0].precision?.shouldBeEqual(3)
|
||||||
|
|
||||||
list[1].property?.name `should be equal to` "i"
|
list[1].property?.name?.shouldBeEqual("i")
|
||||||
list[1].parameterType `should be equal to` ParameterType.Int
|
list[1].parameterType shouldBeEqual ParameterType.Int
|
||||||
list[1].label `should be equal to` "an integer scalar"
|
list[1].label shouldBeEqual "an integer scalar"
|
||||||
list[1].intRange?.let {
|
list[1].intRange?.let {
|
||||||
it.first `should be equal to` 1
|
it.first shouldBeEqual 1
|
||||||
it.last `should be equal to` 100
|
it.last shouldBeEqual 100
|
||||||
}
|
}
|
||||||
|
|
||||||
list[2].property?.name `should be equal to` "b"
|
list[2].property?.name?.shouldBeEqual("b")
|
||||||
list[2].parameterType `should be equal to` ParameterType.Boolean
|
list[2].parameterType shouldBeEqual ParameterType.Boolean
|
||||||
list[2].label `should be equal to` "a boolean parameter"
|
list[2].label shouldBeEqual "a boolean parameter"
|
||||||
list[2].precision `should be equal to` null
|
list[2].precision?.shouldBeNull()
|
||||||
|
|
||||||
list[3].parameterType `should be equal to` ParameterType.Action
|
list[3].parameterType shouldBeEqual ParameterType.Action
|
||||||
list[3].property `should be equal to` null
|
list[3].property?.shouldBeNull()
|
||||||
list[3].label `should be equal to` "an action parameter"
|
list[3].label shouldBeEqual "an action parameter"
|
||||||
|
|
||||||
/* test if we can call the annotated function, this is performed by raising an expected exception in the
|
/* test if we can call the annotated function, this is performed by raising an expected exception in the
|
||||||
function in the annotated function.
|
function in the annotated function.
|
||||||
*/
|
*/
|
||||||
invoking {
|
shouldThrowUnit<IllegalStateException> {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
list[3].function?.call(a)
|
list[3].function?.call(a)
|
||||||
} catch (e: java.lang.reflect.InvocationTargetException) {
|
} catch (e: java.lang.reflect.InvocationTargetException) {
|
||||||
/* this unpacks the exception that is wrapped in the ITExc */
|
/* this unpacks the exception that is wrapped in the ITExc */
|
||||||
throw(e.targetException)
|
throw (e.targetException)
|
||||||
}
|
}
|
||||||
} `should throw` IllegalStateException::class withMessage "this is to test if this function can be called"
|
}
|
||||||
|
|
||||||
list[4].parameterType `should be equal to` ParameterType.Text
|
|
||||||
list[4].property?.name `should be equal to` "t"
|
|
||||||
list[4].label `should be equal to` "a text parameter"
|
|
||||||
|
|
||||||
list[5].parameterType `should be equal to` ParameterType.Color
|
list[4].parameterType shouldBeEqual ParameterType.Text
|
||||||
list[5].property?.name `should be equal to` "c"
|
list[4].property?.name?.shouldBeEqual("t")
|
||||||
list[5].label `should be equal to` "a color parameter"
|
list[4].label shouldBeEqual "a text parameter"
|
||||||
|
|
||||||
list[6].parameterType `should be equal to` ParameterType.XY
|
list[5].parameterType shouldBeEqual ParameterType.Color
|
||||||
list[6].property?.name `should be equal to` "xy"
|
list[5].property?.name?.shouldBeEqual("c")
|
||||||
list[6].label `should be equal to` "an XY parameter"
|
list[5].label shouldBeEqual "a color parameter"
|
||||||
|
|
||||||
list[7].parameterType `should be equal to` ParameterType.DoubleList
|
list[6].parameterType shouldBeEqual ParameterType.XY
|
||||||
list[7].property?.name `should be equal to` "dl"
|
list[6].property?.name?.shouldBeEqual("xy")
|
||||||
list[7].label `should be equal to` "a double list parameter"
|
list[6].label shouldBeEqual "an XY parameter"
|
||||||
|
|
||||||
list[8].parameterType `should be equal to` ParameterType.Vector2
|
list[7].parameterType shouldBeEqual ParameterType.DoubleList
|
||||||
list[8].property?.name `should be equal to` "v2"
|
list[7].property?.name?.shouldBeEqual("dl")
|
||||||
list[8].label `should be equal to` "a vector 2 parameter"
|
list[7].label shouldBeEqual "a double list parameter"
|
||||||
|
|
||||||
list[9].parameterType `should be equal to` ParameterType.Vector3
|
list[8].parameterType shouldBeEqual ParameterType.Vector2
|
||||||
list[9].property?.name `should be equal to` "v3"
|
list[8].property?.name?.shouldBeEqual("v2")
|
||||||
list[9].label `should be equal to` "a vector 3 parameter"
|
list[8].label shouldBeEqual "a vector 2 parameter"
|
||||||
|
|
||||||
list[10].parameterType `should be equal to` ParameterType.Vector4
|
list[9].parameterType shouldBeEqual ParameterType.Vector3
|
||||||
list[10].property?.name `should be equal to` "v4"
|
list[9].property?.name?.shouldBeEqual("v3")
|
||||||
list[10].label `should be equal to` "a vector 4 parameter"
|
list[9].label shouldBeEqual "a vector 3 parameter"
|
||||||
|
|
||||||
list[11].parameterType `should be equal to` ParameterType.Option
|
list[10].parameterType shouldBeEqual ParameterType.Vector4
|
||||||
list[11].property?.name `should be equal to` "o"
|
list[10].property?.name?.shouldBeEqual("v4")
|
||||||
list[11].label `should be equal to` "an option parameter"
|
list[10].label shouldBeEqual "a vector 4 parameter"
|
||||||
|
|
||||||
|
list[11].parameterType shouldBeEqual ParameterType.Option
|
||||||
|
list[11].property?.name?.shouldBeEqual("o")
|
||||||
|
list[11].label shouldBeEqual "an option parameter"
|
||||||
|
|
||||||
assertEquals(list[12].parameterType, ParameterType.Path)
|
assertEquals(list[12].parameterType, ParameterType.Path)
|
||||||
assertEquals(list[12].property?.name, "p")
|
assertEquals(list[12].property?.name, "p")
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ kotlin {
|
|||||||
jvm {
|
jvm {
|
||||||
testRuns["test"].executionTask {
|
testRuns["test"].executionTask {
|
||||||
useJUnitPlatform {
|
useJUnitPlatform {
|
||||||
includeEngines("spek2")
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
plugins {
|
plugins {
|
||||||
org.openrndr.extra.convention.`kotlin-multiplatform`
|
org.openrndr.extra.convention.`kotlin-multiplatform`
|
||||||
|
alias(libs.plugins.kotest.multiplatform)
|
||||||
}
|
}
|
||||||
|
|
||||||
val embedShaders = tasks.register<EmbedShadersTask>("embedShaders") {
|
val embedShaders = tasks.register<EmbedShadersTask>("embedShaders") {
|
||||||
@@ -9,16 +10,8 @@ val embedShaders = tasks.register<EmbedShadersTask>("embedShaders") {
|
|||||||
}.get()
|
}.get()
|
||||||
|
|
||||||
kotlin {
|
kotlin {
|
||||||
jvm {
|
|
||||||
testRuns["test"].executionTask {
|
|
||||||
useJUnitPlatform {
|
|
||||||
includeEngines("spek2")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
kotlin.sourceSets.getByName("commonMain").kotlin.srcDir(embedShaders.outputDir)
|
kotlin.sourceSets.getByName("commonMain").kotlin.srcDir(embedShaders.outputDir)
|
||||||
sourceSets {
|
sourceSets {
|
||||||
@Suppress("UNUSED_VARIABLE")
|
|
||||||
val commonMain by getting {
|
val commonMain by getting {
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation(libs.openrndr.application)
|
implementation(libs.openrndr.application)
|
||||||
@@ -31,10 +24,9 @@ kotlin {
|
|||||||
val jvmTest by getting {
|
val jvmTest by getting {
|
||||||
dependencies {
|
dependencies {
|
||||||
runtimeOnly(libs.slf4j.simple)
|
runtimeOnly(libs.slf4j.simple)
|
||||||
implementation(libs.kluent)
|
|
||||||
implementation(libs.spek.dsl)
|
|
||||||
runtimeOnly(libs.spek.junit5)
|
|
||||||
runtimeOnly(libs.kotlin.reflect)
|
runtimeOnly(libs.kotlin.reflect)
|
||||||
|
implementation(libs.kotest.assertions)
|
||||||
|
implementation(libs.kotest.framework.engine)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,12 +1,13 @@
|
|||||||
import org.amshove.kluent.`should be equal to`
|
import io.kotest.assertions.shouldFail
|
||||||
import org.amshove.kluent.internal.assertFails
|
import io.kotest.assertions.throwables.shouldThrow
|
||||||
|
import io.kotest.assertions.throwables.shouldThrowAny
|
||||||
|
import io.kotest.assertions.throwables.shouldThrowUnit
|
||||||
|
import io.kotest.core.spec.style.DescribeSpec
|
||||||
|
import io.kotest.matchers.equals.shouldBeEqual
|
||||||
import org.openrndr.extra.shaderphrases.ShaderPhraseRegistry.getGLSLFunctionName
|
import org.openrndr.extra.shaderphrases.ShaderPhraseRegistry.getGLSLFunctionName
|
||||||
import org.spekframework.spek2.Spek
|
|
||||||
import org.spekframework.spek2.style.specification.describe
|
|
||||||
|
|
||||||
object TestFunctionNameRx : Spek({
|
class TestFunctionNameRx : DescribeSpec({
|
||||||
describe("A function name") {
|
describe("A function name") {
|
||||||
|
|
||||||
mapOf(
|
mapOf(
|
||||||
"ivec4 aaa() {" to "aaa",
|
"ivec4 aaa() {" to "aaa",
|
||||||
"ivec3 bbb() {" to "bbb",
|
"ivec3 bbb() {" to "bbb",
|
||||||
@@ -31,8 +32,8 @@ object TestFunctionNameRx : Spek({
|
|||||||
""".trimMargin() to "white"
|
""".trimMargin() to "white"
|
||||||
).forEach { (goodGLSL, expectedFuncName) ->
|
).forEach { (goodGLSL, expectedFuncName) ->
|
||||||
it("can be extracted from valid GLSL") {
|
it("can be extracted from valid GLSL") {
|
||||||
getGLSLFunctionName(goodGLSL) `should be equal to`
|
getGLSLFunctionName(goodGLSL).shouldBeEqual(
|
||||||
expectedFuncName
|
expectedFuncName)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -43,7 +44,7 @@ object TestFunctionNameRx : Spek({
|
|||||||
"float rnd {",
|
"float rnd {",
|
||||||
).forEach { badGLSL ->
|
).forEach { badGLSL ->
|
||||||
it("is not extracted if GLSL function not declared") {
|
it("is not extracted if GLSL function not declared") {
|
||||||
assertFails {
|
shouldThrowUnit<Throwable> {
|
||||||
val funcName = getGLSLFunctionName(badGLSL)
|
val funcName = getGLSLFunctionName(badGLSL)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
import org.amshove.kluent.`should be`
|
import io.kotest.core.spec.style.DescribeSpec
|
||||||
|
import io.kotest.matchers.equals.shouldBeEqual
|
||||||
import org.openrndr.extra.shaderphrases.ShaderPhrase
|
import org.openrndr.extra.shaderphrases.ShaderPhrase
|
||||||
import org.openrndr.extra.shaderphrases.ShaderPhraseRegistry
|
import org.openrndr.extra.shaderphrases.ShaderPhraseRegistry
|
||||||
import org.spekframework.spek2.Spek
|
|
||||||
import org.spekframework.spek2.style.specification.describe
|
|
||||||
|
|
||||||
object TestShaderPhrase : Spek({
|
class TestShaderPhrase : DescribeSpec({
|
||||||
describe("A shader phrase") {
|
describe("A shader phrase") {
|
||||||
val phrase = ShaderPhrase(
|
val phrase = ShaderPhrase(
|
||||||
"""
|
"""
|
||||||
@@ -16,7 +15,7 @@ object TestShaderPhrase : Spek({
|
|||||||
phrase.register()
|
phrase.register()
|
||||||
}
|
}
|
||||||
it("can be found") {
|
it("can be found") {
|
||||||
ShaderPhraseRegistry.findPhrase("test_phrase") `should be` phrase
|
ShaderPhraseRegistry.findPhrase("test_phrase")?.shouldBeEqual(phrase)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,11 +1,10 @@
|
|||||||
import org.amshove.kluent.`should be`
|
import io.kotest.core.spec.style.DescribeSpec
|
||||||
|
import io.kotest.matchers.equals.shouldBeEqual
|
||||||
import org.openrndr.extra.shaderphrases.ShaderPhrase
|
import org.openrndr.extra.shaderphrases.ShaderPhrase
|
||||||
import org.openrndr.extra.shaderphrases.ShaderPhraseBook
|
import org.openrndr.extra.shaderphrases.ShaderPhraseBook
|
||||||
import org.openrndr.extra.shaderphrases.ShaderPhraseRegistry
|
import org.openrndr.extra.shaderphrases.ShaderPhraseRegistry
|
||||||
import org.spekframework.spek2.Spek
|
|
||||||
import org.spekframework.spek2.style.specification.describe
|
|
||||||
|
|
||||||
class TestShaderPhraseBook : Spek({
|
class TestShaderPhraseBook : DescribeSpec({
|
||||||
describe("A shader phrase book") {
|
describe("A shader phrase book") {
|
||||||
val book = object : ShaderPhraseBook("testBook") {
|
val book = object : ShaderPhraseBook("testBook") {
|
||||||
val phrase = ShaderPhrase(
|
val phrase = ShaderPhrase(
|
||||||
@@ -21,7 +20,7 @@ class TestShaderPhraseBook : Spek({
|
|||||||
it("can be found") {
|
it("can be found") {
|
||||||
ShaderPhraseRegistry.findPhrase(
|
ShaderPhraseRegistry.findPhrase(
|
||||||
"testBook.test_phrase"
|
"testBook.test_phrase"
|
||||||
) `should be` book.phrase
|
)!!.shouldBeEqual(book.phrase)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -1,12 +1,11 @@
|
|||||||
import org.amshove.kluent.`should contain`
|
import io.kotest.core.spec.style.DescribeSpec
|
||||||
import org.amshove.kluent.`should not contain`
|
import io.kotest.matchers.string.shouldContain
|
||||||
|
import io.kotest.matchers.string.shouldNotContain
|
||||||
import org.openrndr.extra.shaderphrases.ShaderPhrase
|
import org.openrndr.extra.shaderphrases.ShaderPhrase
|
||||||
import org.openrndr.extra.shaderphrases.ShaderPhraseBook
|
import org.openrndr.extra.shaderphrases.ShaderPhraseBook
|
||||||
import org.openrndr.extra.shaderphrases.preprocessShader
|
import org.openrndr.extra.shaderphrases.preprocessShader
|
||||||
import org.spekframework.spek2.Spek
|
|
||||||
import org.spekframework.spek2.style.specification.describe
|
|
||||||
|
|
||||||
class TestShaderPhrasePreprocessing : Spek({
|
class TestShaderPhrasePreprocessing : DescribeSpec({
|
||||||
describe("the glsl code") {
|
describe("the glsl code") {
|
||||||
val book = object : ShaderPhraseBook("testBook") {
|
val book = object : ShaderPhraseBook("testBook") {
|
||||||
val phrase1 = ShaderPhrase("vec3 phrase1() { }")
|
val phrase1 = ShaderPhrase("vec3 phrase1() { }")
|
||||||
@@ -24,19 +23,19 @@ class TestShaderPhrasePreprocessing : Spek({
|
|||||||
val glslProcessed = preprocessShader(glsl)
|
val glslProcessed = preprocessShader(glsl)
|
||||||
|
|
||||||
it("should not contain phrase1 before preprocessing") {
|
it("should not contain phrase1 before preprocessing") {
|
||||||
glsl `should not contain` book.phrase1.phrase
|
glsl.shouldNotContain(book.phrase1.phrase)
|
||||||
}
|
}
|
||||||
|
|
||||||
it("should not contain phrase2 before preprocessing") {
|
it("should not contain phrase2 before preprocessing") {
|
||||||
glsl `should not contain` book.phrase2.phrase
|
glsl.shouldNotContain(book.phrase2.phrase)
|
||||||
}
|
}
|
||||||
|
|
||||||
it("should contain phrase1 after preprocessing") {
|
it("should contain phrase1 after preprocessing") {
|
||||||
glslProcessed `should contain` book.phrase1.phrase
|
glslProcessed.shouldContain(book.phrase1.phrase)
|
||||||
}
|
}
|
||||||
|
|
||||||
it("should contain phrase2 after preprocessing") {
|
it("should contain phrase2 after preprocessing") {
|
||||||
glslProcessed `should contain` book.phrase2.phrase
|
glslProcessed.shouldContain(book.phrase2.phrase)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -1,18 +1,10 @@
|
|||||||
plugins {
|
plugins {
|
||||||
org.openrndr.extra.convention.`kotlin-multiplatform`
|
org.openrndr.extra.convention.`kotlin-multiplatform`
|
||||||
|
alias(libs.plugins.kotest.multiplatform)
|
||||||
}
|
}
|
||||||
|
|
||||||
kotlin {
|
kotlin {
|
||||||
jvm {
|
|
||||||
testRuns["test"].executionTask {
|
|
||||||
useJUnitPlatform {
|
|
||||||
includeEngines("spek2")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
sourceSets {
|
sourceSets {
|
||||||
@Suppress("UNUSED_VARIABLE")
|
|
||||||
val commonMain by getting {
|
val commonMain by getting {
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation(project(":orx-parameters"))
|
implementation(project(":orx-parameters"))
|
||||||
@@ -25,24 +17,21 @@ kotlin {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Suppress("UNUSED_VARIABLE")
|
|
||||||
val jvmMain by getting {
|
val jvmMain by getting {
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation(project(":orx-triangulation"))
|
implementation(project(":orx-triangulation"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Suppress("UNUSED_VARIABLE")
|
|
||||||
val jvmTest by getting {
|
val jvmTest by getting {
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation(libs.kluent)
|
implementation(libs.kotest.assertions)
|
||||||
implementation(libs.spek.dsl)
|
implementation(libs.kotest.framework.engine)
|
||||||
runtimeOnly(libs.spek.junit5)
|
implementation(libs.kotlin.serialization.json)
|
||||||
runtimeOnly(libs.kotlin.reflect)
|
runtimeOnly(libs.kotlin.reflect)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Suppress("UNUSED_VARIABLE")
|
|
||||||
val jvmDemo by getting {
|
val jvmDemo by getting {
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation(project(":orx-camera"))
|
implementation(project(":orx-camera"))
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
import org.amshove.kluent.shouldBeInRange
|
import io.kotest.matchers.doubles.plusOrMinus
|
||||||
|
import io.kotest.matchers.shouldBe
|
||||||
import org.openrndr.math.Vector2
|
import org.openrndr.math.Vector2
|
||||||
|
|
||||||
infix fun Vector2.`should be near`(other: Vector2) {
|
infix fun Vector2.`should be near`(other: Vector2) {
|
||||||
x shouldBeInRange (other.x - 0.00001..other.x + 0.00001)
|
x shouldBe other.x.plusOrMinus(1E-5)
|
||||||
y shouldBeInRange (other.y - 0.00001..other.y + 0.00001)
|
y shouldBe other.y.plusOrMinus(1E-5)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,13 +1,12 @@
|
|||||||
import org.amshove.kluent.`should be equal to`
|
import io.kotest.core.spec.style.DescribeSpec
|
||||||
|
import io.kotest.matchers.equals.shouldBeEqual
|
||||||
import org.openrndr.extra.shapes.operators.bevelCorners
|
import org.openrndr.extra.shapes.operators.bevelCorners
|
||||||
import org.openrndr.extra.shapes.operators.roundCorners
|
import org.openrndr.extra.shapes.operators.roundCorners
|
||||||
import org.openrndr.extra.shapes.regularPolygon
|
import org.openrndr.extra.shapes.regularPolygon
|
||||||
import org.openrndr.shape.Circle
|
import org.openrndr.shape.Circle
|
||||||
import org.openrndr.shape.contour
|
import org.openrndr.shape.contour
|
||||||
import org.spekframework.spek2.Spek
|
|
||||||
import org.spekframework.spek2.style.specification.describe
|
|
||||||
|
|
||||||
object TestChamferCorners : Spek({
|
class TestChamferCorners : DescribeSpec({
|
||||||
|
|
||||||
describe("a single segment linear contour") {
|
describe("a single segment linear contour") {
|
||||||
val c = contour {
|
val c = contour {
|
||||||
@@ -17,10 +16,10 @@ object TestChamferCorners : Spek({
|
|||||||
|
|
||||||
it("should be similar to a chamfered version") {
|
it("should be similar to a chamfered version") {
|
||||||
val cc = c.bevelCorners(10.0)
|
val cc = c.bevelCorners(10.0)
|
||||||
cc.segments.size `should be equal to` 1
|
cc.segments.size shouldBeEqual 1
|
||||||
cc.position(0.0) `should be near` c.position(0.0)
|
cc.position(0.0) `should be near` c.position(0.0)
|
||||||
cc.position(1.0) `should be near` c.position(1.0)
|
cc.position(1.0) `should be near` c.position(1.0)
|
||||||
cc.closed `should be equal to` c.closed
|
cc.closed shouldBeEqual c.closed
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -32,7 +31,7 @@ object TestChamferCorners : Spek({
|
|||||||
|
|
||||||
it("should be similar to a chamfered version") {
|
it("should be similar to a chamfered version") {
|
||||||
val cc = c.bevelCorners(10.0)
|
val cc = c.bevelCorners(10.0)
|
||||||
cc.segments.size `should be equal to` 1
|
cc.segments.size shouldBeEqual 1
|
||||||
cc.position(0.0) `should be near` c.position(0.0)
|
cc.position(0.0) `should be near` c.position(0.0)
|
||||||
cc.position(0.5) `should be near` c.position(0.5)
|
cc.position(0.5) `should be near` c.position(0.5)
|
||||||
cc.position(1.0) `should be near` c.position(1.0)
|
cc.position(1.0) `should be near` c.position(1.0)
|
||||||
@@ -44,12 +43,12 @@ object TestChamferCorners : Spek({
|
|||||||
|
|
||||||
it("should be similar to a chamfered version") {
|
it("should be similar to a chamfered version") {
|
||||||
val cc = c.bevelCorners(10.0)
|
val cc = c.bevelCorners(10.0)
|
||||||
cc.segments.size `should be equal to` c.segments.size
|
cc.segments.size shouldBeEqual c.segments.size
|
||||||
cc.position(0.0) `should be near` c.position(0.0)
|
cc.position(0.0) `should be near` c.position(0.0)
|
||||||
cc.position(0.5) `should be near` c.position(0.5)
|
cc.position(0.5) `should be near` c.position(0.5)
|
||||||
cc.position(1.0) `should be near` c.position(1.0)
|
cc.position(1.0) `should be near` c.position(1.0)
|
||||||
cc.closed `should be equal to` c.closed
|
cc.closed shouldBeEqual c.closed
|
||||||
c.winding `should be equal to` cc.winding
|
c.winding shouldBeEqual cc.winding
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -61,10 +60,10 @@ object TestChamferCorners : Spek({
|
|||||||
}
|
}
|
||||||
it("should chamfer correctly") {
|
it("should chamfer correctly") {
|
||||||
val cc = c.bevelCorners(10.0)
|
val cc = c.bevelCorners(10.0)
|
||||||
cc.segments.size `should be equal to` 3
|
cc.segments.size shouldBeEqual 3
|
||||||
cc.position(0.0) `should be near` c.position(0.0)
|
cc.position(0.0) `should be near` c.position(0.0)
|
||||||
cc.position(1.0) `should be near` c.position(1.0)
|
cc.position(1.0) `should be near` c.position(1.0)
|
||||||
cc.closed `should be equal to` c.closed
|
cc.closed shouldBeEqual c.closed
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -76,10 +75,10 @@ object TestChamferCorners : Spek({
|
|||||||
}
|
}
|
||||||
it("should be identical to the chamfered version") {
|
it("should be identical to the chamfered version") {
|
||||||
val cc = c.bevelCorners(10.0)
|
val cc = c.bevelCorners(10.0)
|
||||||
cc.segments.size `should be equal to` c.segments.size
|
cc.segments.size shouldBeEqual c.segments.size
|
||||||
cc.position(0.0) `should be near` c.position(0.0)
|
cc.position(0.0) `should be near` c.position(0.0)
|
||||||
cc.position(1.0) `should be near` c.position(1.0)
|
cc.position(1.0) `should be near` c.position(1.0)
|
||||||
cc.closed `should be equal to` c.closed
|
cc.closed shouldBeEqual c.closed
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -92,14 +91,14 @@ object TestChamferCorners : Spek({
|
|||||||
}
|
}
|
||||||
it("should be identical to the chamfered version") {
|
it("should be identical to the chamfered version") {
|
||||||
val cc = c.bevelCorners(10.0)
|
val cc = c.bevelCorners(10.0)
|
||||||
cc.segments.size `should be equal to` c.segments.size
|
cc.segments.size shouldBeEqual c.segments.size
|
||||||
cc.position(0.0) `should be near` c.position(0.0)
|
cc.position(0.0) `should be near` c.position(0.0)
|
||||||
cc.position(1.0) `should be near` c.position(1.0)
|
cc.position(1.0) `should be near` c.position(1.0)
|
||||||
cc.closed `should be equal to` c.closed
|
cc.closed shouldBeEqual c.closed
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
describe("a two segment curve-linear contour") {
|
describe("another two segment curve-linear contour") {
|
||||||
val c = contour {
|
val c = contour {
|
||||||
moveTo(0.0, 0.0)
|
moveTo(0.0, 0.0)
|
||||||
curveTo(80.0, 120.0, 50.0, 50.0)
|
curveTo(80.0, 120.0, 50.0, 50.0)
|
||||||
@@ -108,29 +107,29 @@ object TestChamferCorners : Spek({
|
|||||||
}
|
}
|
||||||
it("should be identical to the chamfered version") {
|
it("should be identical to the chamfered version") {
|
||||||
val cc = c.bevelCorners(10.0)
|
val cc = c.bevelCorners(10.0)
|
||||||
cc.segments.size `should be equal to` c.segments.size
|
cc.segments.size shouldBeEqual c.segments.size
|
||||||
cc.position(0.0) `should be near` c.position(0.0)
|
cc.position(0.0) `should be near` c.position(0.0)
|
||||||
cc.position(1.0) `should be near` c.position(1.0)
|
cc.position(1.0) `should be near` c.position(1.0)
|
||||||
cc.closed `should be equal to` c.closed
|
cc.closed shouldBeEqual c.closed
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
describe("a triangle") {
|
describe("a triangle") {
|
||||||
val c = regularPolygon(3, radius = 100.0)
|
val c = regularPolygon(3, radius = 100.0)
|
||||||
|
|
||||||
c.closed `should be equal to` true
|
c.closed shouldBeEqual true
|
||||||
|
|
||||||
val cc = c.roundCorners(1.0)
|
val cc = c.roundCorners(1.0)
|
||||||
|
|
||||||
c.winding `should be equal to` cc.winding
|
c.winding shouldBeEqual cc.winding
|
||||||
|
|
||||||
c.closed `should be equal to` cc.closed
|
c.closed shouldBeEqual cc.closed
|
||||||
|
|
||||||
val ccc = cc.roundCorners(1.0)
|
val ccc = cc.roundCorners(1.0)
|
||||||
|
|
||||||
ccc.closed `should be equal to` cc.closed
|
ccc.closed shouldBeEqual cc.closed
|
||||||
|
|
||||||
cc.segments.size `should be equal to` 6
|
cc.segments.size shouldBeEqual 6
|
||||||
|
|
||||||
// cc.segments.forEach {
|
// cc.segments.forEach {
|
||||||
// println(it)
|
// println(it)
|
||||||
@@ -141,7 +140,7 @@ object TestChamferCorners : Spek({
|
|||||||
// println(it)
|
// println(it)
|
||||||
// }
|
// }
|
||||||
it("should have 6 sides") {
|
it("should have 6 sides") {
|
||||||
ccc.segments.size `should be equal to` cc.segments.size
|
ccc.segments.size shouldBeEqual cc.segments.size
|
||||||
}
|
}
|
||||||
it("should start at the right position") {
|
it("should start at the right position") {
|
||||||
ccc.position(0.0) `should be near` cc.position(0.0)
|
ccc.position(0.0) `should be near` cc.position(0.0)
|
||||||
|
|||||||
@@ -1,23 +1,21 @@
|
|||||||
import org.amshove.kluent.`should be equal to`
|
import io.kotest.core.spec.style.DescribeSpec
|
||||||
|
import io.kotest.matchers.booleans.shouldBeTrue
|
||||||
|
import io.kotest.matchers.equals.shouldBeEqual
|
||||||
import org.openrndr.extra.shapes.regularPolygon
|
import org.openrndr.extra.shapes.regularPolygon
|
||||||
import org.openrndr.extra.shapes.regularPolygonBeveled
|
import org.openrndr.extra.shapes.regularPolygonBeveled
|
||||||
import org.openrndr.extra.shapes.regularPolygonRounded
|
import org.openrndr.extra.shapes.regularPolygonRounded
|
||||||
import org.openrndr.shape.Winding
|
import org.openrndr.shape.Winding
|
||||||
import org.spekframework.spek2.Spek
|
|
||||||
import org.spekframework.spek2.style.specification.describe
|
|
||||||
|
|
||||||
object TestRegularPolygon : Spek({
|
|
||||||
|
|
||||||
|
|
||||||
|
class TestRegularPolygon : DescribeSpec({
|
||||||
describe("a regular polygon with 3 sides") {
|
describe("a regular polygon with 3 sides") {
|
||||||
val rp = regularPolygon(3)
|
val rp = regularPolygon(3)
|
||||||
|
|
||||||
it("is closed") {
|
it("is closed") {
|
||||||
rp.closed `should be equal to` true
|
rp.closed.shouldBeTrue()
|
||||||
}
|
}
|
||||||
|
|
||||||
it("has clockwise winding") {
|
it("has clockwise winding") {
|
||||||
rp.winding `should be equal to` Winding.CLOCKWISE
|
rp.winding.shouldBeEqual(Winding.CLOCKWISE)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -25,11 +23,11 @@ object TestRegularPolygon : Spek({
|
|||||||
val rp = regularPolygonRounded(3)
|
val rp = regularPolygonRounded(3)
|
||||||
|
|
||||||
it("is closed") {
|
it("is closed") {
|
||||||
rp.closed `should be equal to` true
|
rp.closed.shouldBeTrue()
|
||||||
}
|
}
|
||||||
|
|
||||||
it("has clockwise winding") {
|
it("has clockwise winding") {
|
||||||
rp.winding `should be equal to` Winding.CLOCKWISE
|
rp.winding.shouldBeEqual(Winding.CLOCKWISE)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -37,13 +35,11 @@ object TestRegularPolygon : Spek({
|
|||||||
val rp = regularPolygonBeveled(3)
|
val rp = regularPolygonBeveled(3)
|
||||||
|
|
||||||
it("is closed") {
|
it("is closed") {
|
||||||
rp.closed `should be equal to` true
|
rp.closed.shouldBeTrue()
|
||||||
}
|
}
|
||||||
|
|
||||||
it("has clockwise winding") {
|
it("has clockwise winding") {
|
||||||
rp.winding `should be equal to` Winding.CLOCKWISE
|
rp.winding.shouldBeEqual(Winding.CLOCKWISE)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
})
|
})
|
||||||
@@ -1,22 +1,22 @@
|
|||||||
import org.amshove.kluent.`should be equal to`
|
import io.kotest.core.spec.style.DescribeSpec
|
||||||
|
import io.kotest.matchers.booleans.shouldBeTrue
|
||||||
|
import io.kotest.matchers.equals.shouldBeEqual
|
||||||
import org.openrndr.extra.shapes.regularPolygonBeveled
|
import org.openrndr.extra.shapes.regularPolygonBeveled
|
||||||
import org.openrndr.extra.shapes.regularPolygonRounded
|
import org.openrndr.extra.shapes.regularPolygonRounded
|
||||||
import org.openrndr.extra.shapes.regularStar
|
import org.openrndr.extra.shapes.regularStar
|
||||||
import org.openrndr.extra.shapes.regularStarRounded
|
import org.openrndr.extra.shapes.regularStarRounded
|
||||||
import org.openrndr.shape.Winding
|
import org.openrndr.shape.Winding
|
||||||
import org.spekframework.spek2.Spek
|
|
||||||
import org.spekframework.spek2.style.specification.describe
|
|
||||||
|
|
||||||
object TestRegularStar : Spek({
|
class TestRegularStar : DescribeSpec({
|
||||||
describe("a regular star with 5 points") {
|
describe("the regular star with 5 points") {
|
||||||
val rs = regularStar(5, 10.0, 20.0)
|
val rs = regularStar(5, 10.0, 20.0)
|
||||||
|
|
||||||
it("is closed") {
|
it("should be closed") {
|
||||||
rs.closed `should be equal to` true
|
rs.closed.shouldBeTrue()
|
||||||
}
|
}
|
||||||
|
|
||||||
it("has clockwise winding") {
|
it("should have clockwise winding") {
|
||||||
rs.winding `should be equal to` Winding.CLOCKWISE
|
rs.winding.shouldBeEqual(Winding.CLOCKWISE)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -24,11 +24,11 @@ object TestRegularStar : Spek({
|
|||||||
val rs = regularStarRounded(5, 10.0, 20.0, 0.2, 0.2)
|
val rs = regularStarRounded(5, 10.0, 20.0, 0.2, 0.2)
|
||||||
|
|
||||||
it("is closed") {
|
it("is closed") {
|
||||||
rs.closed `should be equal to` true
|
rs.closed.shouldBeTrue()
|
||||||
}
|
}
|
||||||
|
|
||||||
it("has clockwise winding") {
|
it("has clockwise winding") {
|
||||||
rs.winding `should be equal to` Winding.CLOCKWISE
|
rs.winding.shouldBeEqual(Winding.CLOCKWISE)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -36,12 +36,11 @@ object TestRegularStar : Spek({
|
|||||||
val rs = regularPolygonBeveled(5, 0.5)
|
val rs = regularPolygonBeveled(5, 0.5)
|
||||||
|
|
||||||
it("is closed") {
|
it("is closed") {
|
||||||
rs.closed `should be equal to` true
|
rs.closed.shouldBeTrue()
|
||||||
}
|
}
|
||||||
|
|
||||||
it("has clockwise winding") {
|
it("has clockwise winding") {
|
||||||
rs.winding `should be equal to` Winding.CLOCKWISE
|
rs.winding.shouldBeEqual(Winding.CLOCKWISE)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
})
|
})
|
||||||
@@ -1,20 +1,19 @@
|
|||||||
import org.amshove.kluent.`should be equal to`
|
import io.kotest.core.spec.style.DescribeSpec
|
||||||
|
import io.kotest.matchers.booleans.shouldBeTrue
|
||||||
|
import io.kotest.matchers.equals.shouldBeEqual
|
||||||
import org.openrndr.extra.shapes.*
|
import org.openrndr.extra.shapes.*
|
||||||
import org.openrndr.shape.Winding
|
import org.openrndr.shape.Winding
|
||||||
import org.spekframework.spek2.Spek
|
|
||||||
import org.spekframework.spek2.style.specification.describe
|
|
||||||
|
|
||||||
object TestRoundedRectangle : Spek({
|
class TestRoundedRectangle : DescribeSpec({
|
||||||
describe("a rounded square") {
|
describe("a rounded square") {
|
||||||
val rs = RoundedRectangle(100.0, 100.0, 200.0, 200.0, 20.0).contour
|
val rs = RoundedRectangle(100.0, 100.0, 200.0, 200.0, 20.0).contour
|
||||||
|
|
||||||
it("is closed") {
|
it("is closed") {
|
||||||
rs.closed `should be equal to` true
|
rs.closed.shouldBeTrue()
|
||||||
}
|
}
|
||||||
|
|
||||||
it("has clockwise winding") {
|
it("has clockwise winding") {
|
||||||
rs.winding `should be equal to` Winding.CLOCKWISE
|
rs.winding.shouldBeEqual(Winding.CLOCKWISE)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
})
|
})
|
||||||
@@ -6,7 +6,6 @@ kotlin {
|
|||||||
jvm {
|
jvm {
|
||||||
testRuns["test"].executionTask {
|
testRuns["test"].executionTask {
|
||||||
useJUnitPlatform {
|
useJUnitPlatform {
|
||||||
includeEngines("spek2")
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user