1 #include "library/perm.hpp" 2 #include "library/algorithms.hpp" 3 main(void)4int main(void) 5 { 6 Permutation p; 7 D_ASSERT(p[1] == 1); 8 D_ASSERT(p[100] == 100); 9 10 vec1<int> v; 11 v.push_back(2); 12 v.push_back(1); 13 Permutation p2(v); 14 D_ASSERT(p2[1] == 2); 15 D_ASSERT(p2[2] == 1); 16 D_ASSERT(p2[3] == 3); 17 D_ASSERT(!(p == p2)); 18 19 vec1<Permutation> vp; 20 vp.push_back(p); 21 vp.push_back(p2); 22 D_ASSERT(p2 == mergePermutations(vp)); 23 24 vec1<Permutation> vp2; 25 vp2.push_back(p2); 26 vp2.push_back(p2); 27 D_ASSERT(p == mergePermutations(vp2)); 28 29 v.clear(); 30 v.push_back(1); 31 v.push_back(3); 32 v.push_back(2); 33 Permutation p3(v); 34 35 PermutationStack ps; 36 ps.addPerm(p2); 37 ps.addPerm(p3); 38 D_ASSERT(ps[1] == 3); 39 D_ASSERT(ps[2] == 1); 40 D_ASSERT(ps[3] == 2); 41 D_ASSERT(ps[4] == 4); 42 43 vec1<Permutation> vp3; 44 vp3.push_back(p2); 45 vp3.push_back(p3); 46 D_ASSERT(ps.getPerm() == mergePermutations(vp3)); 47 48 p2 = p3; 49 p3 = p3; 50 51 vec1<int> v2; 52 53 Permutation p4(v2); 54 D_ASSERT(p4[1] == 1); 55 D_ASSERT(p4[2] == 2); 56 D_ASSERT(p4.size() == 0); 57 }