All Downloads are FREE. Search and download functionalities are using the official Maven repository.

commonTest.space.kscience.kmath.expressions.ExpressionFieldTest.kt Maven / Gradle / Ivy

package space.kscience.kmath.expressions

import space.kscience.kmath.operations.RealField
import space.kscience.kmath.operations.invoke
import kotlin.test.Test
import kotlin.test.assertEquals
import kotlin.test.assertFails

class ExpressionFieldTest {
    val x by symbol

    @Test
    fun testExpression() {
        val context = FunctionalExpressionField(RealField)

        val expression = context {
            val x by binding()
            x * x + 2 * x + one
        }

        assertEquals(expression(x to 1.0), 4.0)
        assertFails { expression() }
    }

    @Test
    fun separateContext() {
        fun  FunctionalExpressionField.expression(): Expression {
            val x by binding()
            return x * x + 2 * x + one
        }

        val expression = FunctionalExpressionField(RealField).expression()
        assertEquals(expression(x to 1.0), 4.0)
    }

    @Test
    fun valueExpression() {
        val expressionBuilder: FunctionalExpressionField.() -> Expression = {
            val x by binding()
            x * x + 2 * x + one
        }

        val expression = FunctionalExpressionField(RealField).expressionBuilder()
        assertEquals(expression(x to 1.0), 4.0)
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy