1 //:
2 // \file
3 #include "my_pyramid.h"
4 #include "my_top_level.h"
5 #include <vmap/tests/my_map.h>
6 #include "my_pyramid_functions.hxx"
7
8 #include <vmap/vmap_non_oriented_kernel.h>
9 #include <vmap/vmap_oriented_kernel.h>
10
11 //: tests non-oriented kernels functionalities.
vpyr_test_non_oriented_kernel2()12 void vpyr_test_non_oriented_kernel2()
13 {
14 my_tpyramid p ;
15
16 std::cout<<std::endl<<"-----------------------------------------"<<std::endl
17 <<"pyramid_type general contraction/removal test."<<std::endl
18 <<"-----------------------------------------"<<std::endl ;
19
20 build_base_grid(p) ;
21 my_top_level top(p) ;
22 initialise_ids(top) ;
23 display_tmap(top) ;
24
25 std::cout<<"Removal of {8,a(8),a(4),4,11,3}"<<std::endl ;
26
27 vmap_non_oriented_kernel<my_top_level::removal_kernel> K(top) ;
28 K.initialise() ;
29 if (!K.add(find_dart(top,8).alpha()))
30 std::cout<<"Couldn't add 8."<<std::endl ;
31 if (!K.add(find_dart(top,8)))
32 std::cout<<"Couldn't add a(8)."<<std::endl ;
33 if (!K.add(find_dart(top,4).alpha()))
34 std::cout<<"Couldn't add a(4)."<<std::endl ;
35 if (!K.add(find_dart(top,4)))
36 std::cout<<"Couldn't add 4."<<std::endl ;
37 if (!K.add(find_dart(top,11)))
38 std::cout<<"Couldn't add 11."<<std::endl ;
39 if (!K.add(find_dart(top,3)))
40 std::cout<<"Couldn't add 3."<<std::endl ;
41 K.finalise() ;
42 top.removal(K) ;
43 display_tpyramid(p) ;
44
45 my_top_level::contraction_kernel K2(top) ;
46
47 K2.initialise() ;
48 K2.add_1_cycles() ;
49 K2.finalise() ;
50 std::cout<<"Contraction of " ; display_kernel(K2) ; std::cout<<std::endl ;
51 top.contraction(K2) ;
52 display_tpyramid(p) ;
53 display_tmap(top) ;
54 K2.clear() ;
55 K2.initialise() ;
56 K2.add_2_cycles() ;
57 K2.finalise() ;
58 std::cout<<"Contraction of " ; display_kernel(K2) ; std::cout<<std::endl ;
59 top.contraction(K2) ;
60 display_tpyramid(p) ;
61 display_tmap(top) ;
62 }
63
64 //: tests oriented kernels functionalities.
vpyr_test_oriented_kernel2()65 void vpyr_test_oriented_kernel2()
66 {
67 my_tpyramid p ;
68
69 std::cout<<std::endl<<"-----------------------------------------"<<std::endl
70 <<"pyramid_type general contraction/removal test."<<std::endl
71 <<"-----------------------------------------"<<std::endl ;
72
73 build_base_grid(p) ;
74 my_top_level top(p) ;
75 initialise_ids(top) ;
76 display_tmap(top) ;
77
78 std::cout<<"Removal of {8,a(8),a(4),4,11,3}"<<std::endl ;
79
80 vmap_oriented_kernel<my_top_level::removal_kernel> K(top) ;
81 K.initialise() ;
82 if (!K.add(find_dart(top,8)))
83 std::cout<<"Couldn't add 8."<<std::endl ;
84 if (!K.add(find_dart(top,8).alpha()))
85 std::cout<<"Couldn't add a(8)."<<std::endl ;
86 if (!K.add(find_dart(top,4).alpha()))
87 std::cout<<"Couldn't add a(4)."<<std::endl ;
88 if (!K.add(find_dart(top,4)))
89 std::cout<<"Couldn't add 4."<<std::endl ;
90 if (!K.add(find_dart(top,11)))
91 std::cout<<"Couldn't add 11."<<std::endl ;
92 if (!K.add(find_dart(top,3)))
93 std::cout<<"Couldn't add 3."<<std::endl ;
94 K.finalise() ;
95 top.removal(K) ;
96 display_tpyramid(p) ;
97 display_tmap(top) ;
98
99 my_top_level::contraction_kernel K2(top) ;
100
101 K2.initialise() ;
102 K2.add_1_cycles() ;
103 K2.finalise() ;
104 std::cout<<"Contraction of " ; std::cout.flush() ; display_kernel(K2) ; std::cout<<std::endl ;
105 top.contraction(K2) ;
106 display_tpyramid(p) ;
107 display_tmap(top) ;
108
109 K2.clear() ;
110 K2.initialise() ;
111 K2.add_2_cycles() ;
112 K2.finalise() ;
113 std::cout<<"Contraction of " ; std::cout.flush() ; display_kernel(K2) ; std::cout<<std::endl ;
114 top.contraction(K2) ;
115 display_tpyramid(p) ;
116 display_tmap(top) ;
117 }
118
119
main()120 int main()
121 {
122 vpyr_test_non_oriented_kernel2() ;
123 vpyr_test_oriented_kernel2() ;
124 return 0 ;
125 }
126