From b98bb0df11fb8bc9748247da004321ab94e954c5 Mon Sep 17 00:00:00 2001 From: Garami Bence <85867500+garamibence@users.noreply.github.com> Date: Wed, 13 Oct 2021 20:59:35 +0200 Subject: Add scope for new and delete with tests --- language-model/problem.aird | 14 +++---- .../language/model/tests/ProblemTestUtil.java | 47 +++++++++++++++++++++- 2 files changed, 52 insertions(+), 9 deletions(-) (limited to 'language-model') diff --git a/language-model/problem.aird b/language-model/problem.aird index 52f96061..c5652fe4 100644 --- a/language-model/problem.aird +++ b/language-model/problem.aird @@ -7,7 +7,7 @@ build/resources/main/model/problem.genmodel - + @@ -765,8 +765,8 @@ - - + + @@ -1731,17 +1731,17 @@ - + - + - + - + diff --git a/language-model/src/testFixtures/java/tools/refinery/language/model/tests/ProblemTestUtil.java b/language-model/src/testFixtures/java/tools/refinery/language/model/tests/ProblemTestUtil.java index b412ed1f..dadc5330 100644 --- a/language-model/src/testFixtures/java/tools/refinery/language/model/tests/ProblemTestUtil.java +++ b/language-model/src/testFixtures/java/tools/refinery/language/model/tests/ProblemTestUtil.java @@ -7,26 +7,33 @@ import org.eclipse.emf.ecore.resource.Resource.Diagnostic; import org.eclipse.emf.ecore.util.EcoreUtil; import tools.refinery.language.model.ProblemUtil; +import tools.refinery.language.model.problem.ActionLiteral; import tools.refinery.language.model.problem.Argument; import tools.refinery.language.model.problem.Assertion; import tools.refinery.language.model.problem.AssertionArgument; import tools.refinery.language.model.problem.Atom; import tools.refinery.language.model.problem.ClassDeclaration; import tools.refinery.language.model.problem.Conjunction; +import tools.refinery.language.model.problem.DeleteActionLiteral; import tools.refinery.language.model.problem.EnumDeclaration; import tools.refinery.language.model.problem.Literal; import tools.refinery.language.model.problem.NamedElement; import tools.refinery.language.model.problem.NegativeLiteral; +import tools.refinery.language.model.problem.NewActionLiteral; import tools.refinery.language.model.problem.Node; import tools.refinery.language.model.problem.NodeAssertionArgument; import tools.refinery.language.model.problem.NodeValueAssertion; import tools.refinery.language.model.problem.Parameter; +import tools.refinery.language.model.problem.ParametricDefinition; import tools.refinery.language.model.problem.PredicateDefinition; import tools.refinery.language.model.problem.Problem; import tools.refinery.language.model.problem.ReferenceDeclaration; import tools.refinery.language.model.problem.Relation; +import tools.refinery.language.model.problem.RuleDefinition; import tools.refinery.language.model.problem.Statement; import tools.refinery.language.model.problem.UniqueDeclaration; +import tools.refinery.language.model.problem.ValueActionLiteral; +import tools.refinery.language.model.problem.ValueLiteral; import tools.refinery.language.model.problem.Variable; import tools.refinery.language.model.problem.VariableOrNode; import tools.refinery.language.model.problem.VariableOrNodeArgument; @@ -49,17 +56,29 @@ public class ProblemTestUtil { return namedStatementOfType(problem, PredicateDefinition.class, name); } - public Parameter param(PredicateDefinition definition, int i) { + public RuleDefinition rule(Problem problem, String name) { + return namedStatementOfType(problem, RuleDefinition.class, name); + } + + public Parameter param(ParametricDefinition definition, int i) { return definition.getParameters().get(i); } - public Conjunction conj(PredicateDefinition definition, int i) { + public Conjunction conj(ParametricDefinition definition, int i) { return definition.getBodies().get(i); } public Literal lit(Conjunction conjunction, int i) { return conjunction.getLiterals().get(i); } + + public ActionLiteral actionLit(RuleDefinition rule, int i) { + return rule.getAction().getActionLiterals().get(i); + } + + public Atom valueAtom(Literal literal) { + return ((ValueLiteral) literal).getAtom(); + } public Atom negated(Literal literal) { return ((NegativeLiteral) literal).getAtom(); @@ -85,6 +104,30 @@ public class ProblemTestUtil { return (Variable) variableOrNode(argument); } + public Variable variable(ValueActionLiteral valueActionLiteral, int i) { + return variable(arg(valueActionLiteral.getAtom(), i)); + } + + public Variable variable(NewActionLiteral newActionLiteral) { + return newActionLiteral.getVariable(); + } + + public VariableOrNode deleteVar(ActionLiteral actionLiteral) { + return ((DeleteActionLiteral) actionLiteral).getVariableOrNode(); + } + + public VariableOrNode newVar(ActionLiteral actionLiteral) { + return ((NewActionLiteral) actionLiteral).getVariable(); + } + + public Atom valueAtom(ActionLiteral actionLiteral) { + return ((ValueActionLiteral) actionLiteral).getAtom(); + } + + public Variable variable(DeleteActionLiteral deleteActionLiteral) { + return (Variable) deleteActionLiteral.getVariableOrNode(); + } + public Node node(Argument argument) { return (Node) variableOrNode(argument); } -- cgit v1.2.3-54-g00ecf