public void StringTest1() { var stream = CharStreams.fromstring(@"package RobotsTestModel context aMotorsForward inv@0: ""ABC""->toLower() = ""abc"" inv@0: ""123""->toInteger() = 123 inv@0: ""123""->toReal() = 123 inv@0: ""abc""->toUpper() = ""ABC"" inv@0: ""abc""->concat(""cde"")->toUpper() = ""ABCCDE"" inv@0: ""abc""->substring(1, 1) = ""a"" endpackage"); ITokenSource lexer = new OclLexer(stream); ITokenStream tokens = new CommonTokenStream(lexer); var parser = new OclParser(tokens) { BuildParseTree = true }; IParseTree tree = parser.oclFile(); Assert.IsTrue(tree.Accept(interpreter)); }
public void CollectionTest1() { var stream = CharStreams.fromstring(@"package RobotsTestModel context aMotorsForward inv@0: Bag{ ""a"", ""bb"", ""ccc""}->select(self->size() = 2)->size() = 1 inv@0: Bag{1,2,3}->forAll(x, y | x <> y implies x*y > 1) inv@0: Bag{1,2,3}->iterate(x; y : T = 0 | y + x) = 6 inv@0: Set{""1"",""2"",""3""}->collect(self = ""0"")->size() = 3 inv@0: Bag{""1"",""2"",""3""}->any(self.toInteger() > 2).toInteger() = 3 inv@0: aMotorsForward->allInstances()->size() > -1 endpackage"); ITokenSource lexer = new OclLexer(stream); ITokenStream tokens = new CommonTokenStream(lexer); var parser = new OclParser(tokens) { BuildParseTree = true }; IParseTree tree = parser.oclFile(); Assert.IsTrue(tree.Accept(interpreter)); }
public void NumberTest1() { var stream = CharStreams.fromstring(@"package RobotsTestModel context aMotorsForward inv@0: 1->max(2) = 2 inv@0: 5->div(2) = 2 inv@0: 5->min(2) = 2 inv@0: 5->mod(2) = 1 inv@0: 5->abs() = 5 endpackage"); ITokenSource lexer = new OclLexer(stream); ITokenStream tokens = new CommonTokenStream(lexer); var parser = new OclParser(tokens) { BuildParseTree = true }; IParseTree tree = parser.oclFile(); Assert.IsTrue(tree.Accept(interpreter)); }
public void FuncTest1() { var stream = CharStreams.fromstring(@"package ObjectMetamodel context FunctionNode inv@2: self.params@1 <> self.callParams@2 endpackage"); ITokenSource lexer = new OclLexer(stream); ITokenStream tokens = new CommonTokenStream(lexer); var parser = new OclParser(tokens) { BuildParseTree = true }; IParseTree tree = parser.oclFile(); Assert.IsTrue(tree.Accept(interpreter)); }