package org.shedlang.compiler.parser; import org.junit.jupiter.api.Test; import static org.shedlang.compiler.ast.untyped.UntypedNodeMatchers.*; import static org.shedlang.compiler.parser.ParserTesting.parseString; import static org.zwobble.precisely.AssertThat.assertThat; public class ParserRelationalOperationTests { @Test public void canParseLessThanExpression() { var source = "1 < 2"; var node = parseString(source, Parser::parseTopLevelExpression); assertThat(node, isUntypedLessThanNode( isUntypedIntLiteralNode(1), isUntypedIntLiteralNode(2) )); } @Test public void canParseLessThanOrEqualExpression() { var source = "1 <= 2"; var node = parseString(source, Parser::parseTopLevelExpression); assertThat(node, isUntypedLessThanOrEqualNode( isUntypedIntLiteralNode(1), isUntypedIntLiteralNode(2) )); } @Test public void canParseGreaterThanExpression() { var source = "1 > 2"; var node = parseString(source, Parser::parseTopLevelExpression); assertThat(node, isUntypedGreaterThanNode( isUntypedIntLiteralNode(1), isUntypedIntLiteralNode(2) )); } @Test public void canParseGreaterThanOrEqualExpression() { var source = "1 >= 2"; var node = parseString(source, Parser::parseTopLevelExpression); assertThat(node, isUntypedGreaterThanOrEqualNode( isUntypedIntLiteralNode(1), isUntypedIntLiteralNode(2) )); } }