Skip to content

Commit 1a08eae

Browse files
authored
Merge pull request #60 from javecs/feature/variables
変数を返す関数を追加しました。
2 parents 24c36ae + daeb88a commit 1a08eae

3 files changed

Lines changed: 21 additions & 1 deletion

File tree

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ plugins {
1616
}
1717

1818
group 'xyz.javecs.tools'
19-
version '0.2.3'
19+
version '0.2.4'
2020

2121
apply plugin: 'kotlin'
2222
apply plugin: 'antlr'

src/main/kotlin/xyz/javecs/tools/expr/Calculator.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ class Calculator(expressions: Array<String> = emptyArray()) : EvalContext {
4343
expression = Expression()
4444
}
4545

46+
fun variables(): Map<String, Double> = variables
47+
4648
override fun toString() = expression.toString()
4749
override fun isConstant(name: String) = constants.contains(name.toLowerCase())
4850
override fun call(name: String, args: Array<Double>) = callFunction(name, args)
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
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+
7+
class CalculatorVariablesTest {
8+
@Test fun calcVariables1() {
9+
val calc = Calculator()
10+
calc.eval("x = 3")
11+
calc.eval("y = 4")
12+
calc.eval("z = x * y")
13+
val variables = calc.variables()
14+
assertEquals(variables["x"], 3.0)
15+
assertEquals(variables["y"], 4.0)
16+
assertEquals(variables["z"], 12.0)
17+
}
18+
}

0 commit comments

Comments
 (0)