(t *testing.T)
| 265 | } |
| 266 | |
| 267 | func TestArrayOpCode(t *testing.T) { |
| 268 | checkStackOpCode(t, ARRAYSIZE, []Value{"12345"}, []Value{5}) |
| 269 | checkStackOpCode(t, ARRAYSIZE, []Value{[]Value{1, 2, 3}}, []Value{3}) |
| 270 | checkStackOpCode(t, ARRAYSIZE, []Value{[]Value{}}, []Value{0}) |
| 271 | |
| 272 | checkStackOpCode(t, PACK, []Value{"aaa", "bbb", "ccc", 3}, []Value{[]Value{"ccc", "bbb", "aaa"}}) |
| 273 | |
| 274 | checkStackOpCode(t, UNPACK, []Value{[]Value{"ccc", "bbb", "aaa"}}, []Value{"aaa", "bbb", "ccc", 3}) |
| 275 | |
| 276 | checkStackOpCode(t, PICKITEM, []Value{[]Value{"ccc", "bbb", "aaa"}, 0}, []Value{"ccc"}) |
| 277 | checkStackOpCode(t, PICKITEM, []Value{[]Value{"ccc", "bbb", "aaa"}, 1}, []Value{"bbb"}) |
| 278 | |
| 279 | checkStackOpCode(t, NEWARRAY, []Value{int64(1)}, []Value{[]Value{false}}) |
| 280 | |
| 281 | checkMultiStackOpCode(t, []OpCode{TOALTSTACK, DUPFROMALTSTACK, PUSH1, REMOVE, FROMALTSTACK}, []Value{[]Value{"ccc", "bbb", "aaa"}}, []Value{[]Value{"ccc", "aaa"}}) |
| 282 | |
| 283 | checkMultiStackOpCode(t, []OpCode{TOALTSTACK, PUSH1, DUPFROMALTSTACK, PUSH2, XSWAP, SETITEM, FROMALTSTACK}, []Value{"ddd", []Value{"ccc", "bbb", "aaa"}}, []Value{[]Value{"ccc", "ddd", "aaa"}}) |
| 284 | |
| 285 | // reverse will pop the value from stack |
| 286 | checkStackOpCode(t, REVERSE, []Value{[]Value{"ccc", "bbb", "aaa"}}, []Value{}) |
| 287 | checkMultiStackOpCode(t, []OpCode{TOALTSTACK, DUPFROMALTSTACK, REVERSE, FROMALTSTACK}, |
| 288 | []Value{[]Value{"ccc", "bbb", "aaa"}}, |
| 289 | []Value{[]Value{"aaa", "bbb", "ccc"}}, |
| 290 | ) |
| 291 | |
| 292 | checkMultiStackOpCode(t, []OpCode{SWAP, TOALTSTACK, DUPFROMALTSTACK, SWAP, APPEND, FROMALTSTACK}, |
| 293 | []Value{[]Value{"aaa", "bbb", "ccc"}, "eee"}, |
| 294 | []Value{[]Value{"aaa", "bbb", "ccc", "eee"}}, |
| 295 | ) |
| 296 | |
| 297 | checkStackOpCode(t, WITHIN, []Value{1, 2, 3}, []Value{false}) |
| 298 | } |
| 299 | |
| 300 | func TestMapValue(t *testing.T) { |
| 301 | mp := make(map[interface{}]interface{}, 0) |
nothing calls this directly
no test coverage detected