|
| 1 | +package xyz.javecs.tools.expr.test.kotlin |
| 2 | + |
| 3 | +import kotlin.test.assertEquals |
| 4 | +import org.junit.Test |
| 5 | +import xyz.javecs.tools.expr.Calculator |
| 6 | +import xyz.javecs.tools.expr.Function |
| 7 | +import xyz.javecs.tools.expr.validate |
| 8 | +import kotlin.test.assertFails |
| 9 | +import kotlin.test.assertTrue |
| 10 | + |
| 11 | +class FunctionSignatureTest { |
| 12 | + @Test fun signature1() { |
| 13 | + val (name, params) = validate("f(x,y)") |
| 14 | + assertEquals("f", name) |
| 15 | + assertEquals("x", params[0]) |
| 16 | + assertEquals("y", params[1]) |
| 17 | + } |
| 18 | + |
| 19 | + @Test fun signature2() { |
| 20 | + val (name, params) = validate("f()") |
| 21 | + assertEquals("f", name) |
| 22 | + assertEquals(0, params.size) |
| 23 | + } |
| 24 | + |
| 25 | + @Test fun signature3() { |
| 26 | + val (name, params) = validate("abc ( )") |
| 27 | + assertEquals("abc", name) |
| 28 | + assertEquals(0, params.size) |
| 29 | + } |
| 30 | + |
| 31 | + @Test fun signature4() { |
| 32 | + val (name, params) = validate(" f123 ( abc , defh, d123456 ) ") |
| 33 | + assertEquals("f123", name) |
| 34 | + assertEquals("abc", params[0]) |
| 35 | + assertEquals("defh", params[1]) |
| 36 | + assertEquals("d123456", params[2]) |
| 37 | + } |
| 38 | + |
| 39 | + @Test fun signature5() { |
| 40 | + arrayOf(" f", "f*", "ffff(", "1()", "()", "( a )").forEach { |
| 41 | + try { |
| 42 | + validate(it) |
| 43 | + assertFails { } |
| 44 | + } catch (e: Exception) { |
| 45 | + assertTrue { true } |
| 46 | + } |
| 47 | + } |
| 48 | + } |
| 49 | +} |
| 50 | + |
0 commit comments