[orx-fcurve] Replace _expr_ with {expr}

This commit is contained in:
Edwin Jakobs
2024-03-30 16:26:23 +01:00
parent 513678d29b
commit feb8d8641e
3 changed files with 10 additions and 10 deletions

View File

@@ -8,7 +8,7 @@ import org.openrndr.extra.expressions.evaluateExpression
* @param constants a map of constants that is passed to [evaluateExpression]
*/
fun efcurve(ef: String, constants: Map<String, Double> = emptyMap()): String {
val expression = Regex("_([^_]+)_")
val expression = Regex("\\{([^_]+)\\}")
// IntelliJ falsely reports a redundant escape character. the escape character is required when running the regular
// expression on a javascript target. Removing the escape character will result in a `Lone quantifier brackets`

View File

@@ -16,18 +16,18 @@ class TestEFCurve {
@Test
fun expressions() {
assertEquals("M${9.0}", efcurve("M_4 + 5_"))
assertEquals("M${9.0}", efcurve("M{4 + 5}"))
}
@Test
fun listExpansion() {
assertEquals("M0 L1.0, ${3.0} L1.0, ${6.0}", efcurve("M0 |L1.0, _it_|{3, 6}"))
assertEquals("M0 L1.0, ${3.0} L1.0, ${6.0}", efcurve("M0 |L1.0, {it}|{3, 6}"))
}
@Test
fun repetition() {
assertEquals("M0 L1.0, 3.0 L1.0, 3.0", efcurve("M0 |L1.0, 3.0|[2]"))
assertEquals("M0 L1.0, ${0.0} L1.0, ${1.0}", efcurve("M0 |L1.0, _it_|[2]"))
assertEquals("M0 L1.0, ${0.0} L1.0, ${1.0} L1.0, ${0.0} L1.0, ${1.0} L1.0, ${0.0} L1.0, ${1.0}", efcurve("M0 ||L1.0, _it_|[2]|[3]"))
assertEquals("M0 L1.0, ${0.0} L1.0, ${1.0}", efcurve("M0 |L1.0, {it}|[2]"))
assertEquals("M0 L1.0, ${0.0} L1.0, ${1.0} L1.0, ${0.0} L1.0, ${1.0} L1.0, ${0.0} L1.0, ${1.0}", efcurve("M0 ||L1.0, {it}|[2]|[3]"))
}
}