diff --git a/core/vdm2c/src/test/java/org/overture/codegen/vdm2c/NativeTests.java b/core/vdm2c/src/test/java/org/overture/codegen/vdm2c/NativeTests.java index e35f0a81..2d8b3155 100644 --- a/core/vdm2c/src/test/java/org/overture/codegen/vdm2c/NativeTests.java +++ b/core/vdm2c/src/test/java/org/overture/codegen/vdm2c/NativeTests.java @@ -79,6 +79,14 @@ public void ExpressionQuote() throws IOException, InterruptedException, generate(getPath("expressions/ExpressionQuote.vdmrt")); compileAndTest(getTestCppFile("quote/ExpressionQuote_Tests.cpp")); } + + @Test + public void ExpressionComprehensions() throws IOException, InterruptedException, + CMakeGenerateException + { + generate(getPath("expressions/ExpressionComprehensions.vdmrt")); + compileAndTest(getTestCppFile("comprehensions/ExpressionComprehensions_Tests.cpp")); + } @Test public void SubclassResponsibility() throws IOException, InterruptedException, diff --git a/core/vdm2c/src/test/resources/native/comprehensions/ExpressionComprehensions_Tests.cpp b/core/vdm2c/src/test/resources/native/comprehensions/ExpressionComprehensions_Tests.cpp new file mode 100644 index 00000000..e76edc06 --- /dev/null +++ b/core/vdm2c/src/test/resources/native/comprehensions/ExpressionComprehensions_Tests.cpp @@ -0,0 +1,21 @@ + +#include "gtest/gtest.h" + +extern "C" { +#include "Vdm.h" +#include +#include "ExpressionComprehensions.h" + +} + +#define CHECK(methodId) TVP c=_Z24ExpressionComprehensionsEV(NULL);\ +TVP res=CALL_FUNC( ExpressionComprehensions, ExpressionComprehensions,c,methodId);\ +EXPECT_EQ (true,res->value.boolVal);\ +vdmFree(res);\ +vdmFree(c) + +TEST(ExpressionComprehensions, retSetComp) +{ + CHECK(CLASS_ExpressionComprehensions__Z10retSetCompEV); +} + diff --git a/core/vdm2c/src/test/resources/vdmrt/expressions/ExpressionComprehensions.vdmrt b/core/vdm2c/src/test/resources/vdmrt/expressions/ExpressionComprehensions.vdmrt new file mode 100644 index 00000000..d35991c0 --- /dev/null +++ b/core/vdm2c/src/test/resources/vdmrt/expressions/ExpressionComprehensions.vdmrt @@ -0,0 +1,8 @@ +class ExpressionComprehensions + +functions + +public retSetComp : () -> bool +retSetComp () == {x | x in set {1,2,3} & x > 0} = {1,2,3}; + +end ExpressionComprehensions \ No newline at end of file