00001 #include "utils/utils.h" 00002 #include <check.h> 00003 00004 #include "sed_wave.h" 00005 00006 START_TEST ( test_sed_wave_new ) 00007 { 00008 { 00009 Sed_wave w = sed_wave_new( 0 , 2 , 3 ); 00010 00011 fail_if ( w==NULL , "NULL returned instead of a new wave" ); 00012 fail_unless( fabs( sed_wave_height(w) ) < 1e-12 , "Newly created has wrong height" ); 00013 fail_unless( fabs( sed_wave_number(w) - 2 ) < 1e-12 , "Newly created has wrong number" ); 00014 fail_unless( fabs( sed_wave_frequency(w) - 3 ) < 1e-12 , "Newly created has wrong frequency" ); 00015 00016 sed_wave_destroy( w ); 00017 } 00018 00019 { 00020 Sed_wave w = sed_wave_new( 0 , 0 , -1 ); 00021 fail_unless( w==NULL , "Wave can not have negative frequency" ); 00022 } 00023 00024 { 00025 Sed_wave w = sed_wave_new( 0 , -1 , 0 ); 00026 fail_unless( w==NULL , "Wave can not have negative number" ); 00027 } 00028 00029 { 00030 Sed_wave w = sed_wave_new( -1 , 0 , 0 ); 00031 fail_unless( w==NULL , "Wave can not have negative height" ); 00032 } 00033 00034 } 00035 END_TEST 00036 00037 START_TEST ( test_sed_wave_copy ) 00038 { 00039 { 00040 Sed_wave dest = sed_wave_new( 0 , 0 , 0 ); 00041 Sed_wave src = sed_wave_new( 1 , 2 , 3 ); 00042 Sed_wave temp = dest; 00043 00044 dest = sed_wave_copy( dest , src ); 00045 00046 fail_unless( sed_wave_is_same(dest,src) , "Wave not copied correctly" ); 00047 fail_if ( dest == src , "Wave not copied" ); 00048 fail_unless( dest == temp , "Wave not copied to correct location" ); 00049 00050 sed_wave_destroy( src ); 00051 sed_wave_destroy( dest ); 00052 } 00053 } 00054 END_TEST 00055 00056 Suite *sed_wave_suite( void ) 00057 { 00058 Suite *s = suite_create( "Sed_wave" ); 00059 TCase *test_case_core = tcase_create( "Core" ); 00060 00061 suite_add_tcase( s , test_case_core ); 00062 00063 tcase_add_test( test_case_core , test_sed_wave_new ); 00064 tcase_add_test( test_case_core , test_sed_wave_copy ); 00065 00066 return s; 00067 } 00068 00069 int test_sed_wave( void ) 00070 { 00071 int n; 00072 00073 { 00074 Suite *s = sed_wave_suite(); 00075 SRunner *sr = srunner_create( s ); 00076 00077 srunner_run_all( sr , CK_NORMAL ); 00078 n = srunner_ntests_failed( sr ); 00079 srunner_free( sr ); 00080 } 00081 00082 return n; 00083 } 00084 00085