github.com/attic-labs/noms@v0.0.0-20210827224422-e5fa29d95e8b/go/hash/base32_test.go (about) 1 // Copyright 2016 Attic Labs, Inc. All rights reserved. 2 // Licensed under the Apache License, version 2.0: 3 // http://www.apache.org/licenses/LICENSE-2.0 4 5 package hash 6 7 import ( 8 "testing" 9 10 "github.com/stretchr/testify/assert" 11 ) 12 13 func TestBase32Encode(t *testing.T) { 14 assert := assert.New(t) 15 16 d := make([]byte, 20, 20) 17 assert.Equal("00000000000000000000000000000000", encode(d)) 18 d[19] = 1 19 assert.Equal("00000000000000000000000000000001", encode(d)) 20 d[19] = 10 21 assert.Equal("0000000000000000000000000000000a", encode(d)) 22 d[19] = 20 23 assert.Equal("0000000000000000000000000000000k", encode(d)) 24 d[19] = 31 25 assert.Equal("0000000000000000000000000000000v", encode(d)) 26 d[19] = 32 27 assert.Equal("00000000000000000000000000000010", encode(d)) 28 d[19] = 63 29 assert.Equal("0000000000000000000000000000001v", encode(d)) 30 d[19] = 64 31 assert.Equal("00000000000000000000000000000020", encode(d)) 32 33 // Largest! 34 for i := 0; i < 20; i++ { 35 d[i] = 0xff 36 } 37 assert.Equal("vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv", encode(d)) 38 } 39 40 func TestBase32Decode(t *testing.T) { 41 assert := assert.New(t) 42 43 d := make([]byte, 20, 20) 44 assert.Equal(d, decode("00000000000000000000000000000000")) 45 46 d[19] = 1 47 assert.Equal(d, decode("00000000000000000000000000000001")) 48 d[19] = 10 49 assert.Equal(d, decode("0000000000000000000000000000000a")) 50 d[19] = 20 51 assert.Equal(d, decode("0000000000000000000000000000000k")) 52 d[19] = 31 53 assert.Equal(d, decode("0000000000000000000000000000000v")) 54 d[19] = 32 55 assert.Equal(d, decode("00000000000000000000000000000010")) 56 d[19] = 63 57 assert.Equal(d, decode("0000000000000000000000000000001v")) 58 d[19] = 64 59 assert.Equal(d, decode("00000000000000000000000000000020")) 60 61 // Largest! 62 for i := 0; i < 20; i++ { 63 d[i] = 0xff 64 } 65 assert.Equal(d, decode("vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv")) 66 }