summaryrefslogtreecommitdiff
path: root/go/variable-length-quantity/variable_length_quantity_test.go
blob: 537f5acb5180afee063752dd4270713f7b8eb8f8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package variablelengthquantity

import (
	"bytes"
	"reflect"
	"testing"
)

func TestDecodeVarint(t *testing.T) {
	for i, tc := range decodeTestCases {
		o, err := DecodeVarint(tc.input)
		if err != nil {
			var _ error = err
			if tc.output != nil {
				t.Fatalf("FAIL: case %d | %s\nexpected %#v got error: %q\n", i, tc.description, tc.output, err)
			}
		} else if tc.output == nil {
			t.Fatalf("FAIL: case %d | %s\nexpected error, got %#v\n", i, tc.description, o)
		} else if !reflect.DeepEqual(o, tc.output) {
			t.Fatalf("FAIL: case %d | %s\nexpected\t%#v\ngot\t\t%#v\n", i, tc.description, tc.output, o)
		}
		t.Logf("PASS: case %d | %s\n", i, tc.description)
	}
}

func TestEncodeVarint(t *testing.T) {
	for i, tc := range encodeTestCases {
		if encoded := EncodeVarint(tc.input); bytes.Compare(encoded, tc.output) != 0 {
			t.Fatalf("FAIL: case %d | %s\nexpected\t%#v\ngot\t\t%#v\n", i, tc.description, tc.output, encoded)
		}
		t.Logf("PASS: case %d | %s\n", i, tc.description)
	}
}