diff options
Diffstat (limited to 'pmt/src')
-rw-r--r-- | pmt/src/lib/qa_pmt_prims.cc | 21 | ||||
-rw-r--r-- | pmt/src/lib/qa_pmt_prims.h | 2 |
2 files changed, 23 insertions, 0 deletions
diff --git a/pmt/src/lib/qa_pmt_prims.cc b/pmt/src/lib/qa_pmt_prims.cc index 57db4a1a9..39cf9ce46 100644 --- a/pmt/src/lib/qa_pmt_prims.cc +++ b/pmt/src/lib/qa_pmt_prims.cc @@ -413,3 +413,24 @@ qa_pmt_prims::test_serialize() // FIXME add tests for malformed input too. } + +void +qa_pmt_prims::test_sets() +{ + pmt_t s1 = pmt_intern("s1"); + pmt_t s2 = pmt_intern("s2"); + pmt_t s3 = pmt_intern("s3"); + + pmt_t l1 = pmt_list1(s1); + pmt_t l2 = pmt_list2(s2,s3); + pmt_t l3 = pmt_list3(s1,s2,s3); + + CPPUNIT_ASSERT(pmt_is_pair(pmt_memq(s1,l1))); + CPPUNIT_ASSERT(pmt_is_false(pmt_memq(s3,l1))); + + CPPUNIT_ASSERT(pmt_subsetp(l1,l3)); + CPPUNIT_ASSERT(pmt_subsetp(l2,l3)); + CPPUNIT_ASSERT(!pmt_subsetp(l1,l2)); + CPPUNIT_ASSERT(!pmt_subsetp(l2,l1)); + CPPUNIT_ASSERT(!pmt_subsetp(l3,l2)); +} diff --git a/pmt/src/lib/qa_pmt_prims.h b/pmt/src/lib/qa_pmt_prims.h index 919fc2dca..effb3a097 100644 --- a/pmt/src/lib/qa_pmt_prims.h +++ b/pmt/src/lib/qa_pmt_prims.h @@ -42,6 +42,7 @@ class qa_pmt_prims : public CppUnit::TestCase { CPPUNIT_TEST(test_io); CPPUNIT_TEST(test_lists); CPPUNIT_TEST(test_serialize); + CPPUNIT_TEST(test_sets); CPPUNIT_TEST_SUITE_END(); private: @@ -59,6 +60,7 @@ class qa_pmt_prims : public CppUnit::TestCase { void test_io(); void test_lists(); void test_serialize(); + void test_sets(); }; #endif /* INCLUDED_QA_PMT_PRIMS_H */ |