@@ -10,3 +10,67 @@ block:
1010
1111 doAssert s1.toJson.fromJson (type (s1)) == s1
1212 doAssert s2.toJson.fromJson (type (s2)) == s2
13+
14+ block :
15+ let
16+ s1: set [int8 ] = {1 'i8 , 2 , 3 }
17+ s2: set [int16 ] = {1 'i16 , 2 , 3 }
18+
19+ doAssert s1.toJson () == " [1,2,3]"
20+ doAssert s2.toJson () == " [1,2,3]"
21+
22+ doAssert s1.toJson.fromJson (set [int8 ]) == s1
23+ doAssert s2.toJson.fromJson (set [int16 ]) == s2
24+
25+ block :
26+ let
27+ s1: set [uint8 ] = {1 'u8 , 2 , 3 }
28+ s2: set [uint16 ] = {1 'u16 , 2 , 3 }
29+
30+ doAssert s1.toJson () == " [1,2,3]"
31+ doAssert s2.toJson () == " [1,2,3]"
32+
33+ doAssert s1.toJson.fromJson (set [uint8 ]) == s1
34+ doAssert s2.toJson.fromJson (set [uint16 ]) == s2
35+
36+ block :
37+ let
38+ s1: set [char ] = {'0' .. '9' }
39+
40+ doAssert s1.toJson () == """ ["0","1","2","3","4","5","6","7","8","9"] """
41+
42+ doAssert s1.toJson.fromJson (set [char ]) == s1
43+
44+ block :
45+ type
46+ E1 = enum
47+ e1Elem1, e1Elem2, e1Elem3
48+ E2 = enum
49+ e2Elem1 = " custString1" , e2Elem2 = " custString2" , e2Elem3 = " custString3"
50+ E3 = enum
51+ e3Elem1 = 10 , e3Elem2 = 20 , e3Elem3 = 30
52+
53+ let
54+ s1: set [E1 ] = {e1Elem1, e1Elem2, e1Elem3}
55+ s2: set [E2 ] = {e2Elem1, e2Elem2, e2Elem3}
56+ s3: set [E3 ] = {e3Elem1, e3Elem2, e3Elem3}
57+
58+ doAssert s1.toJson () == """ ["e1Elem1","e1Elem2","e1Elem3"] """
59+ doAssert s2.toJson () == """ ["custString1","custString2","custString3"] """
60+ doAssert s3.toJson () == """ ["e3Elem1","e3Elem2","e3Elem3"] """
61+
62+ doAssert s1.toJson.fromJson (set [E1 ]) == s1
63+ doAssert s2.toJson.fromJson (set [E2 ]) == s2
64+ doAssert s3.toJson.fromJson (set [E3 ]) == s3
65+
66+ block :
67+ type
68+ E1 = enum
69+ e1Elem1, e1Elem2, e1Elem3
70+ S1 = set [E1 ]
71+
72+ let
73+ s1: S1 = {e1Elem1, e1Elem2, e1Elem3}
74+
75+ doAssert s1.toJson () == """ ["e1Elem1","e1Elem2","e1Elem3"] """
76+ doAssert s1.toJson.fromJson (set [E1 ]) == s1
0 commit comments