package io.gitlab.jfronny.respackopts.test; import io.gitlab.jfronny.muscript.compiler.Parser; import io.gitlab.jfronny.muscript.data.Scope; import io.gitlab.jfronny.respackopts.util.MuUtils; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; public class TemporalExpressionTest { @Test void componentTest() { Scope param = MuUtils.addDefault(new Scope()); assertEquals(10, Parser.parse("date(2020, 5, 10).day").asNumberExpr().get(param)); assertEquals(5, Parser.parse("date(2020, 5, 10).month").asNumberExpr().get(param)); assertEquals(2020, Parser.parse("date(2020, 5, 10).year").asNumberExpr().get(param)); assertEquals(59, Parser.parse("time(13, 45, 59).second").asNumberExpr().get(param)); assertEquals(45, Parser.parse("time(13, 45, 59).minute").asNumberExpr().get(param)); assertEquals(13, Parser.parse("time(13, 45, 59).hour").asNumberExpr().get(param)); } @Test void compareTest() { Scope param = MuUtils.addDefault(new Scope()); assertTrue(Parser.parse("date(2020, 5, 10) > date(2020, 5, 9)").asBoolExpr().get(param)); assertTrue(Parser.parse("date(2020, 5, 10) > date(2020, 4, 10)").asBoolExpr().get(param)); assertTrue(Parser.parse("date(2020, 5, 10) > date(2019, 5, 10)").asBoolExpr().get(param)); assertTrue(Parser.parse("time(13, 45, 59) > time(13, 45, 58)").asBoolExpr().get(param)); assertTrue(Parser.parse("time(13, 45, 59) > time(13, 44, 59)").asBoolExpr().get(param)); assertTrue(Parser.parse("time(13, 45, 59) > time(12, 45, 59)").asBoolExpr().get(param)); } }