1package gojsonld
2
3import (
4	"encoding/json"
5	"reflect"
6	"testing"
7)
8
9func testCompact(inputFile, outputFile, contextFile, base string,
10	compactArrays bool, t *testing.T) {
11	inputJson, jsonErr := ReadJSONFromFile(test_dir + inputFile)
12	if !isNil(jsonErr) {
13		t.Error("Could not open input file")
14		return
15	}
16	outputJson, jsonErr := ReadJSONFromFile(test_dir + outputFile)
17	if !isNil(jsonErr) {
18		t.Error("Could not open output file")
19		return
20	}
21	contextJson, jsonErr := ReadJSONFromFile(test_dir + contextFile)
22	if !isNil(jsonErr) {
23		t.Error("Could not open context file")
24		return
25	}
26	options := &Options{
27		Base:           base,
28		CompactArrays:  compactArrays,
29		ExpandContext:  nil,
30		DocumentLoader: NewDocumentLoader(),
31	}
32	compactedJson, compactErr := Compact(inputJson, contextJson, options)
33	if !isNil(compactErr) {
34		t.Error("Compaction failed with error ", compactErr.Error())
35		return
36	}
37	compactedString, _ := json.MarshalIndent(compactedJson, "", "    ")
38	outputString, _ := json.MarshalIndent(outputJson, "", "    ")
39	if !reflect.DeepEqual(compactedJson, outputJson) {
40		t.Error("Expected:\n", string(outputString), "\nGot:\n",
41			string(compactedString))
42	}
43}
44
45func testCompactSimple(inputFile, outputFile, contextFile, base string,
46	t *testing.T) {
47	testCompact(inputFile, outputFile, contextFile, base, true, t)
48}
49
50func TestCompact0001(t *testing.T) {
51	testCompactSimple("compact-0001-in.jsonld", "compact-0001-out.jsonld",
52		"compact-0001-context.jsonld", "", t)
53}
54
55func TestCompact0002(t *testing.T) {
56	testCompactSimple("compact-0002-in.jsonld", "compact-0002-out.jsonld",
57		"compact-0002-context.jsonld", "", t)
58}
59
60func TestCompact0003(t *testing.T) {
61	testCompactSimple("compact-0003-in.jsonld", "compact-0003-out.jsonld",
62		"compact-0003-context.jsonld", "", t)
63}
64
65func TestCompact0004(t *testing.T) {
66	testCompactSimple("compact-0004-in.jsonld", "compact-0004-out.jsonld",
67		"compact-0004-context.jsonld", "", t)
68}
69
70func TestCompact0005(t *testing.T) {
71	testCompactSimple("compact-0005-in.jsonld", "compact-0005-out.jsonld",
72		"compact-0005-context.jsonld", "", t)
73}
74
75func TestCompact0006(t *testing.T) {
76	testCompactSimple("compact-0006-in.jsonld", "compact-0006-out.jsonld",
77		"compact-0006-context.jsonld", "", t)
78}
79
80func TestCompact0007(t *testing.T) {
81	testCompactSimple("compact-0007-in.jsonld", "compact-0007-out.jsonld",
82		"compact-0007-context.jsonld", "", t)
83}
84
85func TestCompact0008(t *testing.T) {
86	testCompactSimple("compact-0008-in.jsonld", "compact-0008-out.jsonld",
87		"compact-0008-context.jsonld", "", t)
88}
89
90func TestCompact0009(t *testing.T) {
91	testCompactSimple("compact-0009-in.jsonld", "compact-0009-out.jsonld",
92		"compact-0009-context.jsonld", "", t)
93}
94
95func TestCompact0010(t *testing.T) {
96	testCompactSimple("compact-0010-in.jsonld", "compact-0010-out.jsonld",
97		"compact-0010-context.jsonld", "", t)
98}
99
100func TestCompact0011(t *testing.T) {
101	testCompactSimple("compact-0011-in.jsonld", "compact-0011-out.jsonld",
102		"compact-0011-context.jsonld", "", t)
103}
104
105func TestCompact0012(t *testing.T) {
106	testCompactSimple("compact-0012-in.jsonld", "compact-0012-out.jsonld",
107		"compact-0012-context.jsonld", "", t)
108}
109
110func TestCompact0013(t *testing.T) {
111	testCompactSimple("compact-0013-in.jsonld", "compact-0013-out.jsonld",
112		"compact-0013-context.jsonld", "", t)
113}
114
115func TestCompact0014(t *testing.T) {
116	testCompactSimple("compact-0014-in.jsonld", "compact-0014-out.jsonld",
117		"compact-0014-context.jsonld", "", t)
118}
119
120func TestCompact0015(t *testing.T) {
121	testCompactSimple("compact-0015-in.jsonld", "compact-0015-out.jsonld",
122		"compact-0015-context.jsonld", "", t)
123}
124
125func TestCompact0016(t *testing.T) {
126	testCompactSimple("compact-0016-in.jsonld", "compact-0016-out.jsonld",
127		"compact-0016-context.jsonld", "", t)
128}
129
130func TestCompact0017(t *testing.T) {
131	testCompactSimple("compact-0017-in.jsonld", "compact-0017-out.jsonld",
132		"compact-0017-context.jsonld", "", t)
133}
134
135func TestCompact0018(t *testing.T) {
136	testCompactSimple("compact-0018-in.jsonld", "compact-0018-out.jsonld",
137		"compact-0018-context.jsonld", "", t)
138}
139
140func TestCompact0019(t *testing.T) {
141	testCompactSimple("compact-0019-in.jsonld", "compact-0019-out.jsonld",
142		"compact-0019-context.jsonld", "", t)
143}
144
145func TestCompact0020(t *testing.T) {
146	testCompactSimple("compact-0020-in.jsonld", "compact-0020-out.jsonld",
147		"compact-0020-context.jsonld", "", t)
148}
149
150func TestCompact0021(t *testing.T) {
151	testCompactSimple("compact-0021-in.jsonld", "compact-0021-out.jsonld",
152		"compact-0021-context.jsonld", "", t)
153}
154
155func TestCompact0022(t *testing.T) {
156	testCompactSimple("compact-0022-in.jsonld", "compact-0022-out.jsonld",
157		"compact-0022-context.jsonld", "", t)
158}
159
160func TestCompact0023(t *testing.T) {
161	testCompactSimple("compact-0023-in.jsonld", "compact-0023-out.jsonld",
162		"compact-0023-context.jsonld", "", t)
163}
164
165func TestCompact0024(t *testing.T) {
166	testCompactSimple("compact-0024-in.jsonld", "compact-0024-out.jsonld",
167		"compact-0024-context.jsonld", "", t)
168}
169
170func TestCompact0025(t *testing.T) {
171	testCompactSimple("compact-0025-in.jsonld", "compact-0025-out.jsonld",
172		"compact-0025-context.jsonld", "", t)
173}
174
175func TestCompact0026(t *testing.T) {
176	testCompactSimple("compact-0026-in.jsonld", "compact-0026-out.jsonld",
177		"compact-0026-context.jsonld", "", t)
178}
179
180func TestCompact0027(t *testing.T) {
181	testCompactSimple("compact-0027-in.jsonld", "compact-0027-out.jsonld",
182		"compact-0027-context.jsonld", "", t)
183}
184
185func TestCompact0028(t *testing.T) {
186	testCompactSimple("compact-0028-in.jsonld", "compact-0028-out.jsonld",
187		"compact-0028-context.jsonld", "", t)
188}
189
190func TestCompact0029(t *testing.T) {
191	testCompactSimple("compact-0029-in.jsonld", "compact-0029-out.jsonld",
192		"compact-0029-context.jsonld", "", t)
193}
194
195func TestCompact0030(t *testing.T) {
196	testCompactSimple("compact-0030-in.jsonld", "compact-0030-out.jsonld",
197		"compact-0030-context.jsonld", "", t)
198}
199
200func TestCompact0031(t *testing.T) {
201	testCompactSimple("compact-0031-in.jsonld", "compact-0031-out.jsonld",
202		"compact-0031-context.jsonld", "", t)
203}
204
205func TestCompact0032(t *testing.T) {
206	testCompactSimple("compact-0032-in.jsonld", "compact-0032-out.jsonld",
207		"compact-0032-context.jsonld", "", t)
208}
209
210func TestCompact0033(t *testing.T) {
211	testCompactSimple("compact-0033-in.jsonld", "compact-0033-out.jsonld",
212		"compact-0033-context.jsonld", "", t)
213}
214
215func TestCompact0034(t *testing.T) {
216	testCompactSimple("compact-0034-in.jsonld", "compact-0034-out.jsonld",
217		"compact-0034-context.jsonld", "", t)
218}
219
220func TestCompact0035(t *testing.T) {
221	testCompactSimple("compact-0035-in.jsonld", "compact-0035-out.jsonld",
222		"compact-0035-context.jsonld", "", t)
223}
224
225func TestCompact0036(t *testing.T) {
226	testCompactSimple("compact-0036-in.jsonld", "compact-0036-out.jsonld",
227		"compact-0036-context.jsonld", "", t)
228}
229
230func TestCompact0037(t *testing.T) {
231	testCompactSimple("compact-0037-in.jsonld", "compact-0037-out.jsonld",
232		"compact-0037-context.jsonld",
233		"http://json-ld.org/test-suite/tests/", t)
234}
235
236func TestCompact0038(t *testing.T) {
237	testCompactSimple("compact-0038-in.jsonld", "compact-0038-out.jsonld",
238		"compact-0038-context.jsonld", "", t)
239}
240
241func TestCompact0039(t *testing.T) {
242	testCompactSimple("compact-0039-in.jsonld", "compact-0039-out.jsonld",
243		"compact-0039-context.jsonld", "", t)
244}
245
246func TestCompact0040(t *testing.T) {
247	testCompactSimple("compact-0040-in.jsonld", "compact-0040-out.jsonld",
248		"compact-0040-context.jsonld", "", t)
249}
250
251func TestCompact0041(t *testing.T) {
252	testCompactSimple("compact-0041-in.jsonld", "compact-0041-out.jsonld",
253		"compact-0041-context.jsonld", "", t)
254}
255
256func TestCompact0042(t *testing.T) {
257	testCompactSimple("compact-0042-in.jsonld", "compact-0042-out.jsonld",
258		"compact-0042-context.jsonld", "", t)
259}
260
261func TestCompact0043(t *testing.T) {
262	testCompactSimple("compact-0043-in.jsonld", "compact-0043-out.jsonld",
263		"compact-0043-context.jsonld", "", t)
264}
265
266func TestCompact0044(t *testing.T) {
267	testCompactSimple("compact-0044-in.jsonld", "compact-0044-out.jsonld",
268		"compact-0044-context.jsonld", "", t)
269}
270
271func TestCompact0045(t *testing.T) {
272	testCompactSimple("compact-0045-in.jsonld", "compact-0045-out.jsonld",
273		"compact-0045-context.jsonld", "http://json-ld.org/test-suite/tests/", t)
274}
275
276func TestCompact0046(t *testing.T) {
277	testCompactSimple("compact-0046-in.jsonld", "compact-0046-out.jsonld",
278		"compact-0046-context.jsonld", "", t)
279}
280
281func TestCompact0047(t *testing.T) {
282	testCompactSimple("compact-0047-in.jsonld", "compact-0047-out.jsonld",
283		"compact-0047-context.jsonld", "", t)
284}
285
286func TestCompact0048(t *testing.T) {
287	testCompactSimple("compact-0048-in.jsonld", "compact-0048-out.jsonld",
288		"compact-0048-context.jsonld", "", t)
289}
290
291func TestCompact0049(t *testing.T) {
292	testCompactSimple("compact-0049-in.jsonld", "compact-0049-out.jsonld",
293		"compact-0049-context.jsonld", "", t)
294}
295
296func TestCompact0050(t *testing.T) {
297	testCompactSimple("compact-0050-in.jsonld", "compact-0050-out.jsonld",
298		"compact-0050-context.jsonld", "", t)
299}
300
301func TestCompact0051(t *testing.T) {
302	testCompactSimple("compact-0051-in.jsonld", "compact-0051-out.jsonld",
303		"compact-0051-context.jsonld", "", t)
304}
305
306func TestCompact0052(t *testing.T) {
307	testCompactSimple("compact-0052-in.jsonld", "compact-0052-out.jsonld",
308		"compact-0052-context.jsonld", "", t)
309}
310
311func TestCompact0053(t *testing.T) {
312	testCompactSimple("compact-0053-in.jsonld", "compact-0053-out.jsonld",
313		"compact-0053-context.jsonld", "", t)
314}
315
316func TestCompact0054(t *testing.T) {
317	testCompactSimple("compact-0054-in.jsonld", "compact-0054-out.jsonld",
318		"compact-0054-context.jsonld", "", t)
319}
320
321func TestCompact0055(t *testing.T) {
322	testCompactSimple("compact-0055-in.jsonld", "compact-0055-out.jsonld",
323		"compact-0055-context.jsonld", "", t)
324}
325
326func TestCompact0056(t *testing.T) {
327	testCompactSimple("compact-0056-in.jsonld", "compact-0056-out.jsonld",
328		"compact-0056-context.jsonld", "", t)
329}
330
331func TestCompact0057(t *testing.T) {
332	testCompactSimple("compact-0057-in.jsonld", "compact-0057-out.jsonld",
333		"compact-0057-context.jsonld", "", t)
334}
335
336func TestCompact0058(t *testing.T) {
337	testCompactSimple("compact-0058-in.jsonld", "compact-0058-out.jsonld",
338		"compact-0058-context.jsonld", "", t)
339}
340
341func TestCompact0059(t *testing.T) {
342	testCompactSimple("compact-0059-in.jsonld", "compact-0059-out.jsonld",
343		"compact-0059-context.jsonld", "", t)
344}
345
346func TestCompact0060(t *testing.T) {
347	testCompactSimple("compact-0060-in.jsonld", "compact-0060-out.jsonld",
348		"compact-0060-context.jsonld", "", t)
349}
350
351func TestCompact0061(t *testing.T) {
352	testCompactSimple("compact-0061-in.jsonld", "compact-0061-out.jsonld",
353		"compact-0061-context.jsonld", "", t)
354}
355
356func TestCompact0062(t *testing.T) {
357	testCompactSimple("compact-0062-in.jsonld", "compact-0062-out.jsonld",
358		"compact-0062-context.jsonld", "http://json-ld.org/test-suite/tests/", t)
359}
360
361func TestCompact0063(t *testing.T) {
362	testCompactSimple("compact-0063-in.jsonld", "compact-0063-out.jsonld",
363		"compact-0063-context.jsonld", "", t)
364}
365
366func TestCompact0064(t *testing.T) {
367	testCompactSimple("compact-0064-in.jsonld", "compact-0064-out.jsonld",
368		"compact-0064-context.jsonld", "", t)
369}
370
371func TestCompact0065(t *testing.T) {
372	testCompactSimple("compact-0065-in.jsonld", "compact-0065-out.jsonld",
373		"compact-0065-context.jsonld", "", t)
374}
375
376func TestCompact0066(t *testing.T) {
377	testCompactSimple("compact-0066-in.jsonld", "compact-0066-out.jsonld",
378		"compact-0066-context.jsonld",
379		"http://json-ld.org/test-suite/tests/compact-0066-in.jsonld", t)
380}
381
382func TestCompact0067(t *testing.T) {
383	testCompactSimple("compact-0067-in.jsonld", "compact-0067-out.jsonld",
384		"compact-0067-context.jsonld", "", t)
385}
386
387func TestCompact0068(t *testing.T) {
388	testCompactSimple("compact-0068-in.jsonld", "compact-0068-out.jsonld",
389		"compact-0068-context.jsonld", "", t)
390}
391
392func TestCompact0069(t *testing.T) {
393	testCompactSimple("compact-0069-in.jsonld", "compact-0069-out.jsonld",
394		"compact-0069-context.jsonld", "", t)
395}
396
397func TestCompact0070(t *testing.T) {
398	testCompact("compact-0070-in.jsonld", "compact-0070-out.jsonld",
399		"compact-0070-context.jsonld", "", false, t)
400}
401
402func TestCompact0071(t *testing.T) {
403	testCompactSimple("compact-0071-in.jsonld", "compact-0071-out.jsonld",
404		"compact-0071-context.jsonld", "", t)
405}
406
407func TestCompact0072(t *testing.T) {
408	testCompactSimple("compact-0072-in.jsonld", "compact-0072-out.jsonld",
409		"compact-0072-context.jsonld", "", t)
410}
411