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