MCPcopy Create free account
hub / github.com/copernet/copernicus / TestScriptNumSerialize

Function TestScriptNumSerialize

model/script/scriptnum_test.go:130–190  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

128}
129
130func TestScriptNumSerialize(t *testing.T) {
131 t.Parallel()
132
133 tests := []struct {
134 num ScriptNum
135 serialized []byte
136 }{
137 {ScriptNum{0}, nil},
138 {ScriptNum{1}, hexToBytes("01")},
139 {ScriptNum{-1}, hexToBytes("81")},
140 {ScriptNum{127}, hexToBytes("7f")},
141 {ScriptNum{-127}, hexToBytes("ff")},
142 {ScriptNum{128}, hexToBytes("8000")},
143 {ScriptNum{-128}, hexToBytes("8080")},
144 {ScriptNum{129}, hexToBytes("8100")},
145 {ScriptNum{-129}, hexToBytes("8180")},
146 {ScriptNum{256}, hexToBytes("0001")},
147 {ScriptNum{-256}, hexToBytes("0081")},
148 {ScriptNum{32767}, hexToBytes("ff7f")},
149 {ScriptNum{-32767}, hexToBytes("ffff")},
150 {ScriptNum{32768}, hexToBytes("008000")},
151 {ScriptNum{-32768}, hexToBytes("008080")},
152 {ScriptNum{65535}, hexToBytes("ffff00")},
153 {ScriptNum{-65535}, hexToBytes("ffff80")},
154 {ScriptNum{524288}, hexToBytes("000008")},
155 {ScriptNum{-524288}, hexToBytes("000088")},
156 {ScriptNum{7340032}, hexToBytes("000070")},
157 {ScriptNum{-7340032}, hexToBytes("0000f0")},
158 {ScriptNum{8388608}, hexToBytes("00008000")},
159 {ScriptNum{-8388608}, hexToBytes("00008080")},
160 {ScriptNum{2147483647}, hexToBytes("ffffff7f")},
161 {ScriptNum{-2147483647}, hexToBytes("ffffffff")},
162
163 // Values that are out of range for data that is interpreted as
164 // numbers, but are allowed as the result of numeric operations.
165 {ScriptNum{2147483648}, hexToBytes("0000008000")},
166 {ScriptNum{-2147483648}, hexToBytes("0000008080")},
167 {ScriptNum{2415919104}, hexToBytes("0000009000")},
168 {ScriptNum{-2415919104}, hexToBytes("0000009080")},
169 {ScriptNum{4294967295}, hexToBytes("ffffffff00")},
170 {ScriptNum{-4294967295}, hexToBytes("ffffffff80")},
171 {ScriptNum{4294967296}, hexToBytes("0000000001")},
172 {ScriptNum{-4294967296}, hexToBytes("0000000081")},
173 {ScriptNum{281474976710655}, hexToBytes("ffffffffffff00")},
174 {ScriptNum{-281474976710655}, hexToBytes("ffffffffffff80")},
175 {ScriptNum{72057594037927935}, hexToBytes("ffffffffffffff00")},
176 {ScriptNum{-72057594037927935}, hexToBytes("ffffffffffffff80")},
177 {ScriptNum{9223372036854775807}, hexToBytes("ffffffffffffff7f")},
178 {ScriptNum{-9223372036854775807}, hexToBytes("ffffffffffffffff")},
179 }
180
181 for _, test := range tests {
182 gotBytes := test.num.Serialize()
183 if !bytes.Equal(gotBytes, test.serialized) {
184 t.Errorf("Bytes: did not get expected bytes for %d - "+
185 "got %x, want %x", test.num.Value, gotBytes,
186 test.serialized)
187 continue

Callers

nothing calls this directly

Calls 3

hexToBytesFunction · 0.85
SerializeMethod · 0.45
EqualMethod · 0.45

Tested by

no test coverage detected