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