summaryrefslogtreecommitdiffstats
path: root/src/internal/itoa/itoa_test.go
blob: 8bed8885323e2ba9913f274eb642a7346a2e1580 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
// Copyright 2021 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

package itoa_test

import (
	"fmt"
	"internal/itoa"
	"math"
	"testing"
)

var (
	minInt64  int64  = math.MinInt64
	maxInt64  int64  = math.MaxInt64
	maxUint64 uint64 = math.MaxUint64
)

func TestItoa(t *testing.T) {
	tests := []int{int(minInt64), math.MinInt32, -999, -100, -1, 0, 1, 100, 999, math.MaxInt32, int(maxInt64)}
	for _, tt := range tests {
		got := itoa.Itoa(tt)
		want := fmt.Sprint(tt)
		if want != got {
			t.Fatalf("Itoa(%d) = %s, want %s", tt, got, want)
		}
	}
}

func TestUitoa(t *testing.T) {
	tests := []uint{0, 1, 100, 999, math.MaxUint32, uint(maxUint64)}
	for _, tt := range tests {
		got := itoa.Uitoa(tt)
		want := fmt.Sprint(tt)
		if want != got {
			t.Fatalf("Uitoa(%d) = %s, want %s", tt, got, want)
		}
	}
}

func TestUitox(t *testing.T) {
	tests := []uint{0, 1, 15, 100, 999, math.MaxUint32, uint(maxUint64)}
	for _, tt := range tests {
		got := itoa.Uitox(tt)
		want := fmt.Sprintf("%#x", tt)
		if want != got {
			t.Fatalf("Uitox(%x) = %s, want %s", tt, got, want)
		}
	}
}