Skip to content Search Apps Documentation Source Content File Folder Download Copy Actions State String Boolean Number Struct Map Slice Pointer Function Closure Reference Nil Package Type Interface Unknown

Community realm. Read the code first. Community realm, deployed by its author. Read the code before you interact or send coins.

uint.gno

3.30 Kb · 115 lines
  1package expect
  2
  3import (
  4	"strconv"
  5
  6	"gno.land/p/nt/ufmt/v0"
  7)
  8
  9// NewUintChecker creates a new checker of uint64 values.
 10func NewUintChecker(ctx Context, value uint64) UintChecker {
 11	return UintChecker{ctx, value}
 12}
 13
 14// UintChecker asserts uint64 values.
 15type UintChecker struct {
 16	ctx   Context
 17	value uint64
 18}
 19
 20// Not negates the next called expectation.
 21func (c UintChecker) Not() UintChecker {
 22	c.ctx.negated = !c.ctx.negated
 23	return c
 24}
 25
 26// ToEqual asserts that current value is equal to an expected value.
 27func (c UintChecker) ToEqual(value uint64) {
 28	c.ctx.T().Helper()
 29	c.ctx.CheckExpectation(c.value == value, func(ctx Context) string {
 30		if !ctx.IsNegated() {
 31			got := formatUint(c.value)
 32			want := formatUint(value)
 33			return ufmt.Sprintf("Expected values to match\nGot: %s\nWant: %s", got, want)
 34		}
 35		return ufmt.Sprintf("Expected value to be different\nGot: %s", formatUint(c.value))
 36	})
 37}
 38
 39// ToBeGreaterThan asserts that current value is greater than an expected value.
 40func (c UintChecker) ToBeGreaterThan(value uint64) {
 41	c.ctx.T().Helper()
 42	c.ctx.CheckExpectation(c.value > value, func(ctx Context) string {
 43		got := formatUint(c.value)
 44		want := formatUint(value)
 45		if !ctx.IsNegated() {
 46			return ufmt.Sprintf("Expected values to be gerater than %s\nGot: %s", want, got)
 47		}
 48		return ufmt.Sprintf("Expected value to not to be greater than %s\nGot: %s", want, got)
 49	})
 50}
 51
 52// ToBeGreaterOrEqualThan asserts that current value is greater or equal than an expected value.
 53func (c UintChecker) ToBeGreaterOrEqualThan(value uint64) {
 54	c.ctx.T().Helper()
 55	c.ctx.CheckExpectation(c.value >= value, func(ctx Context) string {
 56		got := formatUint(c.value)
 57		want := formatUint(value)
 58		if !ctx.IsNegated() {
 59			return ufmt.Sprintf("Expected values to be greater or equal than %s\nGot: %s", want, got)
 60		}
 61		return ufmt.Sprintf("Expected value to not to be greater or equal than %s\nGot: %s", want, got)
 62	})
 63}
 64
 65// ToBeLowerThan asserts that current value is lower than an expected value.
 66func (c UintChecker) ToBeLowerThan(value uint64) {
 67	c.ctx.T().Helper()
 68	c.ctx.CheckExpectation(c.value < value, func(ctx Context) string {
 69		got := formatUint(c.value)
 70		want := formatUint(value)
 71		if !ctx.IsNegated() {
 72			return ufmt.Sprintf("Expected values to be lower than %s\nGot: %s", want, got)
 73		}
 74		return ufmt.Sprintf("Expected value to not to be lower than %s\nGot: %s", want, got)
 75	})
 76}
 77
 78// ToBeLowerOrEqualThan asserts that current value is lower or equal than an expected value.
 79func (c UintChecker) ToBeLowerOrEqualThan(value uint64) {
 80	c.ctx.T().Helper()
 81	c.ctx.CheckExpectation(c.value <= value, func(ctx Context) string {
 82		got := formatUint(c.value)
 83		want := formatUint(value)
 84		if !ctx.IsNegated() {
 85			return ufmt.Sprintf("Expected values to be lower or equal than %s\nGot: %s", want, got)
 86		}
 87		return ufmt.Sprintf("Expected value to not to be lower or equal than %s\nGot: %s", want, got)
 88	})
 89}
 90
 91func formatUint(value uint64) string {
 92	return strconv.FormatUint(value, 10)
 93}
 94
 95func asUint(value any) (uint64, error) {
 96	switch v := value.(type) {
 97	case uint:
 98		return uint64(v), nil
 99	case uint8:
100		return uint64(v), nil
101	case uint16:
102		return uint64(v), nil
103	case uint32:
104		return uint64(v), nil
105	case uint64:
106		return v, nil
107	case int:
108		if v < 0 {
109			return 0, ErrIncompatibleType
110		}
111		return uint64(v), nil
112	default:
113		return 0, ErrIncompatibleType
114	}
115}