From 4cefcd0213e584b4fcac95bf46a528fe320177f7 Mon Sep 17 00:00:00 2001
From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz>
Date: Tue, 4 Sep 2018 07:35:03 +0200
Subject: [PATCH] more detailed set_symmetric_difference test

---
 alib2std/test-src/extensions/AlgorithmTest.cpp | 17 +++++++++++++++++
 alib2std/test-src/extensions/AlgorithmTest.h   |  2 ++
 2 files changed, 19 insertions(+)

diff --git a/alib2std/test-src/extensions/AlgorithmTest.cpp b/alib2std/test-src/extensions/AlgorithmTest.cpp
index 1b4bb5bf97..3a35c1471c 100644
--- a/alib2std/test-src/extensions/AlgorithmTest.cpp
+++ b/alib2std/test-src/extensions/AlgorithmTest.cpp
@@ -1,6 +1,7 @@
 #include "AlgorithmTest.h"
 #include <alib/algorithm>
 #include <alib/set>
+#include <alib/vector>
 
 CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( AlgorithmTest, "bits" );
 CPPUNIT_TEST_SUITE_REGISTRATION( AlgorithmTest );
@@ -139,3 +140,19 @@ void AlgorithmTest::testFindRange ( ) {
 		CPPUNIT_ASSERT ( range.second - str.begin ( ) == 14 );
 	}
 }
+
+void AlgorithmTest::testSymmetricDifference ( ) {
+	ext::set < int > a { 1,    3,    5, 6, 7, 8, 9 };
+	ext::set < int > b { 1, 2, 3, 4, 5,    7, 8    };
+
+	ext::vector < int > a_b { 6, 9 };
+	ext::vector < int > b_a { 2, 4 };
+
+	ext::vector < int > a_b2;
+	ext::vector < int > b_a2;
+
+	ext::set_symmetric_difference ( a.begin ( ), a.end ( ), b.begin ( ), b.end ( ), std::back_inserter ( a_b2 ), std::back_inserter ( b_a2 ) );
+
+	CPPUNIT_ASSERT ( a_b == a_b2 );
+	CPPUNIT_ASSERT ( b_a == b_a2 );
+}
diff --git a/alib2std/test-src/extensions/AlgorithmTest.h b/alib2std/test-src/extensions/AlgorithmTest.h
index 688e981e3b..f10b9b302b 100644
--- a/alib2std/test-src/extensions/AlgorithmTest.h
+++ b/alib2std/test-src/extensions/AlgorithmTest.h
@@ -9,6 +9,7 @@ class AlgorithmTest : public CppUnit::TestFixture
   CPPUNIT_TEST( testExclude );
   CPPUNIT_TEST( testTransform );
   CPPUNIT_TEST( testFindRange );
+  CPPUNIT_TEST( testSymmetricDifference );
   CPPUNIT_TEST_SUITE_END();
 
 public:
@@ -18,6 +19,7 @@ public:
   void testExclude();
   void testTransform();
   void testFindRange();
+  void testSymmetricDifference ( );
 };
 
 #endif  // ALGORITHM_TEST_H_
-- 
GitLab