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  }