1package base64vlq_test
2
3import (
4	"bytes"
5	"testing"
6
7	"github.com/go-sourcemap/sourcemap/internal/base64vlq"
8)
9
10func TestEncodeDecode(t *testing.T) {
11	buf := new(bytes.Buffer)
12	enc := base64vlq.NewEncoder(buf)
13	dec := base64vlq.NewDecoder(buf)
14
15	for n := int32(-1000); n < 1000; n++ {
16		if err := enc.Encode(n); err != nil {
17			panic(err)
18		}
19	}
20
21	for n := int32(-1000); n < 1000; n++ {
22		nn, err := dec.Decode()
23		if err != nil {
24			panic(err)
25		}
26
27		if nn != n {
28			t.Errorf("%d != %d", nn, n)
29		}
30	}
31}
32
33func BenchmarkEncode(b *testing.B) {
34	buf := new(bytes.Buffer)
35	enc := base64vlq.NewEncoder(buf)
36
37	b.ResetTimer()
38
39	for i := 0; i < b.N; i++ {
40		if err := enc.Encode(1000); err != nil {
41			panic(err)
42		}
43	}
44}
45
46func BenchmarkEncodeDecode(b *testing.B) {
47	buf := new(bytes.Buffer)
48	enc := base64vlq.NewEncoder(buf)
49	dec := base64vlq.NewDecoder(buf)
50
51	b.ResetTimer()
52
53	for i := 0; i < b.N; i++ {
54		if err := enc.Encode(1000); err != nil {
55			panic(err)
56		}
57
58		_, err := dec.Decode()
59		if err != nil {
60			panic(err)
61		}
62	}
63}
64