github.com/insolar/vanilla@v0.0.0-20201023172447-248fdf805322/args/math_test.go (about) 1 // Copyright 2020 Insolar Network Ltd. 2 // All rights reserved. 3 // This material is licensed under the Insolar License version 1.0, 4 // available at https://github.com/insolar/assured-ledger/blob/master/LICENSE.md. 5 6 package args 7 8 import ( 9 "testing" 10 11 "github.com/stretchr/testify/require" 12 ) 13 14 func TestGCDListInt(t *testing.T) { 15 require.Equal(t, 20, GCDListInt(40, 100, 60)) 16 require.Equal(t, 20, GCDListInt(20, 100, 40, 60)) 17 require.Equal(t, 1, GCDListInt(5, 100, 40, 60, 3)) 18 } 19 20 func TestGCDListInt64(t *testing.T) { 21 require.Equal(t, 20, int(GCDListInt64(40, 100, 60))) 22 require.Equal(t, 20, int(GCDListInt64(20, 100, 40, 60))) 23 require.Equal(t, 1, int(GCDListInt64(5, 100, 40, 60, 3))) 24 } 25 26 func TestGCDListUint64(t *testing.T) { 27 require.Equal(t, 20, int(GCDListUint64(40, 100, 60))) 28 require.Equal(t, 20, int(GCDListUint64(20, 100, 40, 60))) 29 require.Equal(t, 1, int(GCDListUint64(5, 100, 40, 60, 3))) 30 } 31 32 func TestGreatestCommonDivisor(t *testing.T) { 33 require.Equal(t, 0, GreatestCommonDivisor(0, 0)) 34 require.Equal(t, 1, GreatestCommonDivisor(1, 0)) 35 require.Equal(t, 1, GreatestCommonDivisor(1, 1)) 36 require.Equal(t, 100, GreatestCommonDivisor(100, 100)) 37 require.Equal(t, 2, GreatestCommonDivisor(2, 100)) 38 require.Equal(t, 1, GreatestCommonDivisor(3, 100)) 39 require.Equal(t, 4, GreatestCommonDivisor(4, 100)) 40 require.Equal(t, 5, GreatestCommonDivisor(5, 100)) 41 require.Equal(t, 20, GreatestCommonDivisor(20, 100)) 42 require.Equal(t, 20, GreatestCommonDivisor(60, 100)) 43 require.Equal(t, 10, GreatestCommonDivisor(90, 100)) 44 } 45 46 func TestGreatestCommonDivisorInt64(t *testing.T) { 47 require.Equal(t, 0, int(GreatestCommonDivisorInt64(0, 0))) 48 require.Equal(t, 1, int(GreatestCommonDivisorInt64(1, 0))) 49 require.Equal(t, 1, int(GreatestCommonDivisorInt64(1, 1))) 50 require.Equal(t, 100, int(GreatestCommonDivisorInt64(100, 100))) 51 require.Equal(t, 2, int(GreatestCommonDivisorInt64(2, 100))) 52 require.Equal(t, 1, int(GreatestCommonDivisorInt64(3, 100))) 53 require.Equal(t, 4, int(GreatestCommonDivisorInt64(4, 100))) 54 require.Equal(t, 5, int(GreatestCommonDivisorInt64(5, 100))) 55 require.Equal(t, 20, int(GreatestCommonDivisorInt64(20, 100))) 56 require.Equal(t, 20, int(GreatestCommonDivisorInt64(60, 100))) 57 require.Equal(t, 10, int(GreatestCommonDivisorInt64(90, 100))) 58 } 59 60 func TestGreatestCommonDivisorUint64(t *testing.T) { 61 require.Equal(t, 0, int(GreatestCommonDivisorUint64(0, 0))) 62 require.Equal(t, 1, int(GreatestCommonDivisorUint64(1, 0))) 63 require.Equal(t, 1, int(GreatestCommonDivisorUint64(1, 1))) 64 require.Equal(t, 100, int(GreatestCommonDivisorUint64(100, 100))) 65 require.Equal(t, 2, int(GreatestCommonDivisorUint64(2, 100))) 66 require.Equal(t, 1, int(GreatestCommonDivisorUint64(3, 100))) 67 require.Equal(t, 4, int(GreatestCommonDivisorUint64(4, 100))) 68 require.Equal(t, 5, int(GreatestCommonDivisorUint64(5, 100))) 69 require.Equal(t, 20, int(GreatestCommonDivisorUint64(20, 100))) 70 require.Equal(t, 20, int(GreatestCommonDivisorUint64(60, 100))) 71 require.Equal(t, 10, int(GreatestCommonDivisorUint64(90, 100))) 72 } 73 74 func TestIsPowerOfTwo(t *testing.T) { 75 require.True(t, IsPowerOfTwo(0)) 76 require.True(t, IsPowerOfTwo(1)) 77 require.True(t, IsPowerOfTwo(2)) 78 require.True(t, IsPowerOfTwo(4)) 79 require.True(t, IsPowerOfTwo(1024)) 80 require.False(t, IsPowerOfTwo(3)) 81 require.False(t, IsPowerOfTwo(5)) 82 require.False(t, IsPowerOfTwo(1023)) 83 require.False(t, IsPowerOfTwo(1025)) 84 } 85 86 func TestCeilingPowerOfTwo(t *testing.T) { 87 require.Equal(t, uint(0), CeilingPowerOfTwo(0)) 88 require.Equal(t, uint(1), CeilingPowerOfTwo(1)) 89 require.Equal(t, uint(2), CeilingPowerOfTwo(2)) 90 require.Equal(t, uint(4), CeilingPowerOfTwo(4)) 91 require.Equal(t, uint(8), CeilingPowerOfTwo(8)) 92 require.Equal(t, uint(8), CeilingPowerOfTwo(5)) 93 require.Equal(t, uint(8), CeilingPowerOfTwo(6)) 94 require.Equal(t, uint(8), CeilingPowerOfTwo(7)) 95 }