| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- //
- // trie.t.h
- // trie
- //
- // Created by Sam Jaffe on 6/16/17.
- //
- #pragma once
- #include <cxxtest/TestSuite.h>
- #include "trie.hpp"
- class trie_TestSuite : public CxxTest::TestSuite {
- private:
- trie<int, int> data;
-
- void setUp() override {
- data.clear();
- data = -1;
- data[0] = 5;
- data[1] = 2;
- data[{0, 1}] = 4;
- }
- public:
- void testIterationIsPreOrder() {
- auto it = data.cbegin();
- TS_ASSERT_EQUALS(*it, -1);
- TS_ASSERT_EQUALS(*++it, 5);
- TS_ASSERT_EQUALS(*++it, 4);
- TS_ASSERT_EQUALS(*++it, 2);
- TS_ASSERT_EQUALS(++it, data.cend());
- }
-
- void testPostIterationIsPostOrder() {
- auto it = trie<int, int>::const_post_iterator{&data};
- decltype(it) end{};
- TS_ASSERT_EQUALS(*it, -1);
- TS_ASSERT_EQUALS(*++it, 2);
- TS_ASSERT_EQUALS(*++it, 5);
- TS_ASSERT_EQUALS(*++it, 4);
- TS_ASSERT_EQUALS(++it, end);
- }
- void testReverseIterationIsInvDepthFirst() {
- auto it = data.crbegin();
- TS_ASSERT_EQUALS(*it, 2);
- TS_ASSERT_EQUALS(*++it, 4);
- TS_ASSERT_EQUALS(*++it, 5);
- TS_ASSERT_EQUALS(*++it, -1);
- TS_ASSERT_EQUALS(++it, data.crend());
- }
- void testCopyCtorIsDeepCopy() {
- trie<int, int> copy{data};
- TS_ASSERT_EQUALS(data, copy);
- copy[{0, 1}] = 3;
- TS_ASSERT_DIFFERS(data, copy);
- }
- };
|