pkg.re/essentialkaos/ek.10@v12.41.0+incompatible/mathutil/mathutil_test.go (about) 1 package mathutil 2 3 // ////////////////////////////////////////////////////////////////////////////////// // 4 // // 5 // Copyright (c) 2022 ESSENTIAL KAOS // 6 // Apache License, Version 2.0 <https://www.apache.org/licenses/LICENSE-2.0> // 7 // // 8 // ////////////////////////////////////////////////////////////////////////////////// // 9 10 import ( 11 "testing" 12 13 . "pkg.re/essentialkaos/check.v1" 14 ) 15 16 // ////////////////////////////////////////////////////////////////////////////////// // 17 18 func Test(t *testing.T) { TestingT(t) } 19 20 type MathUtilSuite struct{} 21 22 // ////////////////////////////////////////////////////////////////////////////////// // 23 24 var _ = Suite(&MathUtilSuite{}) 25 26 // ////////////////////////////////////////////////////////////////////////////////// // 27 28 func (s *MathUtilSuite) TestBetween(c *C) { 29 c.Assert(Between(5, 0, 100), Equals, 5) 30 c.Assert(Between(10, 0, 5), Equals, 5) 31 c.Assert(Between(-5, -10, 0), Equals, -5) 32 c.Assert(Between(5, 10, 10), Equals, 10) 33 34 c.Assert(Between8(5, 0, 100), Equals, int8(5)) 35 c.Assert(Between8(10, 0, 5), Equals, int8(5)) 36 c.Assert(Between8(-5, -10, 0), Equals, int8(-5)) 37 c.Assert(Between8(5, 10, 10), Equals, int8(10)) 38 39 c.Assert(Between16(5, 0, 100), Equals, int16(5)) 40 c.Assert(Between16(10, 0, 5), Equals, int16(5)) 41 c.Assert(Between16(-5, -10, 0), Equals, int16(-5)) 42 c.Assert(Between16(5, 10, 10), Equals, int16(10)) 43 44 c.Assert(Between32(5, 0, 100), Equals, int32(5)) 45 c.Assert(Between32(10, 0, 5), Equals, int32(5)) 46 c.Assert(Between32(-5, -10, 0), Equals, int32(-5)) 47 c.Assert(Between32(5, 10, 10), Equals, int32(10)) 48 49 c.Assert(Between64(5, 0, 100), Equals, int64(5)) 50 c.Assert(Between64(10, 0, 5), Equals, int64(5)) 51 c.Assert(Between64(-5, -10, 0), Equals, int64(-5)) 52 c.Assert(Between64(5, 10, 10), Equals, int64(10)) 53 54 c.Assert(BetweenU(5, 0, 100), Equals, uint(5)) 55 c.Assert(BetweenU(10, 0, 5), Equals, uint(5)) 56 c.Assert(BetweenU(5, 10, 10), Equals, uint(10)) 57 58 c.Assert(BetweenU8(5, 0, 100), Equals, uint8(5)) 59 c.Assert(BetweenU8(10, 0, 5), Equals, uint8(5)) 60 c.Assert(BetweenU8(5, 10, 10), Equals, uint8(10)) 61 62 c.Assert(BetweenU16(5, 0, 100), Equals, uint16(5)) 63 c.Assert(BetweenU16(10, 0, 5), Equals, uint16(5)) 64 c.Assert(BetweenU16(5, 10, 10), Equals, uint16(10)) 65 66 c.Assert(BetweenU32(5, 0, 100), Equals, uint32(5)) 67 c.Assert(BetweenU32(10, 0, 5), Equals, uint32(5)) 68 c.Assert(BetweenU32(5, 10, 10), Equals, uint32(10)) 69 70 c.Assert(BetweenU64(5, 0, 100), Equals, uint64(5)) 71 c.Assert(BetweenU64(10, 0, 5), Equals, uint64(5)) 72 c.Assert(BetweenU64(5, 10, 10), Equals, uint64(10)) 73 74 c.Assert(BetweenF(0.5, 0.1, 0.7), Equals, 0.5) 75 c.Assert(BetweenF(0.01, 0.1, 0.7), Equals, 0.1) 76 c.Assert(BetweenF(5.0, 0.1, 0.7), Equals, 0.7) 77 78 c.Assert(BetweenF32(0.5, 0.1, 0.7), Equals, float32(0.5)) 79 c.Assert(BetweenF32(0.01, 0.1, 0.7), Equals, float32(0.1)) 80 c.Assert(BetweenF32(5.0, 0.1, 0.7), Equals, float32(0.7)) 81 82 c.Assert(BetweenF64(0.5, 0.1, 0.7), Equals, float64(0.5)) 83 c.Assert(BetweenF64(0.01, 0.1, 0.7), Equals, float64(0.1)) 84 c.Assert(BetweenF64(5.0, 0.1, 0.7), Equals, float64(0.7)) 85 } 86 87 func (s *MathUtilSuite) TestMinMax(c *C) { 88 c.Assert(Min(1, 10), Equals, 1) 89 c.Assert(Min(-10, 10), Equals, -10) 90 c.Assert(Min(10, -10), Equals, -10) 91 c.Assert(Max(1, 10), Equals, 10) 92 c.Assert(Max(-10, 10), Equals, 10) 93 c.Assert(Max(10, -10), Equals, 10) 94 95 c.Assert(Min8(1, 10), Equals, int8(1)) 96 c.Assert(Min8(-10, 10), Equals, int8(-10)) 97 c.Assert(Min8(10, -10), Equals, int8(-10)) 98 c.Assert(Max8(1, 10), Equals, int8(10)) 99 c.Assert(Max8(-10, 10), Equals, int8(10)) 100 c.Assert(Max8(10, -10), Equals, int8(10)) 101 102 c.Assert(Min16(1, 10), Equals, int16(1)) 103 c.Assert(Min16(-10, 10), Equals, int16(-10)) 104 c.Assert(Min16(10, -10), Equals, int16(-10)) 105 c.Assert(Max16(1, 10), Equals, int16(10)) 106 c.Assert(Max16(-10, 10), Equals, int16(10)) 107 c.Assert(Max16(10, -10), Equals, int16(10)) 108 109 c.Assert(Min32(1, 10), Equals, int32(1)) 110 c.Assert(Min32(-10, 10), Equals, int32(-10)) 111 c.Assert(Min32(10, -10), Equals, int32(-10)) 112 c.Assert(Max32(1, 10), Equals, int32(10)) 113 c.Assert(Max32(-10, 10), Equals, int32(10)) 114 c.Assert(Max32(10, -10), Equals, int32(10)) 115 116 c.Assert(Min64(1, 10), Equals, int64(1)) 117 c.Assert(Min64(-10, 10), Equals, int64(-10)) 118 c.Assert(Min64(10, -10), Equals, int64(-10)) 119 c.Assert(Max64(1, 10), Equals, int64(10)) 120 c.Assert(Max64(-10, 10), Equals, int64(10)) 121 c.Assert(Max64(10, -10), Equals, int64(10)) 122 123 c.Assert(MinU(0, 10), Equals, uint(0)) 124 c.Assert(MinU(10, 0), Equals, uint(0)) 125 c.Assert(MaxU(0, 10), Equals, uint(10)) 126 c.Assert(MaxU(10, 0), Equals, uint(10)) 127 128 c.Assert(MinU8(0, 10), Equals, uint8(0)) 129 c.Assert(MinU8(10, 0), Equals, uint8(0)) 130 c.Assert(MaxU8(0, 10), Equals, uint8(10)) 131 c.Assert(MaxU8(10, 0), Equals, uint8(10)) 132 133 c.Assert(MinU16(0, 10), Equals, uint16(0)) 134 c.Assert(MinU16(10, 0), Equals, uint16(0)) 135 c.Assert(MaxU16(0, 10), Equals, uint16(10)) 136 c.Assert(MaxU16(10, 0), Equals, uint16(10)) 137 138 c.Assert(MinU32(0, 10), Equals, uint32(0)) 139 c.Assert(MinU32(10, 0), Equals, uint32(0)) 140 c.Assert(MaxU32(0, 10), Equals, uint32(10)) 141 c.Assert(MaxU32(10, 0), Equals, uint32(10)) 142 143 c.Assert(MinU64(0, 10), Equals, uint64(0)) 144 c.Assert(MinU64(10, 0), Equals, uint64(0)) 145 c.Assert(MaxU64(0, 10), Equals, uint64(10)) 146 c.Assert(MaxU64(10, 0), Equals, uint64(10)) 147 } 148 149 func (s *MathUtilSuite) TestAbs(c *C) { 150 c.Assert(Abs(-10), Equals, 10) 151 c.Assert(Abs(10), Equals, 10) 152 153 c.Assert(Abs8(-10), Equals, int8(10)) 154 c.Assert(Abs8(10), Equals, int8(10)) 155 156 c.Assert(Abs16(-10), Equals, int16(10)) 157 c.Assert(Abs16(10), Equals, int16(10)) 158 159 c.Assert(Abs32(-10), Equals, int32(10)) 160 c.Assert(Abs32(10), Equals, int32(10)) 161 162 c.Assert(Abs64(-10), Equals, int64(10)) 163 c.Assert(Abs64(10), Equals, int64(10)) 164 165 c.Assert(AbsF(-10), Equals, 10.0) 166 c.Assert(AbsF(10), Equals, 10.0) 167 168 c.Assert(AbsF32(-10), Equals, float32(10.0)) 169 c.Assert(AbsF32(10), Equals, float32(10.0)) 170 171 c.Assert(AbsF64(-10), Equals, float64(10.0)) 172 c.Assert(AbsF64(10), Equals, float64(10.0)) 173 } 174 175 func (s *MathUtilSuite) TestRound(c *C) { 176 c.Assert(Round(5.49, 0), Equals, 5.0) 177 c.Assert(Round(5.50, 0), Equals, 6.0) 178 c.Assert(Round(5.51, 0), Equals, 6.0) 179 }