1 (* Thoroughly test AV-related functions.
2 * $Id: 110-av.ml,v 1.1 2005-01-28 23:09:33 rich Exp $
8 let av = av_empty () in
9 assert ([] = list_of_av av);
10 av_push av (sv_of_int 42);
11 av_push av (sv_of_int 84);
12 av_unshift av (sv_of_int 21);
13 av_set av 0 (sv_of_int 11);
14 assert (3 = av_length av);
15 assert (84 = int_of_sv (av_pop av));
16 assert (2 = av_length av);
17 assert (11 = int_of_sv (av_shift av));
18 assert (1 = av_length av);
19 assert (42 = int_of_sv (av_pop av));
21 av_set av 0 (sv_of_int 11);
22 av_set av 1 (sv_of_int 22);
23 av_set av 2 (sv_of_int 33);
24 av_set av 3 (sv_of_int 44);
25 assert (4 = av_length av);
26 assert (33 = int_of_sv (av_get av 2));
27 assert (22 = int_of_sv (av_get av 1));
28 assert (44 = int_of_sv (av_pop av));
29 assert (3 = av_length av);
30 assert (33 = int_of_sv (av_pop av));
31 assert (11 = int_of_sv (av_shift av));
32 assert (22 = int_of_sv (av_pop av));
33 assert ([] = list_of_av av);
35 ignore (eval "@a = ( 'foo', 'bar' )");
36 let av = get_av "a" in
37 assert ("foo" = string_of_sv (av_get av 0));
38 assert ("bar" = string_of_sv (av_get av 1));