github.com/gnolang/gno@v0.0.0-20240520182011-228e9d0192ce/gnovm/stdlibs/encoding/binary/binary_test.gno (about) 1 package binary 2 3 import ( 4 "bytes" 5 "encoding/binary" 6 "testing" 7 ) 8 9 func TestLittleEndianUint16(t *testing.T) { 10 b := []byte{0xe8, 0x03, 0xd0, 0x07} 11 x1 := binary.LittleEndian.Uint16(b[0:]) 12 x2 := binary.LittleEndian.Uint16(b[2:]) 13 14 if x1 != 0x03e8 || x2 != 0x07d0 { 15 t.Fatal("littleEndian.Uint16 failed") 16 } 17 } 18 19 func TestLittleEndianPutUint16(t *testing.T) { 20 b := make([]byte, 4) 21 binary.LittleEndian.PutUint16(b[0:], 0x03e8) 22 binary.LittleEndian.PutUint16(b[2:], 0x07d0) 23 24 if !bytes.Equal(b, []byte{0xe8, 0x03, 0xd0, 0x07}) { 25 t.Fatal("littleEndian.PutUint16 failed") 26 } 27 } 28 29 func TestLittleEndianAppendUint16(t *testing.T) { 30 b := make([]byte, 4) 31 binary.LittleEndian.PutUint16(b[0:], 0x03e8) 32 binary.LittleEndian.PutUint16(b[2:], 0x07d0) 33 34 v := uint16(0x0bb8) 35 b = binary.LittleEndian.AppendUint16(b, v) 36 37 if !bytes.Equal(b, []byte{0xe8, 0x03, 0xd0, 0x07, 0xb8, 0x0b}) { 38 t.Fatal("littleEndian.AppendUint16 failed") 39 } 40 } 41 42 func TestLittleEndianUint32(t *testing.T) { 43 b := []byte{0xe8, 0x03, 0xd0, 0x07} 44 x := binary.LittleEndian.Uint32(b[0:]) 45 if x != 0x07d003e8 { 46 t.Fatal("littleEndian.Uint32 failed") 47 } 48 } 49 50 func TestLittleEndianPutUint32(t *testing.T) { 51 b := make([]byte, 4) 52 binary.LittleEndian.PutUint32(b[0:], 0x07d003e8) 53 54 if !bytes.Equal(b, []byte{0xe8, 0x03, 0xd0, 0x07}) { 55 t.Fatal("littleEndian.PutUint32 failed") 56 } 57 } 58 59 func TestLittleEndianAppendUint32(t *testing.T) { 60 b := make([]byte, 4) 61 binary.LittleEndian.PutUint32(b[0:], 0x07d003e8) 62 63 v := uint32(0x0bb807d0) 64 b = binary.LittleEndian.AppendUint32(b, v) 65 66 if !bytes.Equal(b, []byte{0xe8, 0x03, 0xd0, 0x07, 0xd0, 0x07, 0xb8, 0x0b}) { 67 t.Fatal("littleEndian.AppendUint32 failed") 68 } 69 } 70 71 func TestLittleEndianUint64(t *testing.T) { 72 b := []byte{0xe8, 0x03, 0xd0, 0x07, 0xe9, 0xf5, 0x14, 0xfe} 73 x := binary.LittleEndian.Uint64(b[0:]) 74 if x != 0xfe14f5e907d003e8 { 75 t.Fatal("littleEndian.Uint64 failed") 76 } 77 } 78 79 func TestLittleEndianPutUint64(t *testing.T) { 80 b := make([]byte, 8) 81 binary.LittleEndian.PutUint64(b[0:], 0xfe14f5e907d003e8) 82 83 if !bytes.Equal(b, []byte{0xe8, 0x03, 0xd0, 0x07, 0xe9, 0xf5, 0x14, 0xfe}) { 84 t.Fatal("littleEndian.PutUint64 failed") 85 } 86 } 87 88 func TestLittleEndianAppendUint64(t *testing.T) { 89 b := make([]byte, 8) 90 binary.LittleEndian.PutUint64(b[0:], 0xfe14f5e907d003e8) 91 92 v := uint64(0x0bb807d0d007e9f5) 93 b = binary.LittleEndian.AppendUint64(b, v) 94 95 if !bytes.Equal(b, []byte{0xe8, 0x03, 0xd0, 0x07, 0xe9, 0xf5, 0x14, 0xfe, 0xf5, 0xe9, 0x07, 0xd0, 0xd0, 0x07, 0xb8, 0x0b}) { 96 t.Fatal("littleEndian.AppendUint64 failed") 97 } 98 } 99 100 func TestBigEndianUint16(t *testing.T) { 101 b := []byte{0xe8, 0x03, 0xd0, 0x07} 102 x1 := binary.BigEndian.Uint16(b[0:]) 103 x2 := binary.BigEndian.Uint16(b[2:]) 104 105 if x1 != 0xe803 || x2 != 0xd007 { 106 t.Fatal("bigEndian.Uint16 failed") 107 } 108 } 109 110 func TestBigEndianPutUint16(t *testing.T) { 111 b := make([]byte, 4) 112 binary.BigEndian.PutUint16(b[0:], 0x03e8) 113 binary.BigEndian.PutUint16(b[2:], 0x07d0) 114 115 if !bytes.Equal(b, []byte{0x03, 0xe8, 0x07, 0xd0}) { 116 t.Fatal("bigEndian.PutUint16 failed") 117 } 118 } 119 120 func TestBigEndianAppendUint16(t *testing.T) { 121 b := make([]byte, 4) 122 binary.BigEndian.PutUint16(b[0:], 0x03e8) 123 binary.BigEndian.PutUint16(b[2:], 0x07d0) 124 125 v := uint16(0x0bb8) 126 b = binary.BigEndian.AppendUint16(b, v) 127 128 if !bytes.Equal(b, []byte{0x03, 0xe8, 0x07, 0xd0, 0x0b, 0xb8}) { 129 t.Fatal("BigEndian.AppendUint16 failed") 130 } 131 } 132 133 func TestBigEndianUint32(t *testing.T) { 134 b := []byte{0xe8, 0x03, 0xd0, 0x07} 135 x := binary.BigEndian.Uint32(b[0:]) 136 if x != 0xe803d007 { 137 t.Fatal("bigEndian.Uint32 failed") 138 } 139 } 140 141 func TestBigEndianPutUint32(t *testing.T) { 142 b := make([]byte, 4) 143 binary.BigEndian.PutUint32(b[0:], 0x07d003e8) 144 145 if !bytes.Equal(b, []byte{0x07, 0xd0, 0x03, 0xe8}) { 146 t.Fatal("bigEndian.PutUint32 failed") 147 } 148 } 149 150 func TestBigEndianAppendUint32(t *testing.T) { 151 b := make([]byte, 4) 152 binary.BigEndian.PutUint32(b[0:], 0x07d003e8) 153 154 v := uint32(0x0bb807d0) 155 b = binary.BigEndian.AppendUint32(b, v) 156 157 if !bytes.Equal(b, []byte{0x07, 0xd0, 0x03, 0xe8, 0x0b, 0xb8, 0x07, 0xd0}) { 158 t.Fatal("bigEndian.AppendUint32 failed") 159 } 160 } 161 162 func TestBigEndianUint64(t *testing.T) { 163 b := []byte{0xe8, 0x03, 0xd0, 0x07, 0xe9, 0xf5, 0x14, 0xfe} 164 x := binary.BigEndian.Uint64(b[0:]) 165 if x != 0xe803d007e9f514fe { 166 t.Fatal("bigEndian.Uint64 failed") 167 } 168 } 169 170 func TestBigEndianPutUint64(t *testing.T) { 171 b := make([]byte, 8) 172 binary.BigEndian.PutUint64(b[0:], 0xfe14f5e907d003e8) 173 174 if !bytes.Equal(b, []byte{0xfe, 0x14, 0xf5, 0xe9, 0x07, 0xd0, 0x03, 0xe8}) { 175 t.Fatal("bigEndian.PutUint64 failed") 176 } 177 } 178 179 func TestbigEndianAppendUint64(t *testing.T) { 180 b := make([]byte, 8) 181 binary.BigEndian.PutUint64(b[0:], 0xfe14f5e907d003e8) 182 183 v := uint64(0x0bb807d0d007e9f5) 184 b = binary.BigEndian.AppendUint64(b, v) 185 186 if !bytes.Equal(b, []byte{0xfe, 0x14, 0xf5, 0xe9, 0x07, 0xd0, 0x03, 0xe8, 0x0b, 0xb8, 0x07, 0xd0, 0xd0, 0x07, 0xe9, 0xf5}) { 187 t.Fatal("bigEndian.AppendUint64 failed") 188 } 189 }