Beispiel #1
0
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);
}
Beispiel #2
0
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;
}
Beispiel #3
0
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;
}
Beispiel #4
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);
}
Beispiel #5
0
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);
}
Beispiel #6
0
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);
}
Beispiel #7
0
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);
}