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/sunspirit/table/v0

Package
Open in gnoweb ↗

Overview

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

Files (3)

  • gnomod.tomltoml
  • table.gnogno
  • table_test.gnogno
table_test.gnogno
1package table23import (4	"testing"56	"gno.land/p/nt/uassert/v0"7	"gno.land/p/nt/urequire/v0"8)910func TestNew(t *testing.T) {11	header := []string{"Name", "Age", "Country"}12	rows := [][]string{13		{"Alice", "30", "USA"},14		{"Bob", "25", "UK"},15	}1617	table, err := New(header, rows)18	urequire.NoError(t, err)1920	uassert.Equal(t, len(header), len(table.header))21	uassert.Equal(t, len(rows), len(table.rows))22}2324func Test_AddRow(t *testing.T) {25	header := []string{"Name", "Age"}26	rows := [][]string{27		{"Alice", "30"},28		{"Bob", "25"},29	}3031	table, err := New(header, rows)32	urequire.NoError(t, err)3334	// Add a valid row35	err = table.AddRow([]string{"Charlie", "28"})36	urequire.NoError(t, err)3738	expectedRows := [][]string{39		{"Alice", "30"},40		{"Bob", "25"},41		{"Charlie", "28"},42	}43	uassert.Equal(t, len(expectedRows), len(table.rows))4445	// Attempt to add a row with a different number of columns46	err = table.AddRow([]string{"David"})47	uassert.Error(t, err)48}4950func Test_AddColumn(t *testing.T) {51	header := []string{"Name", "Age"}52	rows := [][]string{53		{"Alice", "30"},54		{"Bob", "25"},55	}5657	table, err := New(header, rows)58	urequire.NoError(t, err)5960	// Add a valid column61	err = table.AddColumn("Country", []string{"USA", "UK"})62	urequire.NoError(t, err)6364	expectedHeader := []string{"Name", "Age", "Country"}65	expectedRows := [][]string{66		{"Alice", "30", "USA"},67		{"Bob", "25", "UK"},68	}69	uassert.Equal(t, len(expectedHeader), len(table.header))70	uassert.Equal(t, len(expectedRows), len(table.rows))7172	// Attempt to add a column with a different number of values73	err = table.AddColumn("City", []string{"New York"})74	uassert.Error(t, err)75}7677func Test_RemoveRow(t *testing.T) {78	header := []string{"Name", "Age", "Country"}79	rows := [][]string{80		{"Alice", "30", "USA"},81		{"Bob", "25", "UK"},82	}8384	table, err := New(header, rows)85	urequire.NoError(t, err)8687	// Remove the first row88	err = table.RemoveRow(0)89	urequire.NoError(t, err)9091	expectedRows := [][]string{92		{"Bob", "25", "UK"},93	}94	uassert.Equal(t, len(expectedRows), len(table.rows))9596	// Attempt to remove a row out of range97	err = table.RemoveRow(5)98	uassert.Error(t, err)99}100101func Test_RemoveColumn(t *testing.T) {102	header := []string{"Name", "Age", "Country"}103	rows := [][]string{104		{"Alice", "30", "USA"},105		{"Bob", "25", "UK"},106	}107108	table, err := New(header, rows)109	urequire.NoError(t, err)110111	// Remove the second column (Age)112	err = table.RemoveColumn(1)113	urequire.NoError(t, err)114115	expectedHeader := []string{"Name", "Country"}116	expectedRows := [][]string{117		{"Alice", "USA"},118		{"Bob", "UK"},119	}120	uassert.Equal(t, len(expectedHeader), len(table.header))121	uassert.Equal(t, len(expectedRows), len(table.rows))122123	// Attempt to remove a column out of range124	err = table.RemoveColumn(5)125	uassert.Error(t, err)126}127128func Test_Validate(t *testing.T) {129	header := []string{"Name", "Age", "Country"}130	rows := [][]string{131		{"Alice", "30", "USA"},132		{"Bob", "25"},133	}134135	table, err := New(header, rows[:1])136	urequire.NoError(t, err)137138	// Validate should pass139	err = table.Validate()140	urequire.NoError(t, err)141142	// Add an invalid row and validate again143	table.rows = append(table.rows, rows[1])144	err = table.Validate()145	uassert.Error(t, err)146}147

Functions

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

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