annotate test/json/jsonencode_BIST.tst @ 31191:bb9d776eafac stable

Fix wrong color in PDF printout of some latex strings (bug #62884) * octave-svgconvert (draw): For "rect" elements only set brush color if necessary and eventually restore to previous color.
author Pantxo Diribarne <pantxo.diribarne@gmail.com>
date Sun, 14 Aug 2022 18:24:07 +0200
parents 1575b324613d
children b4bde1e47dde
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
2 %% Unit tests for jsonencode()
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
3 %%
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
4 %% Code in libinterp/corefcn/jsonencode.cc
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
5 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
6 %% Note: This script is intended to also run under Matlab to verify
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
7 %% compatibility. Preserve Matlab-formatting when making changes.
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
8
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
9 %% Some tests here are just the reverse of tests in jsondecode with
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
10 %% some modifications.
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
11
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
12 %%% Test 1: Encode logical and numeric scalars, NaN, NA, and Inf
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
13
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
14 %!testif HAVE_RAPIDJSON
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
15 %! assert (isequal (jsonencode (logical (1)), 'true'));
28802
191538bdae3f Add BIST test for bug #59198.
Rik <rik@octave.org>
parents: 28792
diff changeset
16 %! assert (isequal (jsonencode (logical (0)), 'false'));
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
17 %! assert (isequal (jsonencode (50.025), '50.025'));
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
18 %! assert (isequal (jsonencode (NaN), 'null'));
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
19 %! assert (isequal (jsonencode (NA), 'null')); % Octave-only test
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
20 %! assert (isequal (jsonencode (Inf), 'null'));
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
21 %! assert (isequal (jsonencode (-Inf), 'null'));
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
22
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
23 %% Customized encoding of Nan, NA, Inf, -Inf
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
24 %!testif HAVE_RAPIDJSON
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
25 %! assert (isequal (jsonencode (NaN, 'ConvertInfAndNaN', true), 'null'));
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
26 %! % Octave-only test for NA
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
27 %! assert (isequal (jsonencode (NA, 'ConvertInfAndNaN', true), 'null'));
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
28 %! assert (isequal (jsonencode (Inf, 'ConvertInfAndNaN', true), 'null'));
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
29 %! assert (isequal (jsonencode (-Inf, 'ConvertInfAndNaN', true), 'null'));
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
30
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
31 %!testif HAVE_RAPIDJSON
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
32 %! assert (isequal (jsonencode (NaN, 'ConvertInfAndNaN', false), 'NaN'));
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
33 %! % Octave-only test for NA
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
34 %! assert (isequal (jsonencode (NA, 'ConvertInfAndNaN', false), 'NaN'));
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
35 %! assert (isequal (jsonencode (Inf, 'ConvertInfAndNaN', false), 'Infinity'));
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
36 %! assert (isequal (jsonencode (-Inf, 'ConvertInfAndNaN', false), '-Infinity'));
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
37
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
38 %%% Test 2: encode character vectors and arrays
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
39
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
40 %!testif HAVE_RAPIDJSON
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
41 %! assert (isequal (jsonencode (''), '""'));
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
42 %! assert (isequal (jsonencode ('hello there'), '"hello there"'));
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
43 %! assert (isequal (jsonencode (['foo'; 'bar']), '["foo","bar"]'));
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
44 %! assert (isequal (jsonencode (['foo', 'bar'; 'foo', 'bar']), ...
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
45 %! '["foobar","foobar"]'));
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
46
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
47 %% Escape characters inside single-quoted and double-quoted strings
28657
174550af014f document and test escape characters in jsonencode
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents: 28615
diff changeset
48 %!testif HAVE_RAPIDJSON
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
49 %! assert (isequal (jsonencode ('\0\a\b\t\n\v\f\r'), ...
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
50 %! '"\\0\\a\\b\\t\\n\\v\\f\\r"'));
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
51 %! % FIXME: Matlab produces a double-escaped string as above.
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
52 %! assert (isequal (jsonencode ("\a\b\t\n\v\f\r"), ...
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
53 %! '"\u0007\b\t\n\u000B\f\r"'));
28657
174550af014f document and test escape characters in jsonencode
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents: 28615
diff changeset
54
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
55 %!testif HAVE_RAPIDJSON
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
56 %! data = [[['foo'; 'bar']; ['foo'; 'bar']], [['foo'; 'bar']; ['foo'; 'bar']]];
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
57 %! exp = '["foofoo","barbar","foofoo","barbar"]';
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
58 %! obs = jsonencode (data);
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
59 %! assert (isequal (obs, exp));
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
60
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
61 %!testif HAVE_RAPIDJSON
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
62 %! data = cat (3, ['a', 'b'; 'c', 'd'], ['e', 'f'; 'g', 'h']);
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
63 %! exp = '[["ab","ef"],["cd","gh"]]';
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
64 %! obs = jsonencode (data);
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
65 %! assert (isequal (obs, exp));
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
66
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
67 %% Try different dimensions for the array
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
68 %!testif HAVE_RAPIDJSON
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
69 %! data = cat (3, ['a', 'b'; 'c', 'd'; '1', '2'], ...
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
70 %! ['e', 'f'; 'g', 'h'; '3', '4']);
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
71 %! exp = '[["ab","ef"],["cd","gh"],["12","34"]]';
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
72 %! obs = jsonencode (data);
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
73 %! assert (isequal (obs, exp));
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
74
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
75 %% Try higher dimensions for the array
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
76 %!testif HAVE_RAPIDJSON
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
77 %! charmat1 = cat (3, ['1', '3'; '5', '7'; '9', 'e'; 'f', 'g'], ...
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
78 %! ['2', '4'; '6', '8'; 'a', 'b'; 'c', 'd']);
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
79 %! charmat2 = cat (3, ['1', '3'; '5', '7'; '9', 'e'; 'f', 'g'], ...
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
80 %! ['2', '4'; '6', '8'; 'a', 'b'; 'c', 'd']);
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
81 %! data = cat (4, charmat1, charmat2);
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
82 %! exp = [ '[[["13","13"],["24","24"]],[["57","57"],["68","68"]],', ...
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
83 %! '[["9e","9e"],["ab","ab"]],[["fg","fg"],["cd","cd"]]]' ];
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
84 %! obs = jsonencode (data);
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
85 %! assert (isequal (obs, exp));
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
86
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
87 %% Try different dimensions for an array with one of its dimensions equals one
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
88 %!testif HAVE_RAPIDJSON
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
89 %! data = cat (4, ['a'; 'b'], ['c'; 'd']);
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
90 %! exp = '[[["a","c"]],[["b","d"]]]';
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
91 %! obs = jsonencode (data);
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
92 %! assert (isequal (obs, exp));
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
93
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
94 %% High dimension, but still a vector, is reduced to a vector
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
95 %!testif HAVE_RAPIDJSON
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
96 %! data = cat (8, ['a'], ['c']);
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
97 %! exp = '"ac"';
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
98 %! obs = jsonencode (data);
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
99 %! assert (isequal (obs, exp));
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
100
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
101 %!testif HAVE_RAPIDJSON
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
102 %! data = cat (8, ['a'; 'b'; '1'], ['c'; 'd'; '2']);
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
103 %! exp = '[[[[[[["a","c"]]]]]],[[[[[["b","d"]]]]]],[[[[[["1","2"]]]]]]]';
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
104 %! obs = jsonencode (data);
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
105 %! assert (isequal (obs, exp));
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
106
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
107 %%% Test 3: encode numeric and logical arrays (with NaN and Inf)
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
108
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
109 %% Test simple vectors
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
110 %!testif HAVE_RAPIDJSON
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
111 %! assert (isequal (jsonencode ([]), '[]'));
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
112 %! assert (isequal (jsonencode ([1, 2, 3, 4]), '[1,2,3,4]'));
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
113 %! assert (isequal (jsonencode ([true; false; true]), '[true,false,true]'));
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
114
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
115 %% Test arrays
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
116 %!testif HAVE_RAPIDJSON
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
117 %! data = [1, NaN; 3, 4];
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
118 %! exp = '[[1,null],[3,4]]';
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
119 %! obs = jsonencode (data);
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
120 %! assert (isequal (obs, exp));
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
121
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
122 %!testif HAVE_RAPIDJSON
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
123 %! data = cat (3, [NaN, 3; 5, Inf], [2, 4; -Inf, 8]);
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
124 %! exp = '[[[null,2],[3,4]],[[5,null],[null,8]]]';
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
125 %! obs = jsonencode (data);
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
126 %! assert (isequal (obs, exp));
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
127
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
128 %% Customized encoding of Nan, Inf, -Inf
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
129 %!testif HAVE_RAPIDJSON
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
130 %! data = cat (3, [1, NaN; 5, 7], [2, Inf; 6, -Inf]);
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
131 %! exp = '[[[1,2],[NaN,Infinity]],[[5,6],[7,-Infinity]]]';
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
132 %! obs = jsonencode (data, 'ConvertInfAndNaN', false);
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
133 %! assert (isequal (obs, exp));
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
134
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
135 %% Try different dimensions for the array
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
136 %!testif HAVE_RAPIDJSON
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
137 %! data = cat (3, [1, 3; 5, 7], [2, 4; 6, 8], [-1, NaN; Inf, -Inf]);
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
138 %! exp = '[[[1,2,-1],[3,4,NaN]],[[5,6,Infinity],[7,8,-Infinity]]]';
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
139 %! obs = jsonencode (data, 'ConvertInfAndNaN', false);
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
140 %! assert (isequal (obs, exp));
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
141
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
142 %% Try different dimensions for the array with one of its dimensions equals one
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
143 %!testif HAVE_RAPIDJSON
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
144 %! data = cat (3, [1; 7; 11], [4; 8; 12]);
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
145 %! exp = '[[[1,4]],[[7,8]],[[11,12]]]';
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
146 %! obs = jsonencode (data);
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
147 %! assert (isequal (obs, exp));
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
148
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
149 %!testif HAVE_RAPIDJSON
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
150 %! array1 = cat (3, [5, 7], [2, 4]);
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
151 %! array2 = cat (3, [-1, -3], [-2, -4]);
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
152 %! data = cat (4, array1, array2);
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
153 %! exp = '[[[[5,-1],[2,-2]],[[7,-3],[4,-4]]]]';
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
154 %! obs = jsonencode (data);
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
155 %! assert (isequal (obs, exp));
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
156
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
157 %!testif HAVE_RAPIDJSON
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
158 %! data = cat (4, [1, 3; 5, 7], [-1, -3; -5, -7]);
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
159 %! exp = '[[[[1,-1]],[[3,-3]]],[[[5,-5]],[[7,-7]]]]';
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
160 %! obs = jsonencode (data);
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
161 %! assert (isequal (obs, exp));
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
162
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
163 %% High-dimension vector is reduced to just a vector
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
164 %!testif HAVE_RAPIDJSON
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
165 %! data = ones ([1, 1, 1, 1, 1, 6]);
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
166 %! exp = '[1,1,1,1,1,1]';
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
167 %! obs = jsonencode (data);
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
168 %! assert (isequal (obs, exp));
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
169
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
170 %!testif HAVE_RAPIDJSON
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
171 %! data = ones ([1, 2, 2, 2, 2]);
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
172 %! exp = '[[[[[1,1],[1,1]],[[1,1],[1,1]]],[[[1,1],[1,1]],[[1,1],[1,1]]]]]';
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
173 %! obs = jsonencode (data);
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
174 %! assert (isequal (obs, exp));
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
175
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
176 %!testif HAVE_RAPIDJSON
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
177 %! data = ones ([1, 2, 2, 1, 2]);
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
178 %! exp = '[[[[[1,1]],[[1,1]]],[[[1,1]],[[1,1]]]]]';
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
179 %! obs = jsonencode (data);
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
180 %! assert (isequal (obs, exp));
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
181
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
182 %!testif HAVE_RAPIDJSON
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
183 %! data = ones ([1, 2, 1, 2, 1, 2]);
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
184 %! exp = '[[[[[[1,1]],[[1,1]]]],[[[[1,1]],[[1,1]]]]]]';
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
185 %! obs = jsonencode (data);
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
186 %! assert (isequal (obs, exp));
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
187
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
188 %!testif HAVE_RAPIDJSON
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
189 %! data = ones ([1, 1, 2, 1, 2, 1, 2]);
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
190 %! exp = '[[[[[[[1,1]],[[1,1]]]],[[[[1,1]],[[1,1]]]]]]]';
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
191 %! obs = jsonencode (data);
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
192 %! assert (isequal (obs, exp));
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
193
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
194 %!testif HAVE_RAPIDJSON
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
195 %! data = ones ([1, 2, 2, 1, 1, 2]);
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
196 %! exp = '[[[[[[1,1]]],[[[1,1]]]],[[[[1,1]]],[[[1,1]]]]]]';
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
197 %! obs = jsonencode (data);
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
198 %! assert (isequal (obs, exp));
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
199
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
200 %!testif HAVE_RAPIDJSON
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
201 %! data = ones ([1, 2, 1, 3, 1, 1, 1, 2]);
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
202 %! exp = ['[[[[[[[[1,1]]]],[[[[1,1]]]],[[[[1,1]]]]]],[[[[[[1,1]]]],', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
203 %! '[[[[1,1]]]],[[[[1,1]]]]]]]]'];
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
204 %! obs = jsonencode (data);
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
205 %! assert (isequal (obs, exp));
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
206
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
207 %!testif HAVE_RAPIDJSON
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
208 %! data = ones ([1, 1, 1, 1, 2, 1, 1, 1, 2]);
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
209 %! exp = '[[[[[[[[[1,1]]]],[[[[1,1]]]]]]]]]';
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
210 %! obs = jsonencode (data);
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
211 %! assert (isequal (obs, exp));
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
212
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
213 %!testif HAVE_RAPIDJSON
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
214 %! data = ones ([1, 3, 2, 1, 1, 2, 1, 2, 2]);
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
215 %! exp = ['[[[[[[[[[1,1],[1,1]]],[[[1,1],[1,1]]]]]],[[[[[[1,1],', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
216 %! '[1,1]]],[[[1,1],[1,1]]]]]]],[[[[[[[1,1],[1,1]]],[[[1,', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
217 %! '1],[1,1]]]]]],[[[[[[1,1],[1,1]]],[[[1,1],[1,1]]]]]]],', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
218 %! '[[[[[[[1,1],[1,1]]],[[[1,1],[1,1]]]]]],[[[[[[1,1],[1,', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
219 %! '1]]],[[[1,1],[1,1]]]]]]]]]'];
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
220 %! obs = jsonencode (data);
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
221 %! assert (isequal (obs, exp));
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
222
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
223 %!testif HAVE_RAPIDJSON
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
224 %! data = ones ([1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 3, 1, 1, 1, 1, 1, 1, 1, 2]);
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
225 %! exp = ['[[[[[[[[[[[[[[[[[[[[1,1]]]]]]]],[[[[[[[[1,1]]]]]]]],', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
226 %! '[[[[[[[[1,1]]]]]]]]],[[[[[[[[[1,1]]]]]]]],[[[[[[[[1,1]]]]]', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
227 %! ']]],[[[[[[[[1,1]]]]]]]]]],[[[[[[[[[[1,1]]]]]]]],[[[[[[[[1,1]', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
228 %! ']]]]]]],[[[[[[[[1,1]]]]]]]]],[[[[[[[[[1,1]]]]]]]],[[[[[[', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
229 %! '[[1,1]]]]]]]],[[[[[[[[1,1]]]]]]]]]]]]],[[[[[[[[[[[[[1,1]', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
230 %! ']]]]]]],[[[[[[[[1,1]]]]]]]],[[[[[[[[1,1]]]]]]]]],[[[[[[[[', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
231 %! '[1,1]]]]]]]],[[[[[[[[1,1]]]]]]]],[[[[[[[[1,1]]]]]]]]]],[[[', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
232 %! '[[[[[[[1,1]]]]]]]],[[[[[[[[1,1]]]]]]]],[[[[[[[[1,1]]]]]]]]],', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
233 %! '[[[[[[[[[1,1]]]]]]]],[[[[[[[[1,1]]]]]]]],[[[[[[[[1,1]]', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
234 %! ']]]]]]]]]]]]]]]]]]'];
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
235 %! obs = jsonencode (data);
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
236 %! assert (isequal (obs, exp));
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
237
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
238 %% Try higher dimensions for the array
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
239 %!testif HAVE_RAPIDJSON
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
240 %! var1 = cat (3, [1, 3; 5, 7; 9, 11; 13, 15], [2, 4; 6, 8; 10, 12; 14, 16]);
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
241 %! var2 = cat (3, [-1, -3; -5, -7; -9, -11; -13, -15], ...
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
242 %! [-2, -4; -6, -8; -10, -12; -14, -16]);
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
243 %! data = cat (4, var1, var2);
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
244 %! exp = ['[[[[1,-1],[2,-2]],[[3,-3],[4,-4]]],[[[5,-5],[6,-6]],[[7,-7],', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
245 %! '[8,-8]]],[[[9,-9],[10,-10]],[[11,-11],[12,-12]]],', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
246 %! '[[[13,-13],[14,-14]],[[15,-15],[16,-16]]]]'];
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
247 %! obs = jsonencode (data);
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
248 %! assert (isequal (obs, exp));
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
249
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
250 %% Try logical array (tests above were all with numeric data)
28802
191538bdae3f Add BIST test for bug #59198.
Rik <rik@octave.org>
parents: 28792
diff changeset
251
191538bdae3f Add BIST test for bug #59198.
Rik <rik@octave.org>
parents: 28792
diff changeset
252 %% 2-D logical array
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
253 %!testif HAVE_RAPIDJSON
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
254 %! data = [true, false; true, false; true, false];
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
255 %! exp = '[[true,false],[true,false],[true,false]]';
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
256 %! obs = jsonencode (data);
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
257 %! assert (isequal (obs, exp));
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
258
28802
191538bdae3f Add BIST test for bug #59198.
Rik <rik@octave.org>
parents: 28792
diff changeset
259 %% N-D logical array
29493
de40b395b9c3 update bug status in test suite
John W. Eaton <jwe@octave.org>
parents: 29449
diff changeset
260 %!testif HAVE_RAPIDJSON <*59198>
28802
191538bdae3f Add BIST test for bug #59198.
Rik <rik@octave.org>
parents: 28792
diff changeset
261 %! data = true (2,2,2);
191538bdae3f Add BIST test for bug #59198.
Rik <rik@octave.org>
parents: 28792
diff changeset
262 %! data(1,1,2) = false;
191538bdae3f Add BIST test for bug #59198.
Rik <rik@octave.org>
parents: 28792
diff changeset
263 %! exp = '[[[true,false],[true,true]],[[true,true],[true,true]]]';
191538bdae3f Add BIST test for bug #59198.
Rik <rik@octave.org>
parents: 28792
diff changeset
264 %! obs = jsonencode (data);
191538bdae3f Add BIST test for bug #59198.
Rik <rik@octave.org>
parents: 28792
diff changeset
265 %! assert (isequal (obs, exp));
191538bdae3f Add BIST test for bug #59198.
Rik <rik@octave.org>
parents: 28792
diff changeset
266
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
267 %%% Test 4: encode containers.Map
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
268
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
269 %% KeyType must be char to encode objects of containers.Map
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
270 %!testif HAVE_RAPIDJSON
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
271 %! assert (isequal (jsonencode (containers.Map ('1', [1, 2, 3])), ...
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
272 %! '{"1":[1,2,3]}'));
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
273
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
274 %!testif HAVE_RAPIDJSON
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
275 %! data = containers.Map ({'foo'; 'bar'; 'baz'}, [1, 2, 3]);
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
276 %! exp = '{"bar":2,"baz":3,"foo":1}';
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
277 %! obs = jsonencode (data);
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
278 %! assert (isequal (obs, exp));
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
279
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
280 %!testif HAVE_RAPIDJSON
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
281 %! data = containers.Map ({'foo'; 'bar'; 'baz'}, ...
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
282 %! {{1, 'hello', NaN}, true, [2, 3, 4]});
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
283 %! exp = '{"bar":true,"baz":[2,3,4],"foo":[1,"hello",NaN]}';
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
284 %! obs = jsonencode (data, 'ConvertInfAndNaN', false);
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
285 %! assert (isequal (obs, exp));
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
286
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
287 %%% Test 5: encode scalar structs
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
288
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
289 %% Check the encoding of Boolean, Number, and String values inside a struct
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
290 %!testif HAVE_RAPIDJSON
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
291 %! data = struct ('number', 3.14, 'string', 'foobar', 'boolean', false);
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
292 %! exp = '{"number":3.14,"string":"foobar","boolean":false}';
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
293 %! obs = jsonencode (data);
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
294 %! assert (isequal (obs, exp));
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
295
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
296 %% Check the encoding of NaN, NA, Inf, and -Inf values inside a struct
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
297 %!testif HAVE_RAPIDJSON
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
298 %! % Octave-only test because of NA value
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
299 %! data = struct ('numericArray', [7, NaN, NA, Inf, -Inf]);
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
300 %! exp = '{"numericArray":[7,null,null,null,null]}';
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
301 %! obs = jsonencode (data);
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
302 %! assert (isequal (obs, exp));
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
303
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
304 %% Customized encoding of Nan, NA, Inf, -Inf
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
305 %!testif HAVE_RAPIDJSON
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
306 %! data = struct ('numericArray', [7, NaN, NA, Inf, -Inf]);
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
307 %! exp = '{"numericArray":[7,NaN,NaN,Infinity,-Infinity]}';
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
308 %! obs = jsonencode (data, 'ConvertInfAndNaN', false);
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
309 %! assert (isequal (obs, exp));
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
310
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
311 %% Check the encoding of structs inside a struct
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
312 %!testif HAVE_RAPIDJSON
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
313 %! data = struct ('object', struct ('field1', 1, 'field2', 2, 'field3', 3));
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
314 %! exp = '{"object":{"field1":1,"field2":2,"field3":3}}';
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
315 %! obs = jsonencode (data);
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
316 %! assert (isequal (obs, exp));
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
317
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
318 %% Check the encoding of empty structs and empty arrays inside a struct
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
319 %!testif HAVE_RAPIDJSON
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
320 %! data = struct ('a', Inf, 'b', [], 'c', struct ());
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
321 %! exp = '{"a":null,"b":[],"c":{}}';
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
322 %! obs = jsonencode (data);
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
323 %! assert (isequal (obs, exp));
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
324
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
325 %% a big test
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
326 %!testif HAVE_RAPIDJSON
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
327 %! var1 = struct ('para', ['A meta-markup language, used to create ' ...
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
328 %! 'markup languages such as DocBook.'], ...
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
329 %! 'GlossSeeAlso', {{'GML'; 'XML'}});
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
330 %! var2 = struct ('ID', 'SGML', 'SortAs', 'SGML', ...
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
331 %! 'GlossTerm', 'Standard Generalized Markup Language', ...
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
332 %! 'Acronym', 'SGML', 'Abbrev', 'ISO 8879:1986', ...
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
333 %! 'GlossDef', var1, 'GlossSee', 'markup');
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
334 %! data = struct ('glossary', ...
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
335 %! struct ('title', 'example glossary', ...
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
336 %! 'GlossDiv', struct ('title', 'S', ...
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
337 %! 'GlossList', ...
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
338 %! struct ('GlossEntry', var2))));
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
339 %! exp = ['{' , ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
340 %! '"glossary":{', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
341 %! '"title":"example glossary",', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
342 %! '"GlossDiv":{', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
343 %! '"title":"S",', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
344 %! '"GlossList":{', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
345 %! '"GlossEntry":{', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
346 %! '"ID":"SGML",', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
347 %! '"SortAs":"SGML",', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
348 %! '"GlossTerm":"Standard Generalized Markup Language",', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
349 %! '"Acronym":"SGML",', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
350 %! '"Abbrev":"ISO 8879:1986",', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
351 %! '"GlossDef":{', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
352 %! '"para":"A meta-markup language, ', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
353 %! 'used to create markup languages such as DocBook.",', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
354 %! '"GlossSeeAlso":["GML","XML"]', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
355 %! '},', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
356 %! '"GlossSee":"markup"', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
357 %! '}', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
358 %! '}', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
359 %! '}', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
360 %! '}', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
361 %! '}'];
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
362 %! obs = jsonencode (data);
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
363 %! assert (isequal (obs, exp));
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
364
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
365 %%% Test 6: Encode struct arrays
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
366
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
367 %!testif HAVE_RAPIDJSON
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
368 %! data = struct ('structarray', struct ('a', {1; 3}, 'b', {2; 4}));
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
369 %! exp = '{"structarray":[{"a":1,"b":2},{"a":3,"b":4}]}';
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
370 %! obs = jsonencode (data);
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
371 %! assert (isequal (obs, exp));
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
372
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
373 %% another big Test
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
374 %!testif HAVE_RAPIDJSON
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
375 %! var1 = struct ('id', {0; 1; 2}, 'name', {'Collins'; 'Hays'; 'Griffin'});
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
376 %! var2 = struct ('id', {0; 1; 2}, 'name', {'Osborn'; 'Mcdowell'; 'Jewel'});
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
377 %! var3 = struct ('id', {0; 1; 2}, 'name', {'Socorro'; 'Darla'; 'Leanne'});
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
378 %! data = struct (...
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
379 %! 'x_id', {'5ee28980fc9ab3'; '5ee28980dd7250'; '5ee289802422ac'}, ...
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
380 %! 'index', {0; 1; 2}, ...
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
381 %! 'guid', {'b229d1de-f94a'; '39cee338-01fb'; '3db8d55a-663e'}, ...
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
382 %! 'latitude', {-17.124067; 13.205994; -35.453456}, ...
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
383 %! 'longitude', {-61.161831; -37.276231; 14.080287}, ...
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
384 %! 'friends', {var1; var2; var3});
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
385 %! exp = ['[', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
386 %! '{', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
387 %! '"x_id":"5ee28980fc9ab3",', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
388 %! '"index":0,', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
389 %! '"guid":"b229d1de-f94a",', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
390 %! '"latitude":-17.124067,', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
391 %! '"longitude":-61.161831,', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
392 %! '"friends":[', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
393 %! '{', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
394 %! '"id":0,', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
395 %! '"name":"Collins"', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
396 %! '},', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
397 %! '{', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
398 %! '"id":1,', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
399 %! '"name":"Hays"', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
400 %! '},', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
401 %! '{', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
402 %! '"id":2,', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
403 %! '"name":"Griffin"', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
404 %! '}', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
405 %! ']', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
406 %! '},', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
407 %! '{', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
408 %! '"x_id":"5ee28980dd7250",', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
409 %! '"index":1,', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
410 %! '"guid":"39cee338-01fb",', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
411 %! '"latitude":13.205994,', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
412 %! '"longitude":-37.276231,', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
413 %! '"friends":[', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
414 %! '{', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
415 %! '"id":0,', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
416 %! '"name":"Osborn"', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
417 %! '},', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
418 %! '{', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
419 %! '"id":1,', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
420 %! '"name":"Mcdowell"', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
421 %! '},', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
422 %! '{', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
423 %! '"id":2,', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
424 %! '"name":"Jewel"', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
425 %! '}', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
426 %! ']', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
427 %! '},', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
428 %! '{', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
429 %! '"x_id":"5ee289802422ac",', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
430 %! '"index":2,', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
431 %! '"guid":"3db8d55a-663e",', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
432 %! '"latitude":-35.453456,', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
433 %! '"longitude":14.080287,', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
434 %! '"friends":[', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
435 %! '{', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
436 %! '"id":0,', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
437 %! '"name":"Socorro"', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
438 %! '},', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
439 %! '{', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
440 %! '"id":1,', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
441 %! '"name":"Darla"', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
442 %! '},', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
443 %! '{', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
444 %! '"id":2,', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
445 %! '"name":"Leanne"', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
446 %! '}', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
447 %! ']', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
448 %! '}', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
449 %! ']'];
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
450 %! obs = jsonencode (data);
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
451 %! assert (isequal (obs, exp));
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
452
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
453 %%% Test 7: encode cell arrays
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
454
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
455 %!testif HAVE_RAPIDJSON
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
456 %! assert (isequal (jsonencode ({}), '[]'));
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
457 %! assert (isequal (jsonencode ({5}), '[5]'));
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
458 %! assert (isequal (jsonencode ({'hello there'}), '["hello there"]'));
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
459
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
460 %% Logical cell arrays
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
461 %!testif HAVE_RAPIDJSON
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
462 %! data = {'true', 'true'; 'false', 'true'};
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
463 %! exp = '["true","false","true","true"]';
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
464 %! obs = jsonencode (data);
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
465 %! assert (isequal (obs, exp));
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
466
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
467 %% Cell array of character vectors
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
468 %!testif HAVE_RAPIDJSON
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
469 %! data = {'foo'; 'bar'; {'foo'; 'bar'}};
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
470 %! exp = '["foo","bar",["foo","bar"]]';
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
471 %! obs = jsonencode (data);
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
472 %! assert (isequal (obs, exp));
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
473
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
474 %% cell array of structs & a big test
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
475 %!testif HAVE_RAPIDJSON
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
476 %! var1 = struct ('x_id', '5ee28980fc9ab3', 'index', 0, ...
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
477 %! 'guid', 'b229d1de-f94a', 'latitude', -17.124067, ...
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
478 %! 'longitude', -61.161831, ...
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
479 %! 'friends', struct ('id', {0; 1; 2}, ...
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
480 %! 'name', {'Collins'; 'Hays'; 'Griffin'}));
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
481 %! var2 = struct ('numericArray', {{'str'; 5; []}}, ...
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
482 %! 'nonnumericArray', {[1; 2; NaN]});
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
483 %! var3 = struct ('firstName', 'John', 'lastName', 'Smith', 'age', 25, ...
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
484 %! 'address', ...
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
485 %! struct ('streetAddress', '21 2nd Street', ...
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
486 %! 'city', 'New York', 'state', 'NY'), ...
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
487 %! 'phoneNumber', ...
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
488 %! struct ('type', 'home', 'number', '212 555-1234'));
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
489 %! data = {var1; var2; var3};
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
490 %! exp = ['[', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
491 %! '{', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
492 %! '"x_id":"5ee28980fc9ab3",', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
493 %! '"index":0,', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
494 %! '"guid":"b229d1de-f94a",', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
495 %! '"latitude":-17.124067,', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
496 %! '"longitude":-61.161831,', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
497 %! '"friends":[', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
498 %! '{', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
499 %! '"id":0,', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
500 %! '"name":"Collins"', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
501 %! '},', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
502 %! '{', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
503 %! '"id":1,', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
504 %! '"name":"Hays"', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
505 %! '},', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
506 %! '{', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
507 %! '"id":2,', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
508 %! '"name":"Griffin"', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
509 %! '}', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
510 %! ']', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
511 %! '},', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
512 %! '{"numericArray":["str",5,[]],"nonnumericArray":[1,2,null]},', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
513 %! '{', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
514 %! '"firstName":"John",', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
515 %! '"lastName":"Smith",', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
516 %! '"age":25,', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
517 %! '"address":', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
518 %! '{', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
519 %! '"streetAddress":"21 2nd Street",', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
520 %! '"city":"New York",', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
521 %! '"state":"NY"', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
522 %! '},', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
523 %! '"phoneNumber":', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
524 %! '{', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
525 %! '"type":"home",', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
526 %! '"number":"212 555-1234"', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
527 %! '}', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
528 %! '}]'];
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
529 %! obs = jsonencode (data);
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
530 %! assert (isequal (obs, exp));
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
531
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
532 %% cell array of diferrent types & Customized encoding of Nan, Inf, -Inf
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
533 %!testif HAVE_RAPIDJSON
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
534 %! var = struct ('x_id', '5ee28980dd7250', 'index', 1, ...
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
535 %! 'guid', '39cee338-01fb', 'latitude', 13.205994, ...
30090
1575b324613d maint: Make JSON tests more Matlab compatible.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 29493
diff changeset
536 %! 'longitude', -37.276231, ...
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
537 %! 'friends', struct ('id', {0; 1; 2}, ...
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
538 %! 'name', {'Osborn'; 'Mcdowell'; 'Jewel'}));
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
539 %! data = {NaN; true; Inf; 2531.023; 'hello there'; var};
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
540 %! exp = ['[NaN,true,Infinity,2531.023,"hello there",', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
541 %! '{', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
542 %! '"x_id":"5ee28980dd7250",', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
543 %! '"index":1,', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
544 %! '"guid":"39cee338-01fb",', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
545 %! '"latitude":13.205994,', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
546 %! '"longitude":-37.276231,', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
547 %! '"friends":[', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
548 %! '{', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
549 %! '"id":0,', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
550 %! '"name":"Osborn"', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
551 %! '},', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
552 %! '{', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
553 %! '"id":1,', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
554 %! '"name":"Mcdowell"', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
555 %! '},', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
556 %! '{', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
557 %! '"id":2,', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
558 %! '"name":"Jewel"', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
559 %! '}', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
560 %! ']', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
561 %! '}]'];
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
562 %! obs = jsonencode (data, 'ConvertInfAndNaN', false);
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
563 %! assert (isequal (obs, exp));
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
564
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
565 %% a big example
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
566 %!testif HAVE_RAPIDJSON
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
567 %! var1 = struct ('x_id', '5ee28980fc9ab3', 'index', 0, ...
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
568 %! 'guid', 'b229d1de-f94a', 'latitude', -17.124067, ...
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
569 %! 'longitude', -61.161831, ...
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
570 %! 'friends', struct ('id', {0; 1; 2}, ...
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
571 %! 'name', {'Collins'; 'Hays'; 'Griffin'}));
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
572 %! var2 = struct ('numericArray', {{'str'; 5; -Inf}}, ...
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
573 %! 'nonnumericArray', {[1; 2; NaN]});
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
574 %! var3 = struct ('firstName', 'John', 'lastName', 'Smith', 'age', 25, ...
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
575 %! 'address', ...
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
576 %! struct ('streetAddress', '21 2nd Street', ...
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
577 %! 'city', 'New York', 'state', 'NY'), ...
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
578 %! 'phoneNumber', ...
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
579 %! struct ('type', 'home', 'number', '212 555-1234'));
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
580 %! data = {{'str'; Inf; {}}; [1; 2; NaN]; {'foo'; 'bar'; {'foo'; 'bar'}};
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
581 %! cat(3, [1, 3; 5, 7], [2, 4; 6, 8]); {var1; var2 ;var3}};
28615
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
582 %! exp = ['[["str",null,[]],[1,2,null],["foo","bar",["foo","bar"]],', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
583 %! '[[[1,2],[3,4]],[[5,6],[7,8]]],' , ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
584 %! '[', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
585 %! '{', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
586 %! '"x_id":"5ee28980fc9ab3",', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
587 %! '"index":0,', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
588 %! '"guid":"b229d1de-f94a",', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
589 %! '"latitude":-17.124067,', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
590 %! '"longitude":-61.161831,', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
591 %! '"friends":[', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
592 %! '{', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
593 %! '"id":0,', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
594 %! '"name":"Collins"', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
595 %! '},', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
596 %! '{', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
597 %! '"id":1,', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
598 %! '"name":"Hays"', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
599 %! '},', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
600 %! '{', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
601 %! '"id":2,', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
602 %! '"name":"Griffin"', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
603 %! '}', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
604 %! ']', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
605 %! '},', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
606 %! '{"numericArray":["str",5,null],"nonnumericArray":[1,2,null]},', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
607 %! '{', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
608 %! '"firstName":"John",', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
609 %! '"lastName":"Smith",', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
610 %! '"age":25,', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
611 %! '"address":', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
612 %! '{', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
613 %! '"streetAddress":"21 2nd Street",', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
614 %! '"city":"New York",', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
615 %! '"state":"NY"', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
616 %! '},', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
617 %! '"phoneNumber":', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
618 %! '{', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
619 %! '"type":"home",', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
620 %! '"number":"212 555-1234"', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
621 %! '}', ...
5da49e37a6c9 New functions jsondecode and jsonencode (bug #53100).
Abdallah Elshamy <abdallah.k.elshamy@gmail.com>
parents:
diff changeset
622 %! '}]]'];
28761
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
623 %! obs = jsonencode (data);
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
624 %! assert (isequal (obs, exp));
b5461b1dc0ca Review jsonecode/jsondecode BIST tests.
Rik <rik@octave.org>
parents: 28657
diff changeset
625
30090
1575b324613d maint: Make JSON tests more Matlab compatible.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 29493
diff changeset
626 %% Just basic tests to ensure option "PrettyPrint" is functional.
28792
92495ca48bd7 test: Add tests for jsonencode() with "PrettyWriter" true (bug #59121).
Rik <rik@octave.org>
parents: 28761
diff changeset
627 %!testif HAVE_RAPIDJSON_PRETTYWRITER
92495ca48bd7 test: Add tests for jsonencode() with "PrettyWriter" true (bug #59121).
Rik <rik@octave.org>
parents: 28761
diff changeset
628 %! data = {'Hello'; 'World!'};
92495ca48bd7 test: Add tests for jsonencode() with "PrettyWriter" true (bug #59121).
Rik <rik@octave.org>
parents: 28761
diff changeset
629 %! exp = do_string_escapes ([ '[\n', ...
29449
3a680307d4aa jsonencode.cc: Make pretty formating compatible with MATLAB (bug #60259).
Abdallah-Elshamy <abdallah.k.elshamy@gmail.com>
parents: 28802
diff changeset
630 %! ' "Hello",\n', ...
3a680307d4aa jsonencode.cc: Make pretty formating compatible with MATLAB (bug #60259).
Abdallah-Elshamy <abdallah.k.elshamy@gmail.com>
parents: 28802
diff changeset
631 %! ' "World!"\n', ...
28792
92495ca48bd7 test: Add tests for jsonencode() with "PrettyWriter" true (bug #59121).
Rik <rik@octave.org>
parents: 28761
diff changeset
632 %! ']' ]);
29449
3a680307d4aa jsonencode.cc: Make pretty formating compatible with MATLAB (bug #60259).
Abdallah-Elshamy <abdallah.k.elshamy@gmail.com>
parents: 28802
diff changeset
633 %! obs = jsonencode (data, 'PrettyPrint', true);
28792
92495ca48bd7 test: Add tests for jsonencode() with "PrettyWriter" true (bug #59121).
Rik <rik@octave.org>
parents: 28761
diff changeset
634 %! assert (isequal (obs, exp));
92495ca48bd7 test: Add tests for jsonencode() with "PrettyWriter" true (bug #59121).
Rik <rik@octave.org>
parents: 28761
diff changeset
635 %!
92495ca48bd7 test: Add tests for jsonencode() with "PrettyWriter" true (bug #59121).
Rik <rik@octave.org>
parents: 28761
diff changeset
636 %! exp = '["Hello","World!"]';
29449
3a680307d4aa jsonencode.cc: Make pretty formating compatible with MATLAB (bug #60259).
Abdallah-Elshamy <abdallah.k.elshamy@gmail.com>
parents: 28802
diff changeset
637 %! obs = jsonencode (data, 'PrettyPrint', false);
28792
92495ca48bd7 test: Add tests for jsonencode() with "PrettyWriter" true (bug #59121).
Rik <rik@octave.org>
parents: 28761
diff changeset
638 %! assert (isequal (obs, exp));
92495ca48bd7 test: Add tests for jsonencode() with "PrettyWriter" true (bug #59121).
Rik <rik@octave.org>
parents: 28761
diff changeset
639
92495ca48bd7 test: Add tests for jsonencode() with "PrettyWriter" true (bug #59121).
Rik <rik@octave.org>
parents: 28761
diff changeset
640 %!testif HAVE_RAPIDJSON_PRETTYWRITER
92495ca48bd7 test: Add tests for jsonencode() with "PrettyWriter" true (bug #59121).
Rik <rik@octave.org>
parents: 28761
diff changeset
641 %! data = [1, 2; 3, 4];
92495ca48bd7 test: Add tests for jsonencode() with "PrettyWriter" true (bug #59121).
Rik <rik@octave.org>
parents: 28761
diff changeset
642 %! exp = do_string_escapes ([ ...
92495ca48bd7 test: Add tests for jsonencode() with "PrettyWriter" true (bug #59121).
Rik <rik@octave.org>
parents: 28761
diff changeset
643 %! '[\n' ...
29449
3a680307d4aa jsonencode.cc: Make pretty formating compatible with MATLAB (bug #60259).
Abdallah-Elshamy <abdallah.k.elshamy@gmail.com>
parents: 28802
diff changeset
644 %! ' [\n' ...
3a680307d4aa jsonencode.cc: Make pretty formating compatible with MATLAB (bug #60259).
Abdallah-Elshamy <abdallah.k.elshamy@gmail.com>
parents: 28802
diff changeset
645 %! ' 1,\n' ...
3a680307d4aa jsonencode.cc: Make pretty formating compatible with MATLAB (bug #60259).
Abdallah-Elshamy <abdallah.k.elshamy@gmail.com>
parents: 28802
diff changeset
646 %! ' 2\n' ...
3a680307d4aa jsonencode.cc: Make pretty formating compatible with MATLAB (bug #60259).
Abdallah-Elshamy <abdallah.k.elshamy@gmail.com>
parents: 28802
diff changeset
647 %! ' ],\n' ...
3a680307d4aa jsonencode.cc: Make pretty formating compatible with MATLAB (bug #60259).
Abdallah-Elshamy <abdallah.k.elshamy@gmail.com>
parents: 28802
diff changeset
648 %! ' [\n' ...
3a680307d4aa jsonencode.cc: Make pretty formating compatible with MATLAB (bug #60259).
Abdallah-Elshamy <abdallah.k.elshamy@gmail.com>
parents: 28802
diff changeset
649 %! ' 3,\n' ...
3a680307d4aa jsonencode.cc: Make pretty formating compatible with MATLAB (bug #60259).
Abdallah-Elshamy <abdallah.k.elshamy@gmail.com>
parents: 28802
diff changeset
650 %! ' 4\n' ...
3a680307d4aa jsonencode.cc: Make pretty formating compatible with MATLAB (bug #60259).
Abdallah-Elshamy <abdallah.k.elshamy@gmail.com>
parents: 28802
diff changeset
651 %! ' ]\n' ...
28792
92495ca48bd7 test: Add tests for jsonencode() with "PrettyWriter" true (bug #59121).
Rik <rik@octave.org>
parents: 28761
diff changeset
652 %! ']' ]);
29449
3a680307d4aa jsonencode.cc: Make pretty formating compatible with MATLAB (bug #60259).
Abdallah-Elshamy <abdallah.k.elshamy@gmail.com>
parents: 28802
diff changeset
653 %! obs = jsonencode (data, 'PrettyPrint', true);
28792
92495ca48bd7 test: Add tests for jsonencode() with "PrettyWriter" true (bug #59121).
Rik <rik@octave.org>
parents: 28761
diff changeset
654 %! assert (isequal (obs, exp));
92495ca48bd7 test: Add tests for jsonencode() with "PrettyWriter" true (bug #59121).
Rik <rik@octave.org>
parents: 28761
diff changeset
655 %!
92495ca48bd7 test: Add tests for jsonencode() with "PrettyWriter" true (bug #59121).
Rik <rik@octave.org>
parents: 28761
diff changeset
656 %! exp = '[[1,2],[3,4]]';
29449
3a680307d4aa jsonencode.cc: Make pretty formating compatible with MATLAB (bug #60259).
Abdallah-Elshamy <abdallah.k.elshamy@gmail.com>
parents: 28802
diff changeset
657 %! obs = jsonencode (data, 'PrettyPrint', false);
28792
92495ca48bd7 test: Add tests for jsonencode() with "PrettyWriter" true (bug #59121).
Rik <rik@octave.org>
parents: 28761
diff changeset
658 %! assert (isequal (obs, exp));