Skip to content
Snippets Groups Projects
CompareTest.cpp 1.39 KiB
Newer Older
  • Learn to ignore specific revisions
  • #include "CompareTest.h"
    #include <set>
    #include <vector>
    #include <pair>
    
    #include <map>
    
    #include <tuple>
    
    
    
    CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( CompareTest, "bits" );
    CPPUNIT_TEST_SUITE_REGISTRATION( CompareTest );
    
    void CompareTest::setUp() {
    }
    
    void CompareTest::tearDown() {
    }
    
    void CompareTest::testCompare() {
    
    	ext::vector<int> vector1 {1, 2, 3};
    	ext::vector<int> vector2 {2, 3, 4};
    
    	ext::compare<ext::vector<int>> comp1;
    
    	CPPUNIT_ASSERT(comp1(vector1, vector2) < 0);
    
    
    	ext::set<ext::vector<int>> set1 {vector1};
    	ext::set<ext::vector<int>> set2 {vector2};
    
    	ext::compare<ext::set<ext::vector<int>>> comp2;
    
    	CPPUNIT_ASSERT(comp2(set1, set2) < 0);
    
    
    	ext::pair<ext::set<ext::vector<int>>, ext::set<ext::vector<int>>> pair1 {set1, set2};
    	ext::pair<ext::set<ext::vector<int>>, ext::set<ext::vector<int>>> pair2 {set2, set1};
    
    	ext::compare<ext::pair<ext::set<ext::vector<int>>, ext::set<ext::vector<int>>>> comp3;
    
    	CPPUNIT_ASSERT(comp3(pair1, pair2) < 0);
    
    
    	int two = 2;
    	int three = 3;
    	int four = 4;
    
    
    	ext::map<int, const int*> map1 = { {1, &two}, {2, &three} };
    	ext::map<int, const int*> map2 = { {2, &three}, {3, &four} };
    
    	ext::compare<ext::map<int, const int*>> comp4;
    
    	CPPUNIT_ASSERT(comp4(map1, map2) < 0);
    
    
    	auto first = ext::tie(vector1, set1, pair1, map1);
    	auto second = ext::tie(vector2, set2, pair2, map2);
    
    	ext::compare<decltype ( first ) > comp5;
    
    	CPPUNIT_ASSERT(comp5(first, second) < 0);