static void da_fill_from_to_test(void) { printsln((String)__func__); Array array; array = da_create(3, 0); da_fill_from_to(array, -1, 0, array->n); double a1[] = { -1, -1, -1 }; da_check_within2(array, a1, 3); a_free(array); array = da_create(3, 0); da_fill_from_to(array, -1, -1, array->n + 1); double a2[] = { -1, -1, -1 }; da_check_within2(array, a2, 3); a_free(array); array = da_create(3, 0); da_fill_from_to(array, -1, 0, 0); double a3[] = { 0, 0, 0 }; da_check_within2(array, a3, 3); a_free(array); array = da_create(3, 0); da_fill_from_to(array, -1, 0, 1); double a4[] = { -1, 0, 0 }; da_check_within2(array, a4, 3); a_free(array); array = da_create(3, 0); da_fill_from_to(array, -1, 2, 2); double a5[] = { 0, 0, 0 }; da_check_within2(array, a5, 3); a_free(array); array = da_create(3, 0); da_fill_from_to(array, -1, 2, 3); double a6[] = { 0, 0, -1 }; da_check_within2(array, a6, 3); a_free(array); array = da_create(3, 0); da_fill_from_to(array, -1, 2, 1); double a7[] = { 0, 0, 0 }; da_check_within2(array, a7, 3); a_free(array); array = da_create(3, 0); da_fill_from_to(array, -1, 1, 3); double a8[] = { 0, -1, -1 }; da_check_within2(array, a8, 3); a_free(array); }
Array da_of_ia(Array array) { ia_assert_element_size(array); int n = a_length(array); Array result = da_create(n, 0.0); int *src = array->a; double *dst = result->a; for (int i = 0; i < n; i++) { dst[i] = src[i]; } return result; }
int main(int argc, char **argv) { struct da *da = da_create(); char buf[100]; da_add(da, "bd", 3); da_add(da, "aa", 3); da_add(da, "ba", 3); da_dump(da); da_traverse(da, 1, buf, 0); return 0; }
static void da_fill_test(void) { printsln((String)__func__); Array array; array = da_create(3, 0); da_fill(array, -1); double a1[] = { -1, -1, -1 }; da_check_within2(array, a1, 3); a_free(array); array = da_create(2, 0); da_fill(array, 2); double a2[] = { 2, 2 }; da_check_within2(array, a2, 2); a_free(array); array = da_create(0, 0); da_fill(array, 2); double a3[] = { }; da_check_within2(array, a3, 0); a_free(array); }
static void da_create_test(void) { printsln((String)__func__); Array array; array = da_create(3, 0); double a1[] = { 0, 0, 0 }; da_check_within2(array, a1, 3); a_free(array); array = da_create(5, -1); double a2[] = { -1, -1, -1, -1, -1 }; da_check_within2(array, a2, 5); a_free(array); array = da_create(1, 2); double a3[] = { 2 }; da_check_within2(array, a3, 1); a_free(array); array = da_create(0, 2); double a4[] = { }; da_check_within2(array, a4, 0); a_free(array); }
static void a_blit_test(void) { printsln((String)__func__); Array s, d, e; s = ia_range(1, 10); d = ia_create(5, 0); a_blit(s, 0, d, 0, 5); e = ia_of_string("1 2 3 4 5"); ia_check_expect(d, e); a_free(s); a_free(d); a_free(e); s = ia_range(1, 10); d = ia_create(5, 0); a_blit(s, 0, d, 1, 4); e = ia_of_string("0 1 2 3 4"); ia_check_expect(d, e); a_free(s); a_free(d); a_free(e); s = ia_range(1, 10); d = ia_create(5, 0); a_blit(s, 0, d, 1, 3); e = ia_of_string("0 1 2 3 0"); ia_check_expect(d, e); a_free(s); a_free(d); a_free(e); s = ia_range(1, 10); d = ia_create(5, 0); a_blit(s, 0, d, 0, 0); e = ia_of_string("0 0 0 0 0"); ia_check_expect(d, e); a_free(s); a_free(d); a_free(e); s = ia_range(1, 10); d = ia_create(5, 0); a_blit(s, 1, d, 0, 3); e = ia_of_string("2 3 4 0 0"); ia_check_expect(d, e); a_free(s); a_free(d); a_free(e); s = da_range(1, 10, 1); d = da_create(5, 0); a_blit(s, 0, d, 0, 5); e = da_of_string("1 2 3 4 5"); da_check_within(d, e); a_free(s); a_free(d); a_free(e); s = da_range(1, 10, 1); d = da_create(5, 0); a_blit(s, 0, d, 1, 4); e = da_of_string("0 1 2 3 4"); da_check_within(d, e); a_free(s); a_free(d); a_free(e); s = da_range(1, 10, 1); d = da_create(5, 0); a_blit(s, 0, d, 1, 3); e = da_of_string("0 1 2 3 0"); da_check_within(d, e); a_free(s); a_free(d); a_free(e); s = da_range(1, 10, 1); d = da_create(5, 0); a_blit(s, 0, d, 0, 0); e = da_of_string("0 0 0 0 0"); da_check_within(d, e); a_free(s); a_free(d); a_free(e); s = da_range(1, 10, 1); d = da_create(5, 0); a_blit(s, 1, d, 0, 3); e = da_of_string("2 3 4 0 0"); da_check_within(d, e); a_free(s); a_free(d); a_free(e); }
static void da_of_string_test(void) { printsln((String)__func__); Array ac, ex; ac = da_of_string("1, 2, 3, 4, 5, 6"); ex = da_range(1, 7, 1); da_check_within(ac, ex); a_free(ac); a_free(ex); ac = da_of_string(" 1, 2, 3, 4, 5, 6 "); ex = da_range(1, 7, 1); da_check_within(ac, ex); a_free(ac); a_free(ex); ac = da_of_string("1xx2asdfs3"); ex = da_range(1, 4, 1); da_check_within(ac, ex); a_free(ac); a_free(ex); ac = da_of_string("y1xx2asdfs3x"); ex = da_range(1, 4, 1); da_check_within(ac, ex); a_free(ac); a_free(ex); ac = da_of_string("-3, -2, -1, 0, 1"); ex = da_range(-3, 2, 1); da_check_within(ac, ex); a_free(ac); a_free(ex); ac = da_of_string(" -3, -2, -1 "); ex = da_range(-3, 0, 1); da_check_within(ac, ex); a_free(ac); a_free(ex); ac = da_of_string(".1 -20. -3.5 1e5 -1.2e4 -1.2e-4"); ex = da_create(6, 0); da_set(ex, 0, 0.1); da_set(ex, 1, -20.0); da_set(ex, 2, -3.5); da_set(ex, 3, 1e5); da_set(ex, 4, -1.2e4); da_set(ex, 5, -1.2e-4); da_check_within(ac, ex); a_free(ac); a_free(ex); ac = da_of_string("-.1.-2.-.3.-"); ex = da_create(3, 0); da_set(ex, 0, -0.1); da_set(ex, 1, -2.0); da_set(ex, 2, -0.3); da_check_within(ac, ex); a_free(ac); a_free(ex); ac = da_of_string("---.1.----2.----.3.----"); ex = da_create(3, 0); da_set(ex, 0, -0.1); da_set(ex, 1, -2.0); da_set(ex, 2, -0.3); da_check_within(ac, ex); a_free(ac); a_free(ex); ac = da_of_string(""); ex = da_create(0, 0); da_check_within(ac, ex); a_free(ac); a_free(ex); }