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  }