diff --git a/ref-code-adaptation/src/test/java/de/monticore/codeAdaption/evaluation/ConfCheckerEvalTest.java b/ref-code-adaptation/src/test/java/de/monticore/codeAdaption/evaluation/ConfCheckerEvalTest.java index a04ed62f..b5a1f290 100644 --- a/ref-code-adaptation/src/test/java/de/monticore/codeAdaption/evaluation/ConfCheckerEvalTest.java +++ b/ref-code-adaptation/src/test/java/de/monticore/codeAdaption/evaluation/ConfCheckerEvalTest.java @@ -41,4 +41,26 @@ public void evaluationConformanceCheckerCDtest() { double duration = (System.currentTimeMillis() - start) / 1000.0; System.out.println("duration: " + duration); } + + @Test + @DisplayName("Evaluation conformance checker design patterns") + public void evaluationConformanceCheckerCDtest2() { + long start = System.currentTimeMillis(); + Set mappings = Set.of("ci", "re"); + ASTCDCompilationUnit conCD = JavaLoader.loadCD( + new File(resourcesPath + "design-patterns/Graphic.cd")); + ASTCDCompilationUnit refCD = JavaLoader.loadCD( + new File(resourcesPath + "design-patterns/Composition.cd")); + + CDConformanceChecker conformanceChecker = new CDConformanceChecker(confParameters); + Assertions.assertTrue(conformanceChecker.checkConformance(conCD, refCD, mappings)); + + mappings = Set.of("npg"); + refCD = JavaLoader.loadCD(new File(resourcesPath + "design-patterns/Adapter.cd")); + Assertions.assertTrue(conformanceChecker.checkConformance(conCD, refCD, mappings)); + + + double duration = (System.currentTimeMillis() - start) / 1000.0; + System.out.println("duration: " + duration); + } } diff --git a/ref-code-adaptation/src/test/resources/de/monticore/codeAdaption/evaluation/design-patterns/Adapter.cd b/ref-code-adaptation/src/test/resources/de/monticore/codeAdaption/evaluation/design-patterns/Adapter.cd new file mode 100644 index 00000000..17e8327f --- /dev/null +++ b/ref-code-adaptation/src/test/resources/de/monticore/codeAdaption/evaluation/design-patterns/Adapter.cd @@ -0,0 +1,10 @@ +classdiagram Adapter { + + interface Target { void operation(); } + + class Adapter implements Target ; + + class Adaptee; + + association Adapter -> Adaptee [1]; +} \ No newline at end of file diff --git a/ref-code-adaptation/src/test/resources/de/monticore/codeAdaption/evaluation/design-patterns/Composition.cd b/ref-code-adaptation/src/test/resources/de/monticore/codeAdaption/evaluation/design-patterns/Composition.cd new file mode 100644 index 00000000..253749ec --- /dev/null +++ b/ref-code-adaptation/src/test/resources/de/monticore/codeAdaption/evaluation/design-patterns/Composition.cd @@ -0,0 +1,10 @@ +classdiagram Composition { + + interface Component { void execute(); } + + class Leaf implements Component ; + + class Composite implements Component ; + + association Composite -> Component [1..*]; +} \ No newline at end of file diff --git a/ref-code-adaptation/src/test/resources/de/monticore/codeAdaption/evaluation/design-patterns/Graphic.cd b/ref-code-adaptation/src/test/resources/de/monticore/codeAdaption/evaluation/design-patterns/Graphic.cd new file mode 100644 index 00000000..f17479de --- /dev/null +++ b/ref-code-adaptation/src/test/resources/de/monticore/codeAdaption/evaluation/design-patterns/Graphic.cd @@ -0,0 +1,35 @@ +classdiagram Graphic { + + <> + interface Graphic { + <> void render(); + } + + <> + class Circle implements Graphic { + public void render(); + } + + <> + class Rectangle implements Graphic{ + public void render(); + } + + <> + class Picture implements Graphic{ + public void render(); + } + + association Picture -> Graphic [1..*]; + + <> interface FlexImage { + <> void flex(); + } + + <> + class NPGAdapter implements FlexImage; + + <> class NPGImage; + + association NPGAdapter -> NPGImage [1]; +} \ No newline at end of file