From 554fd8c5195424bdbcabf5de30fdc183aba391bd Mon Sep 17 00:00:00 2001 From: upstream source tree Date: Sun, 15 Mar 2015 20:14:05 -0400 Subject: obtained gcc-4.6.4.tar.bz2 from upstream website; verified gcc-4.6.4.tar.bz2.sig; imported gcc-4.6.4 source tree from verified upstream tarball. downloading a git-generated archive based on the 'upstream' tag should provide you with a source tree that is binary identical to the one extracted from the above tarball. if you have obtained the source via the command 'git clone', however, do note that line-endings of files in your working directory might differ from line-endings of the respective files in the upstream repository. --- libgo/go/strconv/itoa_test.go | 174 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 174 insertions(+) create mode 100644 libgo/go/strconv/itoa_test.go (limited to 'libgo/go/strconv/itoa_test.go') diff --git a/libgo/go/strconv/itoa_test.go b/libgo/go/strconv/itoa_test.go new file mode 100644 index 000000000..8514b21e4 --- /dev/null +++ b/libgo/go/strconv/itoa_test.go @@ -0,0 +1,174 @@ +// Copyright 2009 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 strconv_test + +import ( + . "strconv" + "testing" +) + +type itob64Test struct { + in int64 + base uint + out string +} + +var itob64tests = []itob64Test{ + {0, 10, "0"}, + {1, 10, "1"}, + {-1, 10, "-1"}, + {12345678, 10, "12345678"}, + {-987654321, 10, "-987654321"}, + {1<<31 - 1, 10, "2147483647"}, + {-1<<31 + 1, 10, "-2147483647"}, + {1 << 31, 10, "2147483648"}, + {-1 << 31, 10, "-2147483648"}, + {1<<31 + 1, 10, "2147483649"}, + {-1<<31 - 1, 10, "-2147483649"}, + {1<<32 - 1, 10, "4294967295"}, + {-1<<32 + 1, 10, "-4294967295"}, + {1 << 32, 10, "4294967296"}, + {-1 << 32, 10, "-4294967296"}, + {1<<32 + 1, 10, "4294967297"}, + {-1<<32 - 1, 10, "-4294967297"}, + {1 << 50, 10, "1125899906842624"}, + {1<<63 - 1, 10, "9223372036854775807"}, + {-1<<63 + 1, 10, "-9223372036854775807"}, + {-1 << 63, 10, "-9223372036854775808"}, + + {0, 2, "0"}, + {10, 2, "1010"}, + {-1, 2, "-1"}, + {1 << 15, 2, "1000000000000000"}, + + {-8, 8, "-10"}, + {057635436545, 8, "57635436545"}, + {1 << 24, 8, "100000000"}, + + {16, 16, "10"}, + {-0x123456789abcdef, 16, "-123456789abcdef"}, + {1<<63 - 1, 16, "7fffffffffffffff"}, + {1<<63 - 1, 2, "111111111111111111111111111111111111111111111111111111111111111"}, + + {16, 17, "g"}, + {25, 25, "10"}, + {(((((17*35+24)*35+21)*35+34)*35+12)*35+24)*35 + 32, 35, "holycow"}, + {(((((17*36+24)*36+21)*36+34)*36+12)*36+24)*36 + 32, 36, "holycow"}, +} + +func TestItoa(t *testing.T) { + for _, test := range itob64tests { + s := Itob64(test.in, test.base) + if s != test.out { + t.Errorf("Itob64(%v, %v) = %v want %v", + test.in, test.base, s, test.out) + } + + if test.in >= 0 { + s := Uitob64(uint64(test.in), test.base) + if s != test.out { + t.Errorf("Uitob64(%v, %v) = %v want %v", + test.in, test.base, s, test.out) + } + } + + if int64(int(test.in)) == test.in { + s := Itob(int(test.in), test.base) + if s != test.out { + t.Errorf("Itob(%v, %v) = %v want %v", + test.in, test.base, s, test.out) + } + + if test.in >= 0 { + s := Uitob(uint(test.in), test.base) + if s != test.out { + t.Errorf("Uitob(%v, %v) = %v want %v", + test.in, test.base, s, test.out) + } + } + } + + if test.base == 10 { + s := Itoa64(test.in) + if s != test.out { + t.Errorf("Itoa64(%v) = %v want %v", + test.in, s, test.out) + } + + if test.in >= 0 { + s := Uitob64(uint64(test.in), test.base) + if s != test.out { + t.Errorf("Uitob64(%v, %v) = %v want %v", + test.in, test.base, s, test.out) + } + } + + if int64(int(test.in)) == test.in { + s := Itoa(int(test.in)) + if s != test.out { + t.Errorf("Itoa(%v) = %v want %v", + test.in, s, test.out) + } + + if test.in >= 0 { + s := Uitoa(uint(test.in)) + if s != test.out { + t.Errorf("Uitoa(%v) = %v want %v", + test.in, s, test.out) + } + } + } + } + } +} + +type uitob64Test struct { + in uint64 + base uint + out string +} + +var uitob64tests = []uitob64Test{ + {1<<63 - 1, 10, "9223372036854775807"}, + {1 << 63, 10, "9223372036854775808"}, + {1<<63 + 1, 10, "9223372036854775809"}, + {1<<64 - 2, 10, "18446744073709551614"}, + {1<<64 - 1, 10, "18446744073709551615"}, + {1<<64 - 1, 2, "1111111111111111111111111111111111111111111111111111111111111111"}, +} + +func TestUitoa(t *testing.T) { + for _, test := range uitob64tests { + s := Uitob64(test.in, test.base) + if s != test.out { + t.Errorf("Uitob64(%v, %v) = %v want %v", + test.in, test.base, s, test.out) + } + + if uint64(uint(test.in)) == test.in { + s := Uitob(uint(test.in), test.base) + if s != test.out { + t.Errorf("Uitob(%v, %v) = %v want %v", + test.in, test.base, s, test.out) + } + } + + if test.base == 10 { + s := Uitoa64(test.in) + if s != test.out { + t.Errorf("Uitoa64(%v) = %v want %v", + test.in, s, test.out) + } + + if uint64(uint(test.in)) == test.in { + s := Uitoa(uint(test.in)) + if s != test.out { + t.Errorf("Uitoa(%v) = %v want %v", + test.in, s, test.out) + } + } + } + } +} -- cgit v1.2.3