2 * Copyright (c) 2009 Petri Lehtinen <petri@digip.org>
4 * Jansson is free software; you can redistribute it and/or modify
5 * it under the terms of the MIT license. See LICENSE for details.
13 json_t *array, *five, *seven, *value;
17 five = json_integer(5);
18 seven = json_integer(7);
21 fail("unable to create array");
23 fail("unable to create integer");
25 fail("unable to create integer");
27 if(json_array_size(array) != 0)
28 fail("empty array has nonzero size");
30 if(json_array_append(array, five))
31 fail("unable to append");
33 if(json_array_size(array) != 1)
34 fail("wrong array size");
36 value = json_array_get(array, 0);
38 fail("unable to get item");
40 fail("got wrong value");
42 if(json_array_append(array, seven))
43 fail("unable to append value");
45 if(json_array_size(array) != 2)
46 fail("wrong array size");
48 value = json_array_get(array, 1);
50 fail("unable to get item");
52 fail("got wrong value");
54 if(json_array_set(array, 0, seven))
55 fail("unable to set value");
57 if(json_array_size(array) != 2)
58 fail("wrong array size");
60 value = json_array_get(array, 0);
62 fail("unable to get item");
64 fail("got wrong value");
66 if(json_array_get(array, 2) != NULL)
67 fail("able to get value out of bounds");
69 if(!json_array_set(array, 2, seven))
70 fail("able to set value out of bounds");
72 for(i = 2; i < 30; i++) {
73 if(json_array_append(array, seven))
74 fail("unable to append value");
76 if(json_array_size(array) != i + 1)
77 fail("wrong array size");
80 for(i = 0; i < 30; i++) {
81 value = json_array_get(array, i);
83 fail("unable to get item");
85 fail("got wrong value");
88 json_array_set_new(array, 15, json_integer(123));
89 value = json_array_get(array, 15);
90 if(!json_is_integer(value) || json_integer_value(value) != 123)
91 fail("json_array_set_new works incorrectly");
93 json_array_append_new(array, json_integer(321));
94 value = json_array_get(array, json_array_size(array) - 1);
95 if(!json_is_integer(value) || json_integer_value(value) != 321)
96 fail("json_array_append_new works incorrectly");