00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #include <mln/core/alias/box1d.hh>
00027 #include <mln/core/alias/box2d.hh>
00028 #include <mln/core/alias/box3d.hh>
00029 #include <mln/fun/p2p/fold.hh>
00030
00031
00032 int main()
00033 {
00034 using namespace mln;
00035
00036 {
00037 box1d b(2);
00038 fun::p2p::fold<point1d> f(b);
00039 point1d p(2);
00040 mln_assertion( f(p) == point1d(0) );
00041 }
00042 {
00043 box2d b(2, 3);
00044 point2d p(2,3);
00045
00046 fun::p2p::fold<point2d,1,1> f_11(b);
00047 mln_assertion( f_11(p) == point2d(0,0) );
00048
00049 fun::p2p::fold<point2d,0,1> f_01(b);
00050 mln_assertion( f_01(p) == point2d(2,0) );
00051
00052 fun::p2p::fold<point2d,1,0> f_10(b);
00053 mln_assertion( f_10(p) == point2d(0,3) );
00054 }
00055 {
00056 box3d b(2, 3, 4);
00057 point3d p(2, 3, 4);
00058
00059 fun::p2p::fold<point3d,1,1,1> f_111(b);
00060 mln_assertion( f_111(p) == point3d(0,0,0) );
00061
00062 fun::p2p::fold<point3d,0,0,1> f_001(b);
00063 mln_assertion( f_001(p) == point3d(2,3,0) );
00064
00065 fun::p2p::fold<point3d,0,1,0> f_010(b);
00066 mln_assertion( f_010(p) == point3d(2,0,4) );
00067
00068 fun::p2p::fold<point3d,1,0,0> f_100(b);
00069 mln_assertion( f_100(p) == point3d(0,3,4) );
00070 }
00071 }