github.com/matrixorigin/matrixone@v0.7.0/pkg/sql/plan/function/builtin/multi/format_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 multi 16 17 import ( 18 "testing" 19 20 "github.com/matrixorigin/matrixone/pkg/container/vector" 21 "github.com/matrixorigin/matrixone/pkg/testutil" 22 "github.com/stretchr/testify/require" 23 ) 24 25 func TestFormatWithTwo(t *testing.T) { 26 testCases := []arg{ 27 { 28 info: "Test01", proc: testutil.NewProc(), 29 vs: []*vector.Vector{ 30 testutil.MakeScalarVarchar("12332.123456", 1), 31 testutil.MakeScalarVarchar("4", 1), 32 }, 33 match: true, 34 err: false, 35 expect: testutil.MakeScalarVarchar("12,332.1235", 1), 36 }, 37 38 { 39 info: "Test02", proc: testutil.NewProc(), 40 vs: []*vector.Vector{ 41 testutil.MakeScalarVarchar("12332.1", 1), 42 testutil.MakeScalarVarchar("4", 1), 43 }, 44 match: true, 45 err: false, 46 expect: testutil.MakeScalarVarchar("12,332.1000", 1), 47 }, 48 49 { 50 info: "Test03", proc: testutil.NewProc(), 51 vs: []*vector.Vector{ 52 testutil.MakeScalarVarchar("12332.2", 1), 53 testutil.MakeScalarVarchar("0", 1), 54 }, 55 match: true, 56 err: false, 57 expect: testutil.MakeScalarVarchar("12,332", 1), 58 }, 59 60 { 61 info: "Test04", proc: testutil.NewProc(), 62 vs: []*vector.Vector{ 63 testutil.MakeScalarVarchar("-.12334.2", 1), 64 testutil.MakeScalarVarchar("2", 1), 65 }, 66 match: true, 67 err: false, 68 expect: testutil.MakeScalarVarchar("-0.12", 1), 69 }, 70 } 71 72 for _, tc := range testCases { 73 t.Run(tc.info, func(t *testing.T) { 74 gotV, err := Format(tc.vs, tc.proc) 75 if err != nil { 76 t.Fatal(err) 77 } 78 require.Equal(t, tc.expect.Col, gotV.Col) 79 }) 80 } 81 } 82 83 func TestFormatWithThree(t *testing.T) { 84 testCases := []arg{ 85 { 86 info: "Test01", proc: testutil.NewProc(), 87 vs: []*vector.Vector{ 88 testutil.MakeScalarVarchar("12332.123456", 1), 89 testutil.MakeScalarVarchar("4", 1), 90 testutil.MakeScalarVarchar("en_US", 1), 91 }, 92 match: true, 93 err: false, 94 expect: testutil.MakeScalarVarchar("12,332.1235", 1), 95 }, 96 97 { 98 info: "Test02", proc: testutil.NewProc(), 99 vs: []*vector.Vector{ 100 testutil.MakeScalarVarchar("12332.1", 1), 101 testutil.MakeScalarVarchar("4", 1), 102 testutil.MakeScalarVarchar("en_US", 1), 103 }, 104 match: true, 105 err: false, 106 expect: testutil.MakeScalarVarchar("12,332.1000", 1), 107 }, 108 109 { 110 info: "Test03", proc: testutil.NewProc(), 111 vs: []*vector.Vector{ 112 testutil.MakeScalarVarchar("12332.2", 1), 113 testutil.MakeScalarVarchar("0", 1), 114 testutil.MakeScalarVarchar("en_US", 1), 115 }, 116 match: true, 117 err: false, 118 expect: testutil.MakeScalarVarchar("12,332", 1), 119 }, 120 121 { 122 info: "Test04", proc: testutil.NewProc(), 123 vs: []*vector.Vector{ 124 testutil.MakeScalarVarchar("-.12334.2", 1), 125 testutil.MakeScalarVarchar("2", 1), 126 testutil.MakeScalarVarchar("en_US", 1), 127 }, 128 match: true, 129 err: false, 130 expect: testutil.MakeScalarVarchar("-0.12", 1), 131 }, 132 133 { 134 info: "Test05", proc: testutil.NewProc(), 135 vs: []*vector.Vector{ 136 testutil.MakeScalarVarchar("12332.123456", 1), 137 testutil.MakeScalarVarchar("4", 1), 138 testutil.MakeScalarVarchar("ar_SA", 1), 139 }, 140 match: true, 141 err: false, 142 expect: testutil.MakeScalarVarchar("12332.1235", 1), 143 }, 144 145 { 146 info: "Test06", proc: testutil.NewProc(), 147 vs: []*vector.Vector{ 148 testutil.MakeScalarVarchar("12332.1", 1), 149 testutil.MakeScalarVarchar("4", 1), 150 testutil.MakeScalarVarchar("ar_SA", 1), 151 }, 152 match: true, 153 err: false, 154 expect: testutil.MakeScalarVarchar("12332.1000", 1), 155 }, 156 157 { 158 info: "Test07", proc: testutil.NewProc(), 159 vs: []*vector.Vector{ 160 testutil.MakeScalarVarchar("12332.2", 1), 161 testutil.MakeScalarVarchar("0", 1), 162 testutil.MakeScalarVarchar("ar_SA", 1), 163 }, 164 match: true, 165 err: false, 166 expect: testutil.MakeScalarVarchar("12332", 1), 167 }, 168 169 { 170 info: "Test08", proc: testutil.NewProc(), 171 vs: []*vector.Vector{ 172 testutil.MakeScalarVarchar("-.12334.2", 1), 173 testutil.MakeScalarVarchar("2", 1), 174 testutil.MakeScalarVarchar("ar_SA", 1), 175 }, 176 match: true, 177 err: false, 178 expect: testutil.MakeScalarVarchar("-0.12", 1), 179 }, 180 181 { 182 info: "Test09", proc: testutil.NewProc(), 183 vs: []*vector.Vector{ 184 testutil.MakeScalarVarchar("12332.123456", 1), 185 testutil.MakeScalarVarchar("4", 1), 186 testutil.MakeScalarVarchar("be_BY", 1), 187 }, 188 match: true, 189 err: false, 190 expect: testutil.MakeScalarVarchar("12.332,1235", 1), 191 }, 192 193 { 194 info: "Test10", proc: testutil.NewProc(), 195 vs: []*vector.Vector{ 196 testutil.MakeScalarVarchar("12332.1", 1), 197 testutil.MakeScalarVarchar("4", 1), 198 testutil.MakeScalarVarchar("be_BY", 1), 199 }, 200 match: true, 201 err: false, 202 expect: testutil.MakeScalarVarchar("12.332,1000", 1), 203 }, 204 205 { 206 info: "Test11", proc: testutil.NewProc(), 207 vs: []*vector.Vector{ 208 testutil.MakeScalarVarchar("12332.2", 1), 209 testutil.MakeScalarVarchar("0", 1), 210 testutil.MakeScalarVarchar("be_BY", 1), 211 }, 212 match: true, 213 err: false, 214 expect: testutil.MakeScalarVarchar("12.332", 1), 215 }, 216 217 { 218 info: "Test12", proc: testutil.NewProc(), 219 vs: []*vector.Vector{ 220 testutil.MakeScalarVarchar("-.12334.2", 1), 221 testutil.MakeScalarVarchar("2", 1), 222 testutil.MakeScalarVarchar("be_BY", 1), 223 }, 224 match: true, 225 err: false, 226 expect: testutil.MakeScalarVarchar("-0,12", 1), 227 }, 228 229 { 230 info: "Test13", proc: testutil.NewProc(), 231 vs: []*vector.Vector{ 232 testutil.MakeScalarVarchar("12332.123456", 1), 233 testutil.MakeScalarVarchar("4", 1), 234 testutil.MakeScalarVarchar("bg_BG", 1), 235 }, 236 match: true, 237 err: false, 238 expect: testutil.MakeScalarVarchar("12 332,1235", 1), 239 }, 240 241 { 242 info: "Test14", proc: testutil.NewProc(), 243 vs: []*vector.Vector{ 244 testutil.MakeScalarVarchar("12332.1", 1), 245 testutil.MakeScalarVarchar("4", 1), 246 testutil.MakeScalarVarchar("bg_BG", 1), 247 }, 248 match: true, 249 err: false, 250 expect: testutil.MakeScalarVarchar("12 332,1000", 1), 251 }, 252 253 { 254 info: "Test15", proc: testutil.NewProc(), 255 vs: []*vector.Vector{ 256 testutil.MakeScalarVarchar("12332.2", 1), 257 testutil.MakeScalarVarchar("0", 1), 258 testutil.MakeScalarVarchar("bg_BG", 1), 259 }, 260 match: true, 261 err: false, 262 expect: testutil.MakeScalarVarchar("12 332", 1), 263 }, 264 265 { 266 info: "Test16", proc: testutil.NewProc(), 267 vs: []*vector.Vector{ 268 testutil.MakeScalarVarchar("-.12334.2", 1), 269 testutil.MakeScalarVarchar("2", 1), 270 testutil.MakeScalarVarchar("bg_BG", 1), 271 }, 272 match: true, 273 err: false, 274 expect: testutil.MakeScalarVarchar("-0,12", 1), 275 }, 276 277 { 278 info: "Test17", proc: testutil.NewProc(), 279 vs: []*vector.Vector{ 280 testutil.MakeScalarVarchar("12332.123456", 1), 281 testutil.MakeScalarVarchar("4", 1), 282 testutil.MakeScalarVarchar("de_CH", 1), 283 }, 284 match: true, 285 err: false, 286 expect: testutil.MakeScalarVarchar("12'332.1235", 1), 287 }, 288 289 { 290 info: "Test18", proc: testutil.NewProc(), 291 vs: []*vector.Vector{ 292 testutil.MakeScalarVarchar("12332.1", 1), 293 testutil.MakeScalarVarchar("4", 1), 294 testutil.MakeScalarVarchar("de_CH", 1), 295 }, 296 match: true, 297 err: false, 298 expect: testutil.MakeScalarVarchar("12'332.1000", 1), 299 }, 300 301 { 302 info: "Test19", proc: testutil.NewProc(), 303 vs: []*vector.Vector{ 304 testutil.MakeScalarVarchar("12332.2", 1), 305 testutil.MakeScalarVarchar("0", 1), 306 testutil.MakeScalarVarchar("de_CH", 1), 307 }, 308 match: true, 309 err: false, 310 expect: testutil.MakeScalarVarchar("12'332", 1), 311 }, 312 313 { 314 info: "Test20", proc: testutil.NewProc(), 315 vs: []*vector.Vector{ 316 testutil.MakeScalarVarchar("-.12334.2", 1), 317 testutil.MakeScalarVarchar("2", 1), 318 testutil.MakeScalarVarchar("de_CH", 1), 319 }, 320 match: true, 321 err: false, 322 expect: testutil.MakeScalarVarchar("-0.12", 1), 323 }, 324 { 325 info: "Test21", proc: testutil.NewProc(), 326 vs: []*vector.Vector{ 327 testutil.MakeScalarVarchar("12332.123456", 1), 328 testutil.MakeScalarVarchar("4", 1), 329 testutil.MakeScalarVarchar("xxxx", 1), 330 }, 331 match: true, 332 err: false, 333 expect: testutil.MakeScalarVarchar("12,332.1235", 1), 334 }, 335 336 { 337 info: "Test22", proc: testutil.NewProc(), 338 vs: []*vector.Vector{ 339 testutil.MakeScalarVarchar("12332.1", 1), 340 testutil.MakeScalarVarchar("4", 1), 341 testutil.MakeScalarVarchar("xxx", 1), 342 }, 343 match: true, 344 err: false, 345 expect: testutil.MakeScalarVarchar("12,332.1000", 1), 346 }, 347 } 348 349 for _, tc := range testCases { 350 t.Run(tc.info, func(t *testing.T) { 351 gotV, err := Format(tc.vs, tc.proc) 352 if err != nil { 353 t.Fatal(err) 354 } 355 require.Equal(t, tc.expect.Col, gotV.Col) 356 }) 357 } 358 }