| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- // Copyright 2011 The Snappy-Go Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style
- // license that can be found in the LICENSE file.
- package zigzag
- import (
- "testing"
- )
- var testCases = []struct {
- u uint64
- i int64
- }{
- {0, +0},
- {1, -1},
- {2, +1},
- {3, -2},
- {4, +2},
- {5, -3},
- {6, +3},
- {199, -100},
- {200, +100},
- {1<<32 - 2, +1<<31 - 1},
- {1<<32 - 1, -1<<31 - 0},
- {1<<32 + 0, +1<<31 + 0},
- {1<<32 + 1, -1<<31 - 1},
- {1<<32 + 2, +1<<31 + 1},
- {1<<64 - 2, +1<<63 - 1},
- {1<<64 - 1, -1<<63 + 0},
- }
- func TestZigzag(t *testing.T) {
- for _, tc := range testCases {
- if i := Utoi64(tc.u); i != tc.i {
- t.Errorf("uint64 %d to int64: want %d got %d", tc.u, tc.i, i)
- }
- if u := Itou64(tc.i); u != tc.u {
- t.Errorf("int64 %d to uint64: want %d got %d", tc.i, tc.u, u)
- }
- }
- }
|