github.com/whtcorpsinc/MilevaDB-Prod@v0.0.0-20211104133533-f57f4be3b597/soliton/math/math_test.go (about) 1 // Copyright 2020 WHTCORPS INC, Inc. 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // See the License for the specific language governing permissions and 12 // limitations under the License. 13 14 package math 15 16 import ( 17 "math/rand" 18 "strconv" 19 "testing" 20 21 . "github.com/whtcorpsinc/check" 22 ) 23 24 func TestT(t *testing.T) { 25 TestingT(t) 26 } 27 28 var _ = Suite(&testMath{}) 29 30 type testMath struct{} 31 32 func (s *testMath) TestStrLenOfUint64Fast_RandomTestCases(c *C) { 33 for i := 0; i < 1000000; i++ { 34 num := rand.Uint64() 35 expected := len(strconv.FormatUint(num, 10)) 36 actual := StrLenOfUint64Fast(num) 37 c.Assert(actual, Equals, expected) 38 } 39 } 40 41 func (s *testMath) TestStrLenOfUint64Fast_ManualTestCases(c *C) { 42 nums := [22]uint64{0, 43 1, 12, 123, 1234, 12345, 44 123456, 1234567, 12345678, 123456789, 1234567890, 45 1234567891, 12345678912, 123456789123, 1234567891234, 12345678912345, 46 123456789123456, 1234567891234567, 12345678912345678, 123456789123456789, 47 123456789123457890, 48 ^uint64(0), 49 } 50 51 for _, num := range nums { 52 expected := len(strconv.FormatUint(num, 10)) 53 actual := StrLenOfUint64Fast(num) 54 c.Assert(actual, Equals, expected) 55 } 56 }