1 /* Apache 2.0 INS-AMU 2015 */
9 void hist_t_fill(int n
, double *t
, int *indices
, double *buf
)
11 memcpy(buf
, t
, n
*sizeof(double));
12 indices
[0] = indices
[0]; /* avoid unused warning */
19 double dt
, vd
[ND
], x
[43];
30 h
= malloc (sizeof(struct sk_hist
));
32 sk_hist_init(h
, ND
, vi
, vd
, 0.0, dt
);
33 sk_test_true(h
->nd
==ND
);
34 sk_test_true(h
->t
==0.0);
35 sk_test_true(h
->dt
==dt
);
36 sk_test_true(h
->nu
==2);
37 sk_test_true(h
->lim
[0]==0);
38 sk_test_true(h
->lim
[1]==36);
39 sk_test_true(h
->lim
[2]==8 + 36);
40 sk_test_true(h
->len
[0]==36);
41 sk_test_true(h
->len
[1]==8);
42 sk_test_true(h
->pos
[0]==0);
43 sk_test_true(h
->pos
[1]==0);
44 sk_test_true(h
->uvi
[0]==31);
45 sk_test_true(h
->uvi
[1]==42);
46 sk_test_true(h
->maxvi
==42);
47 sk_test_true(h
->vi2i
[31]==0);
48 sk_test_true(h
->vi2i
[42]==1);
49 sk_test_true(h
->maxd
[1]==vd
[0]);
50 sk_test_true(h
->maxd
[0]==vd
[2]);
51 sk_test_true(h
->vi
[0]==42);
52 sk_test_true(h
->vi
[1]==42);
53 sk_test_true(h
->vi
[2]==31);
54 sk_test_true(h
->del
[0]==vd
[0]);
55 sk_test_true(h
->del
[1]==vd
[1]);
56 sk_test_true(h
->del
[2]==vd
[2]);
57 sk_test_true(h
->buf
!=NULL
);
59 sk_hist_fill(h
, &hist_t_fill
);
61 sk_test_true(h
->buf
[i
]==-i
*dt
);
62 sk_test_true(h
->buf
[35]==dt
);
64 sk_test_true(h
->buf
[36+i
]==-i
*dt
);
65 sk_test_true(h
->buf
[36+7]==dt
);
67 sk_hist_get(h
, dt
/3, x
);
68 sk_test_tol(x
[0], -vd
[0]+dt
/3, 1e-15);
69 sk_test_tol(x
[1], -vd
[1]+dt
/3, 1e-15);
73 sk_hist_set(h
, dt
/2.0, x
);
74 sk_test_tol(h
->buf
[35], 3.0, 1e-15);
75 sk_test_tol(h
->buf
[36 + 7], 2.0, 1e-15);
77 nb
= sizeof(struct sk_hist
);
78 nb
+= sizeof(int) * (3+2+2+2+3+42);
79 nb
+= sizeof(double) * (44+2+3);
80 sk_test_true(nb
== sk_hist_nbytes(h
));