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
00027
00028 #ifdef HAVE_CONFIG_H
00029 #include <config.h>
00030 #endif
00031
00032 #include <fors_pattern.h>
00033 #include <fors_point.h>
00034 #include <test.h>
00035
00045 static void
00046 test_pattern(void)
00047 {
00048 fors_point *p1 = fors_point_new(1, 2);
00049 fors_point *p2 = fors_point_new(2, 2);
00050 fors_point *p3 = fors_point_new(3, 4);
00051 fors_point *p4 = fors_point_new(0.1, 0.2);
00052 fors_point *p5 = fors_point_new(0.2, 0.2);
00053 fors_point *p6 = fors_point_new(0.3, 0.4);
00054 double sigma = 0.001;
00055
00056 fors_pattern *pat1 = fors_pattern_new(p1, p2, p3, sigma);
00057 fors_pattern *pat2 = fors_pattern_new(p4, p5, p6, sigma);
00058
00059 test_abs( fors_pattern_get_scale(pat1, pat2), 10, 0.01 );
00060 test_abs( fors_pattern_get_scale(pat2, pat1), 1.0/10, 0.01 );
00061 test_abs( fors_pattern_get_angle(pat1, pat2), 0, 0.01 );
00062 test_abs( fors_pattern_get_angle(pat2, pat1), 0, 0.01 );
00063
00064 test_abs( fors_pattern_distsq(pat1, pat2), 0, 0.001 );
00065 test_abs( fors_pattern_distsq(pat2, pat1), 0, 0.001 );
00066
00067 fors_point_delete(&p1);
00068 fors_point_delete(&p2);
00069 fors_point_delete(&p3);
00070 fors_point_delete(&p4);
00071 fors_point_delete(&p5);
00072 fors_point_delete(&p6);
00073 fors_pattern_delete(&pat1);
00074 fors_pattern_delete(&pat2);
00075
00076 return;
00077 }
00078
00079
00083 int main(void)
00084 {
00085 TEST_INIT;
00086
00087 test_pattern();
00088
00089 TEST_END;
00090 }
00091