1/* 2 * Copyright (c) 2025 Huawei Device Co., Ltd. 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 */ 15import * as UnionTest1 from "test_union"; 16import * as UnionTest from "union_ani"; 17import {BusinessError} from "@ohos.base"; 18 19loadLibrary("ani_union"); 20 21function test_printMyUnion_with_undefined() { 22 let res = UnionTest.printMyUnion(undefined); 23 assertEQ(res, "u") 24} 25 26function test_printMyUnion_with_string() { 27 let res = UnionTest.printMyUnion("name"); 28 assertEQ(res, "s") 29} 30 31function test_printMyUnion_with_number() { 32 let res = UnionTest.printMyUnion(123.456 as float); 33 assertEQ(res, "f") 34} 35 36function test_printMyUnion_with_pair() { 37 let pair: UnionTest.Pair = {a: "a", b: "b"}; 38 let res = UnionTest.printMyUnion(pair); 39 assertEQ(res, "p") 40} 41 42function test_makeMyUnion_string() { 43 const result = UnionTest.makeMyUnion("s"); 44 assertEQ(result, "string"); 45} 46 47function test_makeMyUnion_number() { 48 const result = UnionTest.makeMyUnion("f"); 49 assertEQ(result, 123); 50} 51 52function test_makeMyUnion_pair() { 53 const result = UnionTest.makeMyUnion("p"); 54 if (result instanceof UnionTest.Pair) { 55 assertEQ(result.a, "a"); 56 assertEQ(result.b, "b"); 57 } else { 58 throw new Error("Result type error"); 59 } 60} 61 62function test_makeMyUnion_undefined() { 63 const result = UnionTest.makeMyUnion("u"); 64 assertEQ(result, undefined); 65} 66 67function test_primitives() { 68 let res: String; 69 70 res = UnionTest1.printUnion("name") 71 console.log(res) 72 73 res = UnionTest1.printUnion(1 as byte) 74 console.log(res) 75 76 res = UnionTest1.printUnion(123 as short) 77 console.log(res) 78 79 res = UnionTest1.printUnion(123456 as int) 80 console.log(res) 81 82 res = UnionTest1.printUnion(1.23 as float) 83 console.log(res) 84 85 res = UnionTest1.printUnion(1.2345 as double) 86 console.log(res) 87 88 res = UnionTest1.printUnion(true) 89 console.log(res) 90 res = UnionTest1.printUnion(false) 91 console.log(res) 92} 93 94// 定义 10 个测试函数 95function test_interface_Union_primitives1() { 96 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 97 instance.funcUnionPrimitive("Hello" as String, true); 98} 99 100function test_interface_Union_primitives2() { 101 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 102 instance.funcUnionPrimitive("World" as String, 42 as byte); 103} 104 105function test_interface_Union_primitives3() { 106 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 107 instance.funcUnionPrimitive(1 as byte, 12 as short); 108} 109 110function test_interface_Union_primitives4() { 111 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 112 instance.funcUnionPrimitive(12 as short, 123 as int); 113} 114 115function test_interface_Union_primitives5() { 116 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 117 instance.funcUnionPrimitive(123 as int, 1.23 as float); 118} 119 120function test_interface_Union_primitives6() { 121 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 122 instance.funcUnionPrimitive(1.23 as float, 1.2345 as double); 123} 124 125function test_interface_Union_primitives7() { 126 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 127 instance.funcUnionPrimitive(true, 42 as byte); 128} 129 130function test_interface_Union_primitives8() { 131 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 132 instance.funcUnionPrimitive(false, 123 as short); 133} 134 135function test_interface_Union_primitives9() { 136 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 137 instance.funcUnionPrimitive("Test" as String, 3.14 as float); 138} 139 140function test_interface_Union_primitives10() { 141 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 142 instance.funcUnionPrimitive(12345 as int, 2.71828 as double); 143} 144 145function test_interface_Union_10param_primitives1() { 146 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 147 instance.funcUnionPrimitive5Param( 148 12345 as int, 2.71828 as double, 12 as short, 1 as byte, "hello"); 149} 150 151function test_interface_Union_10param_primitives2() { 152 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 153 instance.funcUnionPrimitive5Param( 154 42 as int, 3.14 as double, 100 as short, 2 as byte, "world"); 155} 156 157function test_interface_Union_10param_primitives3() { 158 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 159 instance.funcUnionPrimitive5Param( 160 9876 as int, 1.414 as double, 50 as short, 3 as byte, "test"); 161} 162 163function test_interface_Union_10param_primitives4() { 164 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 165 instance.funcUnionPrimitive5Param( 166 123 as int, 0.577 as double, 200 as short, 4 as byte, "example"); 167} 168 169function test_interface_Union_10param_primitives5() { 170 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 171 instance.funcUnionPrimitive5Param( 172 4567 as int, 1.618 as double, 150 as short, 5 as byte, "demo"); 173} 174function test_interface_Union_10param_primitives6() { 175 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 176 instance.funcUnionPrimitive5Param( 177 1000 as int, 2.5 as double, 10 as short, 6 as byte, "alpha"); 178} 179 180function test_interface_Union_10param_primitives7() { 181 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 182 instance.funcUnionPrimitive5Param( 183 2000 as int, 3.0 as double, 20 as short, 7 as byte, "beta"); 184} 185 186function test_interface_Union_10param_primitives8() { 187 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 188 instance.funcUnionPrimitive5Param( 189 3000 as int, 1.5 as double, 30 as short, 8 as byte, "gamma"); 190} 191 192function test_interface_Union_10param_primitives9() { 193 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 194 instance.funcUnionPrimitive5Param( 195 4000 as int, 0.5 as double, 40 as short, 9 as byte, "delta"); 196} 197 198function test_interface_Union_10param_primitives10() { 199 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 200 instance.funcUnionPrimitive5Param( 201 5000 as int, 1.0 as double, 50 as short, 10 as byte, "epsilon"); 202} 203 204 205 206function test_interface_Union_enum_map() { 207 const studentScores: Record<String, byte> = { 208 "math": 90 as byte, 209 "english": 85 as byte, 210 "science": 95 as byte, 211 }; 212 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 213 214 ////enum 215 let color = UnionTest1.Color.RED; 216 instance.funcColorMapValue1(color) 217 218 instance.funcColorMapValue1(studentScores) 219} 220function test_interface_Union_enum_map1() { 221 const studentScores: Record<String, short> = { 222 "math": 90 as short, 223 "english": 85 as short, 224 "science": 95 as short, 225 }; 226 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 227 228 ////enum 229 let color = UnionTest1.Color.RED; 230 instance.funcColorMapValue2(color) 231 232 instance.funcColorMapValue2(studentScores) 233} 234 235function test_interface_Union_enum_map2() { 236 const studentScores: Record<String, int> = { 237 "math": 90 as int, 238 "english": 85 as int, 239 "science": 95 as int 240 }; 241 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 242 instance.funcColorMapValue3(studentScores); 243} 244 245 246function test_interface_Union_enum_map3() { 247 const studentScores: 248 Record<String, long> = {"math": 90 as long, "english": 85 as long}; 249 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 250 instance.funcColorMapValue4(studentScores); 251} 252 253function test_interface_Union_enum_map4() { 254 let studentScores: Record<String, float> = { 255 "math": 123.45 as float, 256 "english": 57.89 as float 257 }; 258 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 259 instance.funcColorMapValue5(studentScores); 260} 261 262function test_interface_Union_enum_map5() { 263 const studentScores: Record<String, double> = { 264 "math": 90.5 as double, 265 "english": 85.3 as double 266 }; 267 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 268 instance.funcColorMapValue6(studentScores); 269} 270 271function test_interface_Union_enum_map6() { 272 const studentPassed: 273 Record<String, boolean> = {"math": true, "english": false}; 274 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 275 instance.funcColorMapValue7(studentPassed); 276} 277 278function test_interface_Union_enum_map7() { 279 const studentNames: 280 Record<String, String> = {"math": "Algebra", "english": "Literature"}; 281 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 282 instance.funcColorMapValue8(studentNames); 283} 284 285function test_interface_Union_enum_map8() { 286 const scores: Record<int, int> = {100: 90 as int, 200: 85 as int}; 287 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 288 instance.funcColorMapValue9(scores); 289} 290 291 292function test_interface_Union_enum_map9() { 293 const scores: Record<int, int> = {100: 90 as int, 200: 85 as int}; 294 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 295 instance.funcColorMapValue10(scores, scores); 296} 297 298 299function test_interface_Union_array_map() { 300 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 301 let arri8: byte[] = [1, 2, 3, 4]; 302 const studentScores: Record<String, byte> = { 303 "math": 90 as byte, 304 "english": 85 as byte, 305 "science": 95 as byte, 306 }; 307 console.log(instance.funcUnionArrayMap1(arri8, studentScores)) 308} 309function test_interface_Union_array_map1() { 310 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 311 let arri8: byte[] = [1, 2, 3, 4]; 312 const studentScores: Record<String, short> = { 313 "math": 90 as short, 314 "english": 85 as short, 315 "science": 95 as short, 316 }; 317 console.log(instance.funcUnionArrayMap2(arri8, studentScores)) 318} 319function test_interface_Union_array_map2() { 320 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 321 const studentScores: Record<String, int> = { 322 "math": 90 as int, 323 "english": 85 as int, 324 "science": 95 as int 325 }; 326 let arri8: byte[] = [1, 2, 3, 4] 327 console.log(instance.funcUnionArrayMap3(arri8, studentScores)) 328} 329function test_interface_Union_array_map3() { 330 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 331 const studentScores: 332 Record<String, long> = {"math": 90 as long, "english": 85 as long}; 333 let arri8: byte[] = [1, 2, 3, 4] 334 console.log(instance.funcUnionArrayMap4(arri8, studentScores)) 335} 336function test_interface_Union_array_map4() { 337 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 338 let studentScores: Record<String, float> = { 339 "math": 123.45 as float, 340 "english": 57.89 as float 341 }; 342 let arri8: byte[] = [1, 2, 3, 4] 343 console.log(instance.funcUnionArrayMap5(arri8, studentScores)) 344} 345function test_interface_Union_array_map5() { 346 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 347 const studentScores: Record<String, double> = { 348 "math": 90.5 as double, 349 "english": 85.3 as double 350 }; 351 let arri8: byte[] = [1, 2, 3, 4] 352 console.log(instance.funcUnionArrayMap6(arri8, studentScores)) 353} 354function test_interface_Union_array_map6() { 355 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 356 const studentPassed: 357 Record<String, boolean> = {"math": true, "english": false}; 358 let arri8: byte[] = [1, 2, 3, 4] 359 console.log(instance.funcUnionArrayMap7(arri8, studentPassed)) 360} 361function test_interface_Union_array_map7() { 362 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 363 const studentNames: 364 Record<String, String> = {"math": "Algebra", "english": "Literature"}; 365 let arri8: byte[] = [1, 2, 3, 4] 366 console.log(instance.funcUnionArrayMap8(arri8, studentNames)) 367} 368function test_interface_Union_array_map8() { 369 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 370 const studentNames: Record<int, int> = { 371 1: 99, 372 2: 100, 373 }; 374 let arri8: byte[] = [1, 2, 3, 4] 375 console.log(instance.funcUnionArrayMap9(arri8, studentNames)) 376} 377function test_interface_Union_array_map9() { 378 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 379 const studentScores1: Record<String, byte> = { 380 "math": 90 as byte, 381 "english": 85 as byte, 382 "science": 95 as byte, 383 }; 384 const studentScores2: Record<String, short> = { 385 "math": 90 as short, 386 "english": 85 as short, 387 "science": 95 as short, 388 }; 389 let arri8: byte[] = [1, 2, 3, 4] 390 console.log(instance.funcUnionArrayMap10(arri8, arri8)) 391 console.log(instance.funcUnionArrayMap10(arri8, studentScores2)) 392 console.log(instance.funcUnionArrayMap10(studentScores1, arri8)) 393 console.log(instance.funcUnionArrayMap10(studentScores1, studentScores2)) 394} 395 396 397function test_union_mix() { 398 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 399 let arri8: byte[] = [1, 2, 3, 4]; 400 let color = UnionTest1.Color.RED; 401 402 console.log(instance.funcUnionMix(arri8, "hello", color, 1 as byte, true)) 403} 404function test_union_mix_10param1() { 405 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 406 let arri8: byte[] = [1, 2, 3, 4]; 407 let color = UnionTest1.Color.RED; 408 409 console.log(instance.funcUnionMix10Param( 410 arri8, "hello", color, 1 as byte, true, 5000 as int, 1.0 as double, 411 50 as short, 10 as byte, "epsilon")); 412} 413 414function test_union_mix_10param2() { 415 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 416 let arri8: byte[] = [1, 2, 3, 4]; 417 let color = UnionTest1.Color.RED; 418 419 console.log(instance.funcUnionMix10Param( 420 "hello", arri8, 1 as byte, color, true, 1.0 as double, 5000 as int, 421 50 as short, 10 as byte, "epsilon")); 422} 423 424function test_union_mix_10param3() { 425 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 426 let arri8: byte[] = [1, 2, 3, 4]; 427 let color = UnionTest1.Color.RED; 428 429 console.log(instance.funcUnionMix10Param( 430 color, true, arri8, 1 as byte, "hello", 50 as short, 5000 as int, 431 1.0 as double, 10 as byte, "epsilon")); 432} 433 434function test_union_mix_10param4() { 435 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 436 let arri8: byte[] = [1, 2, 3, 4]; 437 let color = UnionTest1.Color.RED; 438 439 console.log(instance.funcUnionMix10Param( 440 true, 1.0 as double, 5000 as int, 50 as short, 10 as byte, "epsilon", 441 arri8, "hello", color, 1 as byte)); 442} 443 444function test_union_mix_10param5() { 445 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 446 let arri8: byte[] = [1, 2, 3, 4]; 447 let color = UnionTest1.Color.RED; 448 449 console.log(instance.funcUnionMix10Param( 450 5000 as int, 1.0 as double, 50 as short, 10 as byte, "epsilon", arri8, 451 "hello", color, 1 as byte, true)); 452} 453 454// 2个组合primitive 455function test_2_primitive1() { 456 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 457 instance.funcUnionPrimitiveReturn("s"); 458 instance.funcUnionPrimitiveReturn("i8"); 459} 460 461function test_2_primitive2() { 462 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 463 instance.funcUnionPrimitiveReturn1("i8"); 464 instance.funcUnionPrimitiveReturn1("i16"); 465} 466 467function test_2_primitive3() { 468 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 469 instance.funcUnionPrimitiveReturn2("i8_1"); 470 instance.funcUnionPrimitiveReturn2("i8_2"); 471} 472 473function test_2_primitive4() { 474 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 475 instance.funcUnionPrimitiveReturn3("i16"); 476 instance.funcUnionPrimitiveReturn3("i32"); 477} 478 479function test_2_primitive5() { 480 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 481 instance.funcUnionPrimitiveReturn4("i32"); 482 instance.funcUnionPrimitiveReturn4("f32"); 483} 484 485function test_2_primitive6() { 486 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 487 instance.funcUnionPrimitiveReturn5("f32"); 488 instance.funcUnionPrimitiveReturn5("f64"); 489} 490 491function test_2_primitive7() { 492 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 493 instance.funcUnionPrimitiveReturn6("s"); 494 instance.funcUnionPrimitiveReturn6("b"); 495} 496 497function test_2_primitive8() { 498 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 499 instance.funcUnionPrimitiveReturn7("b"); 500 instance.funcUnionPrimitiveReturn7("i8"); 501} 502 503function test_2_primitive9() { 504 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 505 506 instance.funcUnionPrimitiveReturn8("b"); 507 instance.funcUnionPrimitiveReturn8("b1"); 508} 509 510function test_2_primitive10() { 511 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 512 instance.funcUnionPrimitiveReturn9("s"); 513 instance.funcUnionPrimitiveReturn9("s1"); 514} 515 516// 5组合所有类型return 517 518function test_mix5_return1() { 519 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 520 instance.funcUnionMix5Return("s"); 521} 522function test_mix5_return2() { 523 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 524 instance.funcUnionMix5Return("i8"); 525} 526function test_mix5_return3() { 527 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 528 instance.funcUnionMix5Return("b"); 529} 530function test_mix5_return4() { 531 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 532 instance.funcUnionMix5Return("c"); 533} 534function test_mix5_return5() { 535 let instance: UnionTest1.MyInterface = UnionTest1.getInterface(); 536 instance.funcUnionMix5Return("arr"); 537} 538 539 540function test_union_with_makeAndShowBasicUnion(){ 541 // i8 542 let i8Result = UnionTest.makeAndShowBasicUnion(1 as byte); 543 console.log("BasicUnion i8Result: ", i8Result); 544 // i16 545 let i16Result = UnionTest.makeAndShowBasicUnion(123 as short); 546 console.log("BasicUnion i16Result: ", i16Result); 547 // i32 548 let i32Result = UnionTest.makeAndShowBasicUnion(123456 as int); 549 console.log("BasicUnion i32Result: ", i32Result); 550 // i64 551 let i64Result = UnionTest.makeAndShowBasicUnion(123456789 as long); 552 console.log("BasicUnion i64Result: ", i64Result); 553 //float32 554 let float32Result = UnionTest.makeAndShowBasicUnion(1.23 as float); 555 console.log("BasicUnion float32Result: ", float32Result); 556 //float64 557 let float64Result = UnionTest.makeAndShowBasicUnion(1.2345 as double); 558 console.log("BasicUnion float64Result: ", float64Result); 559 //string 560 let stringResult = UnionTest.makeAndShowBasicUnion("this is string data"); 561 console.log("BasicUnion stringResult: ", stringResult); 562 //bool true 563 let boolResult = UnionTest.makeAndShowBasicUnion(true); 564 console.log("BasicUnion boolResult: ", boolResult); 565 //bool true 566 let boolResult1 = UnionTest.makeAndShowBasicUnion(false); 567 console.log("BasicUnion boolResult1: ", boolResult1); 568 // null 569 let nullResult = UnionTest.makeAndShowBasicUnion(null); 570 console.log("BasicUnion nullResult: ", nullResult); 571} 572 573function test_union_with_makeAndShowTypedArrayUnion(){ 574 //u8 575 let u8Arr: Uint8Array = new Uint8Array([1, 2, 3]); 576 let u8ArrResult = UnionTest.makeAndShowTypedArrayUnion(u8Arr) as Uint8Array; 577 assertEQ(u8ArrResult.toString(), u8Arr.toString()); 578 //i8 579 let i8Arr: Int8Array = new Int8Array([-1, -2, -3]); 580 let i8ArrResult = UnionTest.makeAndShowTypedArrayUnion(i8Arr) as Int8Array; 581 assertEQ(i8ArrResult.toString(), i8Arr.toString()); 582 //u16 583 let u16Arr: Uint16Array = new Uint16Array([10, 20, 30]); 584 let u16ArrResult = UnionTest.makeAndShowTypedArrayUnion(u16Arr) as Uint16Array; 585 assertEQ(u16ArrResult.toString(), u16Arr.toString()); 586 //i16 587 let i16Arr: Int16Array = new Int16Array([-10, -20, -30]); 588 let i16ArrResult = UnionTest.makeAndShowTypedArrayUnion(i16Arr) as Int16Array; 589 assertEQ(i16ArrResult.toString(), i16Arr.toString()); 590 //u32 591 let u32Arr: Uint32Array = new Uint32Array([100, 200, 300]); 592 let u32ArrResult = UnionTest.makeAndShowTypedArrayUnion(u32Arr) as Uint32Array; 593 assertEQ(u32ArrResult.toString(), u32Arr.toString()); 594 //i32 595 let i32Arr: Int32Array = new Int32Array([-100, -200, -300]); 596 let i32ArrResult = UnionTest.makeAndShowTypedArrayUnion(i32Arr) as Int32Array; 597 assertEQ(i32ArrResult.toString(), i32Arr.toString()); 598 //u64 599 let u64Arr: BigUint64Array = new BigUint64Array([1000n, 2000n, 3000n]); 600 let u64ArrResult = UnionTest.makeAndShowTypedArrayUnion(u64Arr) as BigUint64Array; 601 assertEQ(u64ArrResult.toString(), u64Arr.toString()); 602 //i64 603 let i64Arr: BigInt64Array = new BigInt64Array([-1000n, -2000n, -3000n]); 604 let i64ArrResult = UnionTest.makeAndShowTypedArrayUnion(i64Arr) as BigInt64Array; 605 assertEQ(i64ArrResult.toString(), i64Arr.toString()); 606 //f32 607 let f32Arr: Float32Array = new Float32Array([1.23, -2.14, 3.16]); 608 let f32ArrResult = UnionTest.makeAndShowTypedArrayUnion(f32Arr) as Float32Array; 609 assertEQ(f32ArrResult.toString(), f32Arr.toString()); 610 //f64 611 let f64Arr: Float64Array = new Float64Array([1.234567, -2.145789, 3.161862]); 612 let f64ArrResult = UnionTest.makeAndShowTypedArrayUnion(f64Arr) as Float64Array; 613 assertEQ(f64ArrResult.toString(), f64Arr.toString()); 614 //null 615 let nullResult = UnionTest.makeAndShowTypedArrayUnion(null); 616 assertEQ(nullResult, null); 617} 618 619function test_union_with_makeAndShowArrayUnion(){ 620 //Array<f32> Array<f64> 621 let arrStruct: UnionTest.ArrayStruct = {float32Array: [1.23f, -2.14f, 3.16f], float64Array: [1.234567, -2.145789, 3.161862]}; 622 let arrResult: UnionTest.ArrayUnion = UnionTest.makeAndShowArrayUnion(arrStruct); 623 console.log("ArrayUnion arrResult a: ", (arrResult as UnionTest.ArrayStruct)!.float32Array); 624 console.log("ArrayUnion arrResult b: ", (arrResult as UnionTest.ArrayStruct)!.float64Array); 625 626 //null 627 let nullResult = UnionTest.makeAndShowArrayUnion(null); 628 console.log("ArrayUnion nullResult: ", nullResult); 629} 630 631function test_union_with_makeAndShowStructUnion(){ 632 //StrStruct 633 let strStruct: UnionTest.StrStruct= {a: "StrStruct a", b: "StrStruct b"}; 634 let strResult: UnionTest.StructUnion = UnionTest.makeAndShowStructUnion(strStruct); 635 console.log("StructUnion strResult a: ", (strResult as UnionTest.StrStruct)!.a); 636 console.log("StructUnion strResult b: ", (strResult as UnionTest.StrStruct)!.b); 637 638 //IntStruct 639 let intStruct: UnionTest.IntStruct= {a: 1, b: 2 }; 640 let intResult: UnionTest.StructUnion = UnionTest.makeAndShowStructUnion(intStruct); 641 console.log("StructUnion intResult a: ", (intResult as UnionTest.IntStruct)!.a); 642 console.log("StructUnion intResult b: ", (intResult as UnionTest.IntStruct)!.b); 643 644 //null 645 let nullResult = UnionTest.makeAndShowStructUnion(null); 646 console.log("StructUnion nullResult: ", nullResult); 647} 648 649function main() { 650 console.log("##############start#############"); 651 const suite = new ArkTestsuite("UnionTest Tests"); 652 653 suite.addTest("test printMyUnion with undefined", test_printMyUnion_with_undefined); 654 suite.addTest("test printMyUnion with string", test_printMyUnion_with_string); 655 suite.addTest("test printMyUnion with number", test_printMyUnion_with_number); 656 suite.addTest("test printMyUnion with pair", test_printMyUnion_with_pair); 657 suite.addTest("test makeMyUnion string", test_makeMyUnion_string); 658 suite.addTest("test makeMyUnion number", test_makeMyUnion_number); 659 suite.addTest("test makeMyUnion pair", test_makeMyUnion_pair); 660 suite.addTest("test makeMyUnion undefined", test_makeMyUnion_undefined); 661 662 suite.addTest("test_interface_Union_primitives1", test_interface_Union_primitives1); 663 suite.addTest("test_interface_Union_primitives2", test_interface_Union_primitives2); 664 suite.addTest("test_interface_Union_primitives3", test_interface_Union_primitives3); 665 suite.addTest("test_interface_Union_primitives4", test_interface_Union_primitives4); 666 suite.addTest("test_interface_Union_primitives5", test_interface_Union_primitives5); 667 suite.addTest("test_interface_Union_primitives6", test_interface_Union_primitives6); 668 suite.addTest("test_interface_Union_primitives7", test_interface_Union_primitives7); 669 suite.addTest("test_interface_Union_primitives8", test_interface_Union_primitives8); 670 suite.addTest("test_interface_Union_primitives9", test_interface_Union_primitives9); 671 suite.addTest("test_interface_Union_primitives10", test_interface_Union_primitives10); 672 // primitive_5param 673 suite.addTest("test_interface_Union_10param_primitives1",test_interface_Union_10param_primitives1); 674 suite.addTest("test_interface_Union_10param_primitives2",test_interface_Union_10param_primitives2); 675 suite.addTest("test_interface_Union_10param_primitives3",test_interface_Union_10param_primitives3); 676 suite.addTest("test_interface_Union_10param_primitives4",test_interface_Union_10param_primitives4); 677 suite.addTest("test_interface_Union_10param_primitives5",test_interface_Union_10param_primitives5); 678 suite.addTest("test_interface_Union_10param_primitives6",test_interface_Union_10param_primitives6); 679 suite.addTest("test_interface_Union_10param_primitives7",test_interface_Union_10param_primitives7); 680 suite.addTest("test_interface_Union_10param_primitives8",test_interface_Union_10param_primitives8); 681 suite.addTest("test_interface_Union_10param_primitives9",test_interface_Union_10param_primitives9); 682 suite.addTest("test_interface_Union_10param_primitives10",test_interface_Union_10param_primitives10); 683 684 // mix_5param 685 suite.addTest("test_union_mix", test_union_mix); 686 suite.addTest("test_union_mix_10param1", test_union_mix_10param1); 687 suite.addTest("test_union_mix_10param2", test_union_mix_10param2); 688 suite.addTest("test_union_mix_10param3", test_union_mix_10param3); 689 suite.addTest("test_union_mix_10param4", test_union_mix_10param4); 690 suite.addTest("test_union_mix_10param5", test_union_mix_10param5); 691 692 // 2组合primitive return 693 suite.addTest("test_2_primitive1", test_2_primitive1); 694 suite.addTest("test_2_primitive2", test_2_primitive2); 695 suite.addTest("test_2_primitive3", test_2_primitive3); 696 suite.addTest("test_2_primitive4", test_2_primitive4); 697 suite.addTest("test_2_primitive5", test_2_primitive5); 698 suite.addTest("test_2_primitive6", test_2_primitive6); 699 suite.addTest("test_2_primitive7", test_2_primitive7); 700 suite.addTest("test_2_primitive8", test_2_primitive8); 701 suite.addTest("test_2_primitive9", test_2_primitive9); 702 suite.addTest("test_2_primitive10", test_2_primitive10); 703 704 // 5组合所有类型return 705 suite.addTest("test_mix5_return1", test_mix5_return1); 706 suite.addTest("test_mix5_return2", test_mix5_return2); 707 suite.addTest("test_mix5_return3", test_mix5_return3); 708 suite.addTest("test_mix5_return4", test_mix5_return4); 709 suite.addTest("test_mix5_return5", test_mix5_return5); 710 711 // 10组合所有类型return 712 713 // enum map 714 suite.addTest("test_interface_Union_enum_map", test_interface_Union_enum_map); 715 suite.addTest("test_interface_Union_enum_map1", test_interface_Union_enum_map1); 716 suite.addTest("test_interface_Union_enum_map2", test_interface_Union_enum_map2); 717 suite.addTest("test_interface_Union_enum_map3", test_interface_Union_enum_map3); 718 suite.addTest("test_interface_Union_enum_map4", test_interface_Union_enum_map4); 719 suite.addTest("test_interface_Union_enum_map5", test_interface_Union_enum_map5); 720 suite.addTest("test_interface_Union_enum_map6", test_interface_Union_enum_map6); 721 suite.addTest("test_interface_Union_enum_map7", test_interface_Union_enum_map7); 722 suite.addTest("test_interface_Union_enum_map8", test_interface_Union_enum_map8); 723 suite.addTest("test_interface_Union_enum_map9", test_interface_Union_enum_map9); 724 725 // arr 726 suite.addTest("test_interface_Union_array_map", test_interface_Union_array_map); 727 suite.addTest("test_interface_Union_array_map1", test_interface_Union_array_map1); 728 suite.addTest("test_interface_Union_array_map2", test_interface_Union_array_map2); 729 suite.addTest("test_interface_Union_array_map3", test_interface_Union_array_map3); 730 suite.addTest("test_interface_Union_array_map4", test_interface_Union_array_map4); 731 suite.addTest("test_interface_Union_array_map5", test_interface_Union_array_map5); 732 suite.addTest("test_interface_Union_array_map6", test_interface_Union_array_map6); 733 suite.addTest("test_interface_Union_array_map7", test_interface_Union_array_map7); 734 suite.addTest("test_interface_Union_array_map8", test_interface_Union_array_map8); 735 suite.addTest("test_interface_Union_array_map9", test_interface_Union_array_map9); 736 737 // union basic 738 suite.addTest("test_union_with_makeAndShowBasicUnion", test_union_with_makeAndShowBasicUnion); 739 // union typedarray 740 suite.addTest("test_union_with_makeAndShowTypedArrayUnion", test_union_with_makeAndShowTypedArrayUnion); 741 // union array 742 suite.addTest("test_union_with_makeAndShowArrayUnion", test_union_with_makeAndShowArrayUnion); 743 //union struct 744 suite.addTest("test_union_with_makeAndShowStructUnion", test_union_with_makeAndShowStructUnion); 745 746 exit(suite.run()); 747} 748