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  }