From 7fb99f0225911a8962aaf3493b89f41e791df359 Mon Sep 17 00:00:00 2001 From: Kristóf Marussy Date: Mon, 19 Sep 2022 21:33:55 +0200 Subject: feat(language): problem desugaring --- .../language/model/tests/utils/WrappedArgument.java | 8 ++------ .../model/tests/utils/WrappedAssertionArgument.java | 7 ++++++- .../refinery/language/model/tests/utils/WrappedProblem.java | 13 +++++++++---- 3 files changed, 17 insertions(+), 11 deletions(-) (limited to 'subprojects/language/src/testFixtures') diff --git a/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedArgument.java b/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedArgument.java index 61492184..ad57a438 100644 --- a/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedArgument.java +++ b/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedArgument.java @@ -1,10 +1,6 @@ package tools.refinery.language.model.tests.utils; -import tools.refinery.language.model.problem.Argument; -import tools.refinery.language.model.problem.Node; -import tools.refinery.language.model.problem.Variable; -import tools.refinery.language.model.problem.VariableOrNode; -import tools.refinery.language.model.problem.VariableOrNodeArgument; +import tools.refinery.language.model.problem.*; public record WrappedArgument(Argument argument) { public Argument get() { @@ -18,7 +14,7 @@ public record WrappedArgument(Argument argument) { public Variable variable() { return (Variable) variableOrNode(); } - + public Node node() { return (Node) variableOrNode(); } diff --git a/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedAssertionArgument.java b/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedAssertionArgument.java index 77ad3746..b8b3a7de 100644 --- a/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedAssertionArgument.java +++ b/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedAssertionArgument.java @@ -1,6 +1,7 @@ package tools.refinery.language.model.tests.utils; import tools.refinery.language.model.problem.AssertionArgument; +import tools.refinery.language.model.problem.ConstantAssertionArgument; import tools.refinery.language.model.problem.Node; import tools.refinery.language.model.problem.NodeAssertionArgument; @@ -8,8 +9,12 @@ public record WrappedAssertionArgument(AssertionArgument assertionArgument) { public AssertionArgument get() { return assertionArgument; } - + public Node node() { return ((NodeAssertionArgument) assertionArgument).getNode(); } + + public Node constantNode() { + return ((ConstantAssertionArgument) assertionArgument).getNode(); + } } diff --git a/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedProblem.java b/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedProblem.java index 2bedb4a6..aef96b5b 100644 --- a/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedProblem.java +++ b/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedProblem.java @@ -6,7 +6,6 @@ import java.util.stream.Stream; import org.eclipse.emf.ecore.resource.Resource.Diagnostic; import org.eclipse.emf.ecore.util.EcoreUtil; -import tools.refinery.language.ProblemUtil; import tools.refinery.language.model.problem.Assertion; import tools.refinery.language.model.problem.ClassDeclaration; import tools.refinery.language.model.problem.EnumDeclaration; @@ -18,6 +17,8 @@ import tools.refinery.language.model.problem.PredicateDefinition; import tools.refinery.language.model.problem.Problem; import tools.refinery.language.model.problem.RuleDefinition; import tools.refinery.language.model.problem.Statement; +import tools.refinery.language.utils.BuiltinSymbols; +import tools.refinery.language.utils.ProblemDesugarer; public record WrappedProblem(Problem problem) { public Problem get() { @@ -30,11 +31,15 @@ public record WrappedProblem(Problem problem) { } public WrappedProblem builtin() { - return new WrappedProblem(ProblemUtil.getBuiltInLibrary(problem).get()); + return new WrappedProblem(new ProblemDesugarer().getBuiltinProblem(problem).orElseThrow()); + } + + public BuiltinSymbols builtinSymbols() { + return new ProblemDesugarer().getBuiltinSymbols(problem).orElseThrow(); } public List nodeNames() { - return problem.getNodes().stream().map(node -> node.getName()).toList(); + return problem.getNodes().stream().map(Node::getName).toList(); } public WrappedPredicateDefinition pred(String name) { @@ -80,6 +85,6 @@ public record WrappedProblem(Problem problem) { } private T nthStatementOfType(Class type, int n) { - return statementsOfType(type).skip(n).findFirst().get(); + return statementsOfType(type).skip(n).findFirst().orElseThrow(); } } -- cgit v1.2.3-54-g00ecf