diff --git a/alib2data/test-src/std/StdSet.cpp b/alib2data/test-src/std/StdSet.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..b67f5013a9bf1c5409830d8c18c7a4f2e542e8b8
--- /dev/null
+++ b/alib2data/test-src/std/StdSet.cpp
@@ -0,0 +1,45 @@
+#include "StdSet.h"
+#include <set>
+#include <algorithm>
+
+#include "alphabet/Symbol.h"
+
+CPPUNIT_TEST_SUITE_REGISTRATION( StdSet );
+
+void StdSet::setUp() {
+}
+
+void StdSet::tearDown() {
+}
+
+void StdSet::test1() {
+	int first[] = {5,10,15,20,25};
+	int second[] = {50,40,30,20,10};
+	std::vector<int> v(10);                      // 0  0  0  0  0  0  0  0  0  0
+	std::vector<int>::iterator it;
+
+	std::sort (first,first+5);     //  5 10 15 20 25
+	std::sort (second,second+5);   // 10 20 30 40 50
+
+	it=std::set_difference (first, first+5, second, second+5, v.begin());
+	v.resize(it-v.begin());
+
+	CPPUNIT_ASSERT_EQUAL(5,  v[0]);
+	CPPUNIT_ASSERT_EQUAL(15, v[1]);
+	CPPUNIT_ASSERT_EQUAL(25, v[2]);
+}
+
+
+void StdSet::test2() {
+	std::set<alphabet::Symbol> first  = {alphabet::symbolFrom(1)};
+	std::set<alphabet::Symbol> second  = {alphabet::symbolFrom(1), alphabet::symbolFrom(2), alphabet::symbolFrom(3)};
+
+	std::set<alphabet::Symbol> firstMinusSecond;
+	std::set<alphabet::Symbol> secondMinusFirst;
+
+	std::set_difference (first.begin(), first.end(), second.begin(), second.end(), std::inserter(firstMinusSecond, firstMinusSecond.end()));
+	std::set_difference (second.begin(), second.end(), first.begin(), first.end(), std::inserter(secondMinusFirst, secondMinusFirst.end()));
+
+	CPPUNIT_ASSERT_EQUAL(firstMinusSecond.size(), 0ul);
+	CPPUNIT_ASSERT_EQUAL(secondMinusFirst.size(), 2ul);
+}
diff --git a/alib2data/test-src/std/StdSet.h b/alib2data/test-src/std/StdSet.h
new file mode 100644
index 0000000000000000000000000000000000000000..42578867d332dd88474aa9d8bfb1458c82df5c7c
--- /dev/null
+++ b/alib2data/test-src/std/StdSet.h
@@ -0,0 +1,21 @@
+#ifndef SET_TEST_H_
+#define SET_TEST_H_
+
+#include <cppunit/extensions/HelperMacros.h>
+
+class StdSet : public CppUnit::TestFixture
+{
+  CPPUNIT_TEST_SUITE( StdSet );
+  CPPUNIT_TEST( test1 );
+  CPPUNIT_TEST( test2 );
+  CPPUNIT_TEST_SUITE_END();
+
+public:
+  void setUp();
+  void tearDown();
+
+  void test1();
+  void test2();
+};
+
+#endif  // SET_TEST_H_