github.com/matrixorigin/matrixone@v0.7.0/pkg/vectorize/abs/abs_test.go (about) 1 // Copyright 2022 Matrix Origin 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 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 package abs 16 17 import ( 18 "testing" 19 20 "github.com/stretchr/testify/require" 21 ) 22 23 func TestAbsUnsigned(t *testing.T) { 24 //Test values 25 nums := []uint8{1, 2, 3, 4, 5, 6, 7, 8, 9, 8, 7, 6, 5, 4, 3, 2, 1, 11, 2, 33, 22, 55, 44, 33, 22} 26 //Predefined Correct Values 27 absNums := []uint8{1, 2, 3, 4, 5, 6, 7, 8, 9, 8, 7, 6, 5, 4, 3, 2, 1, 11, 2, 33, 22, 55, 44, 33, 22} 28 29 //Init a new variable 30 newNums := make([]uint8, len(nums)) 31 //Run abs function 32 newNums = absUnsigned(nums, newNums) 33 34 for i := range newNums { 35 require.Equal(t, absNums[i], newNums[i]) 36 } 37 } 38 39 func TestAbsUint16(t *testing.T) { 40 //Test values 41 nums := []uint16{1, 2, 3, 4, 5, 6, 7, 8, 9, 8, 7, 6, 5, 4, 3, 2, 1, 11, 2, 33, 22, 55, 44, 33, 22} 42 //Predefined Correct Values 43 absNums := []uint16{1, 2, 3, 4, 5, 6, 7, 8, 9, 8, 7, 6, 5, 4, 3, 2, 1, 11, 2, 33, 22, 55, 44, 33, 22} 44 45 //Init a new variable 46 newNums := make([]uint16, len(nums)) 47 //Run abs function 48 newNums = absUnsigned(nums, newNums) 49 50 for i := range newNums { 51 require.Equal(t, absNums[i], newNums[i]) 52 } 53 } 54 55 func TestAbsUint32(t *testing.T) { 56 //Test values 57 nums := []uint32{1, 2, 3, 4, 5, 6, 7, 8, 9, 8, 7, 6, 5, 4, 3, 2, 1, 11, 2, 33, 22, 55, 44, 33, 22} 58 //Predefined Correct Values 59 absNums := []uint32{1, 2, 3, 4, 5, 6, 7, 8, 9, 8, 7, 6, 5, 4, 3, 2, 1, 11, 2, 33, 22, 55, 44, 33, 22} 60 61 //Init a new variable 62 newNums := make([]uint32, len(nums)) 63 //Run abs function 64 newNums = absUnsigned(nums, newNums) 65 66 for i := range newNums { 67 require.Equal(t, absNums[i], newNums[i]) 68 } 69 } 70 71 func TestAbsUint64(t *testing.T) { 72 //Test values 73 nums := []uint64{1, 2, 3, 4, 5, 6, 7, 8, 9, 8, 7, 6, 5, 4, 3, 2, 1, 11, 2, 33, 22, 55, 44, 33, 22} 74 //Predefined Correct Values 75 absNums := []uint64{1, 2, 3, 4, 5, 6, 7, 8, 9, 8, 7, 6, 5, 4, 3, 2, 1, 11, 2, 33, 22, 55, 44, 33, 22} 76 77 //Init a new variable 78 newNums := make([]uint64, len(nums)) 79 //Run abs function 80 newNums = absUnsigned(nums, newNums) 81 82 for i := range newNums { 83 require.Equal(t, absNums[i], newNums[i]) 84 } 85 } 86 87 func TestAbsInt8(t *testing.T) { 88 //Test values 89 nums := []int8{-11, 22, -33, 44, -55, -66, 77, -88, 99} 90 //Predefined Correct Values 91 absNums := []int8{11, 22, 33, 44, 55, 66, 77, 88, 99} 92 93 //Init a new variable 94 newNums := make([]int8, len(nums)) 95 //Run abs function 96 newNums = absSigned(nums, newNums) 97 98 for i := range newNums { 99 require.Equal(t, absNums[i], newNums[i]) 100 } 101 } 102 103 func TestAbsInt16(t *testing.T) { 104 //Test values 105 nums := []int16{-11, 22, -33, 44, -55, -66, 77, -88, 99} 106 //Predefined Correct Values 107 absNums := []int16{11, 22, 33, 44, 55, 66, 77, 88, 99} 108 109 //Init a new variable 110 newNums := make([]int16, len(nums)) 111 //Run abs function 112 newNums = absSigned(nums, newNums) 113 114 for i := range newNums { 115 require.Equal(t, absNums[i], newNums[i]) 116 } 117 } 118 119 func TestAbsInt32(t *testing.T) { 120 //Test values 121 nums := []int32{-111, 222, -333, 444, -555, 666, -777, 888, -99999} 122 //Predefined Correct Values 123 absNums := []int32{111, 222, 333, 444, 555, 666, 777, 888, 99999} 124 125 //Init a new variable 126 newNums := make([]int32, len(nums)) 127 //Run abs function 128 newNums = absSigned(nums, newNums) 129 130 for i := range newNums { 131 require.Equal(t, absNums[i], newNums[i]) 132 } 133 } 134 135 func TestAbsInt64(t *testing.T) { 136 //Test values 137 nums := []int64{-111, 222, -333, 444, -555, 666, -777, 888, -99999, -987654321} 138 //Predefined Correct Values 139 absNums := []int64{111, 222, 333, 444, 555, 666, 777, 888, 99999, 987654321} 140 141 //Init a new variable 142 newNums := make([]int64, len(nums)) 143 //Run abs function 144 newNums = absSigned(nums, newNums) 145 146 for i := range newNums { 147 require.Equal(t, absNums[i], newNums[i]) 148 } 149 } 150 151 func TestAbsFloat32(t *testing.T) { 152 //Test values 153 nums := []float32{1.5, -1.5, 2.5, -2.5, 1.2, 12.3, 123.4, 1234.5, 12345.6, 1234.567, -1.2, -12.3, -123.4, -1234.5, -12345.6} 154 //Predefined Correct Values 155 absNums := []float32{1.5, 1.5, 2.5, 2.5, 1.2, 12.3, 123.4, 1234.5, 12345.6, 1234.567, 1.2, 12.3, 123.4, 1234.5, 12345.6} 156 157 //Init a new variable 158 newNums := make([]float32, len(nums)) 159 //Run abs function 160 newNums = absSigned(nums, newNums) 161 162 for i := range newNums { 163 require.Equal(t, absNums[i], newNums[i]) 164 } 165 } 166 167 func TestAbsFloat64(t *testing.T) { 168 //Test values 169 nums := []float64{1.5, -1.5, 2.5, -2.5, 1.2, 12.3, 123.4, 1234.5, 12345.6, 1234.567, -1.2, -12.3, -123.4, -1234.5, -12345.6} 170 //Predefined Correct Values 171 absNums := []float64{1.5, 1.5, 2.5, 2.5, 1.2, 12.3, 123.4, 1234.5, 12345.6, 1234.567, 1.2, 12.3, 123.4, 1234.5, 12345.6} 172 173 //Init a new variable 174 newNums := make([]float64, len(nums)) 175 //Run abs function 176 newNums = absSigned(nums, newNums) 177 178 for i := range newNums { 179 require.Equal(t, absNums[i], newNums[i]) 180 } 181 }