MCPcopy Create free account
hub / github.com/WICG/webpackage / TestMapEncoder

Function TestMapEncoder

go/internal/cbor/encoder_test.go:144–211  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

142}
143
144func TestMapEncoder(t *testing.T) {
145 entries := []*MapEntryEncoder{
146 GenerateMapEntry(func(keyE *Encoder, valueE *Encoder) {
147 keyE.EncodeBool(false)
148 valueE.EncodeTextString("false")
149 }),
150 GenerateMapEntry(func(keyE *Encoder, valueE *Encoder) {
151 keyE.EncodeInt(-1)
152 valueE.EncodeTextString("int -1")
153 }),
154 GenerateMapEntry(func(keyE *Encoder, valueE *Encoder) {
155 keyE.EncodeInt(10)
156 valueE.EncodeTextString("int 10")
157 }),
158 GenerateMapEntry(func(keyE *Encoder, valueE *Encoder) {
159 keyE.EncodeInt(100)
160 valueE.EncodeTextString("int 100")
161 }),
162 GenerateMapEntry(func(keyE *Encoder, valueE *Encoder) {
163 keyE.EncodeTextString("aa")
164 valueE.EncodeTextString("string \"aa\"")
165 }),
166 GenerateMapEntry(func(keyE *Encoder, valueE *Encoder) {
167 keyE.EncodeTextString("z")
168 valueE.EncodeTextString("string \"z\"")
169 }),
170 GenerateMapEntry(func(keyE *Encoder, valueE *Encoder) {
171 keyE.EncodeArrayHeader(1)
172 keyE.EncodeInt(-1)
173 valueE.EncodeTextString("array [-1]")
174 }),
175 GenerateMapEntry(func(keyE *Encoder, valueE *Encoder) {
176 keyE.EncodeArrayHeader(1)
177 keyE.EncodeInt(100)
178 valueE.EncodeTextString("array [100]")
179 }),
180 }
181
182 // The keys in every map MUST be sorted in the bytewise lexicographic order of
183 // their canonical encodings. For example, the following keys are correctly
184 // sorted:
185 // 1. 10, encoded as 0A.
186 // 2. 100, encoded as 18 64.
187 // 3. -1, encoded as 20.
188 // 4. “z”, encoded as 61 7A.
189 // 5. “aa”, encoded as 62 61 61.
190 // 6. [100], encoded as 81 18 64.
191 // 7. [-1], encoded as 81 20.
192 // 8. false, encoded as F4.
193 exp := fromHex(strings.Join([]string{
194 "A8", // length
195 "0A 66 69 6E 74 20 31 30",
196 "18 64 67 69 6E 74",
197 "20 31 30 30 20 66 69 6E 74 20 2D 31",
198 "61 7A 6A 73 74 72 69 6E 67 20 22 7A 22",
199 "62 61 61 6B 73 74 72 69 6E 67 20 22 61 61 22",
200 "81 18 64 6B 61 72 72 61 79 20 5B 31 30 30 5D",
201 "81 20 6A 61 72 72 61 79 20 5B 2D 31 5D",

Callers

nothing calls this directly

Calls 8

EncodeMapMethod · 0.95
GenerateMapEntryFunction · 0.85
fromHexFunction · 0.85
NewEncoderFunction · 0.85
EncodeBoolMethod · 0.80
EncodeTextStringMethod · 0.80
EncodeIntMethod · 0.80
EncodeArrayHeaderMethod · 0.80

Tested by

no test coverage detected