25 #ifndef WUNIONFIND_TEST_H
26 #define WUNIONFIND_TEST_H
31 #include <cxxtest/TestSuite.h>
33 #include "../WUnionFind.h"
49 size_t data[] = { 0, 1, 2, 3, 0 };
50 std::vector< size_t > expected( data, data + 5 );
64 for(
int i = 2; i < 6; ++i )
68 size_t data[] = { 2, 3, 4, 5, 6 };
69 std::set< size_t > expected( data, data + 5 );
70 TS_ASSERT_EQUALS( *uf.
getMaxSet(), expected );
74 #endif // WUNIONFIND_TEST_H
Implements a very simple union-find datastructure aka disjoint_sets.
void merge(size_t i, size_t j)
Merges two components (iow: makes a union) where the given elements are members of.
std::vector< size_t > m_component
Stores for each index its ID.
void testUnionMergesToBiggerIndex(void)
The union always ensure that the new canonical element is the biggest index.
boost::shared_ptr< std::set< size_t > > getMaxSet()
Computes the set with maximum number of elements.
void testMaxSet(void)
Ensure that only the maximal set is returned, and nothing else.
Unit tests the WUnionFind datastructure.