PathrockNetwork Gno Explorer
HomeBlocksTransactionsTokensRealmsPackagesValidatorsAnalytics

PathrockNetwork Gno Explorer — an independent explorer for Gno.land Mainnet (gnoland-1), operated by PathrockNetwork. Not an official Gno.land service.

gnowebarchive RPC

gno.land/p/onbloc/uint256/v0

Package
Open in gnoweb ↗

Overview

Kind
Pure package
Name
v0
Namespace
onbloc / uint256
Files
17 (README)(gnomod.toml)
Exported functions
n/a — not supported for pure packages by the node (vm/qfuncs)
Module
gno.land/p/onbloc/uint256/v0
gno
0.9

Files (17)

  • README.mdmarkdown
  • gnomod.tomltoml
  • arithmetic.gnogno
  • bits_table.gnogno
  • bitwise.gnogno
  • cmp.gnogno
  • conversion.gnogno
  • error.gnogno
  • mod.gnogno
  • uint256.gnogno
  • utils.gnogno
  • arithmetic_test.gnogno
  • bitwise_test.gnogno
  • cmp_test.gnogno
  • conversion_test.gnogno
  • uint256_test.gnogno
  • LICENSEother
  • uint256_test.gnogno
    1package uint25623import (4	"testing"5)67func TestSetAllOne(t *testing.T) {8

    Functions

    not supported for pure packages by the node (vm/qfuncs)

    Signatures reconstructed verbatim from vm/qfuncs — interface params keep their inline definitions.

    z := Zero()
    9 z.SetAllOne()
    10 if z.String() != twoPow256Sub1 {
    11 t.Errorf("Expected all ones, got %s", z.String())
    12 }
    13}
    14
    15func TestByte(t *testing.T) {
    16 tests := []struct {
    17 input string
    18 position uint64
    19 expected byte
    20 }{
    21 {"0x1000000000000000000000000000000000000000000000000000000000000000", 0, 16},
    22 {"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 0, 255},
    23 {"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 31, 255},
    24 }
    25
    26 for i, tt := range tests {
    27 z, _ := FromHex(tt.input)
    28 n := NewUint(tt.position)
    29 result := z.Byte(n)
    30
    31 if result.arr[0] != uint64(tt.expected) {
    32 t.Errorf("Test case %d failed. Input: %s, Position: %d, Expected: %d, Got: %d",
    33 i, tt.input, tt.position, tt.expected, result.arr[0])
    34 }
    35
    36 // check other array elements are 0
    37 if result.arr[1] != 0 || result.arr[2] != 0 || result.arr[3] != 0 {
    38 t.Errorf("Test case %d failed. Non-zero values in upper bytes", i)
    39 }
    40 }
    41
    42 // overflow
    43 z, _ := FromHex("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff")
    44 n := NewUint(32)
    45 result := z.Byte(n)
    46
    47 if !result.IsZero() {
    48 t.Errorf("Expected zero for position >= 32, got %v", result)
    49 }
    50}
    51
    52func TestBitLen(t *testing.T) {
    53 tests := []struct {
    54 input string
    55 expected int
    56 }{
    57 {"0x0", 0},
    58 {"0x1", 1},
    59 {"0xff", 8},
    60 {"0x100", 9},
    61 {"0xffff", 16},
    62 {"0x10000", 17},
    63 {"0xffffffffffffffff", 64},
    64 {"0x10000000000000000", 65},
    65 {"0xffffffffffffffffffffffffffffffff", 128},
    66 {"0x100000000000000000000000000000000", 129},
    67 {"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 256},
    68 }
    69
    70 for i, tt := range tests {
    71 z, _ := FromHex(tt.input)
    72 result := z.BitLen()
    73
    74 if result != tt.expected {
    75 t.Errorf("Test case %d failed. Input: %s, Expected: %d, Got: %d",
    76 i, tt.input, tt.expected, result)
    77 }
    78 }
    79}
    80
    81func TestByteLen(t *testing.T) {
    82 tests := []struct {
    83 input string
    84 expected int
    85 }{
    86 {"0x0", 0},
    87 {"0x1", 1},
    88 {"0xff", 1},
    89 {"0x100", 2},
    90 {"0xffff", 2},
    91 {"0x10000", 3},
    92 {"0xffffffffffffffff", 8},
    93 {"0x10000000000000000", 9},
    94 {"0xffffffffffffffffffffffffffffffff", 16},
    95 {"0x100000000000000000000000000000000", 17},
    96 {"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 32},
    97 }
    98
    99 for i, tt := range tests {
    100 z, _ := FromHex(tt.input)
    101 result := z.ByteLen()
    102
    103 if result != tt.expected {
    104 t.Errorf("Test case %d failed. Input: %s, Expected: %d, Got: %d",
    105 i, tt.input, tt.expected, result)
    106 }
    107 }
    108}
    109
    110func TestClone(t *testing.T) {
    111 tests := []struct {
    112 input string
    113 expected string
    114 }{
    115 {"0x1", "1"},
    116 {"0x100", "256"},
    117 {"0x10000000000000000", "18446744073709551616"},
    118 }
    119
    120 for _, tt := range tests {
    121 z, _ := FromHex(tt.input)
    122 result := z.Clone()
    123 if result.String() != tt.expected {
    124 t.Errorf("Test %s failed. Expected %s, got %s", tt.input, tt.expected, result.String())
    125 }
    126 }
    127}
    128