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 );
Unit tests the WUnionFind datastructure.
void testMaxSet(void)
Ensure that only the maximal set is returned, and nothing else.
void testUnionMergesToBiggerIndex(void)
The union always ensure that the new canonical element is the biggest index.
Implements a very simple union-find datastructure aka disjoint_sets.
std::shared_ptr< std::set< size_t > > getMaxSet()
Computes the set with maximum number of elements.
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.