From: glenrendes Date: Thu, 25 Apr 2019 21:05:00 +0000 (+0200) Subject: last addition to subu da X-Git-Url: https://git.reasoningtechnology.com/style/static/gitweb.js?a=commitdiff_plain;h=96484238f287d9d76545900dfc4e767d857ad281;p=subu last addition to subu da --- diff --git a/module/da/src/da.lib.c b/module/da/src/da.lib.c index 26e725b..207d09b 100644 --- a/module/da/src/da.lib.c +++ b/module/da/src/da.lib.c @@ -348,11 +348,11 @@ Da *da_longer(Da *dap0, Da *dap1){ } // returns Da in DaMa with longest length Da *da_longest(Da *damp){ - Da *dap = (Da *)damp->base; - Da *longest = (Da *)(damp->base) + damp->element_size; - while( dap != (Da *)(damp->end) ){ + Da *dap = (Da *)(damp->base); + Da *longest = (Da *)((damp->base) + sizeof(Da)); + while( dap < (Da *)(damp->end) ){ longest = da_longer(dap,longest); - dap++; + dap++; } return longest; } diff --git a/module/da/test/src/test_da.cli.c b/module/da/test/src/test_da.cli.c index e05c30e..045ab23 100644 --- a/module/da/test/src/test_da.cli.c +++ b/module/da/test/src/test_da.cli.c @@ -32,6 +32,7 @@ int main(){ test_da_push_row_0, test_da_erase_0, test_da_longer_0, + test_da_longest_0, NULL}; char *test_names[] = { @@ -59,6 +60,7 @@ int main(){ "test_da_push_row_0", "test_da_erase_0", "test_da_longer_0", + "test_da_longest_0", NULL}; // call tests diff --git a/module/da/test/src/test_da.lib.c b/module/da/test/src/test_da.lib.c index 20b51a7..a33ae54 100644 --- a/module/da/test/src/test_da.lib.c +++ b/module/da/test/src/test_da.lib.c @@ -745,7 +745,7 @@ bool test_da_erase_0(){ return flag1 && flag2; } -//test da_longer +//tests da_longer bool test_da_longer_0(){ Da dama; Da *damp = &dama; da_alloc(damp, sizeof(Da)); @@ -782,23 +782,70 @@ bool test_da_longer_0(){ //plain test for which is Da is longer Da *test1 = da_longer(r0, r1); Da *test2 = da_longer(r0, r2); - /* + //tests from dama which row is longer Da *dr0 = (Da *)(damp->base); - Da *dr1 = (Da *)(damp->base)+(damp->element_size); - Da *dr2 = (Da *)(damp->base)+(2*(damp->element_size)); + Da *dr1 = (Da *)((damp->base)+sizeof(Da *)); + Da *dr2 = (Da *)((damp->base)+(2*sizeof(Da *))); Da *test3 = da_longer(dr0, dr1); - //Da *test4 = da_longer((Da *)(damp->base), ((Da *)(damp->base)+((damp->element_size)*2))); // Is second or third row of dama longer? Should be third. - */ + Da *test4 = da_longer(dr0, dr2); + bool flag1 = test1 == r1; bool flag2 = test2 == r2; - //bool flag3 = test3 == dr1; - //bool flag4 = test4 == r2; + bool flag3 = test3 == dr1; + bool flag4 = test4 == dr2; + + return flag1 && flag2 && flag3 && flag4; +} + +//tests da_longest +bool test_da_longest_0(){ + + Da dama; Da *damp = &dama; da_alloc(damp, sizeof(Da)); + + Da row0; Da *r0 = &row0; da_alloc(r0, sizeof(int)); + {//fills first row with 4 integers + int i = 10; + while(i<14){ + da_push(r0, &i); + i++; + } + } + da_push_row(damp, r0); + + Da row1; Da *r1 = &row1; da_alloc(r1, sizeof(int)); + {//fills second row with 4 different integers + int i = 20; + while(i<24){ + da_push(r1, &i); + i++; + } + } + da_push_row(damp, r1); + + Da row2; Da *r2 = &row2; da_alloc(r2, sizeof(int)); + {//fills third row with 6 integers + int i = 30; + while(i<36){ + da_push(r2, &i); + i++; + } + } + da_push_row(damp, r2); + - return flag1 && flag2;// && flag3 && flag4; + Da *dr0 = (Da *)(damp->base); + Da *dr1 = (Da *)((damp->base)+sizeof(Da)); + Da *dr2 = (Da *)((damp->base)+(2*sizeof(Da))); + Da *test = da_longest(damp); + + bool flag = test == dr2; + + return flag; } + /* Functions -da_alloc @@ -835,8 +882,8 @@ da_push_row_alloc da_push_column da_every_row -da_longer -da_longest +-da_longer +-da_longest da_every_column da_matrix_transpose @@ -880,4 +927,7 @@ test_da_length_0 //matrix da_push_row_0 da_erase_0 +test_da_longer_0 +test_da_longest_0 + */ diff --git a/module/da/test/src/test_da.lib.h b/module/da/test/src/test_da.lib.h index 6685b90..cb83d5a 100644 --- a/module/da/test/src/test_da.lib.h +++ b/module/da/test/src/test_da.lib.h @@ -25,5 +25,6 @@ bool test_da_length_0(); bool test_da_push_row_0(); bool test_da_erase_0(); bool test_da_longer_0(); +bool test_da_longest_0(); #endif