1/*
2 * Copyright (c) 2023-2024 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 */
15
16function main(): void {
17    const failures: int = 0;
18    const test1First : boolean[] = [true];
19    const test1Second : boolean[] = [true];
20    const test2First : boolean[] = [true, true];
21    const test2Second : boolean[] = [false, false];
22    const test3First : boolean[] = [];
23    const test3Second : boolean[] = [];
24    const test4First : boolean[] = [true, false];
25    const test4Second : boolean[] = [];
26    const test5First : boolean[] = [];
27    const test5Second : boolean[] = [false, true, false];
28
29    const test1Expected : boolean[] = [true, true];
30    const test2Expected : boolean[] = [true, true, false, false];
31    const test3Expected : boolean[] = [];
32    const test4Expected : boolean[] = [true, false];
33    const test5Expected : boolean[] = [false, true, false];
34
35    assert failures == 0;
36
37    assert test1First[0] == true;
38    assert test1Second[0] == true;
39
40    assert test2First[0] == true;
41    assert test2First[1] == true;
42    assert test2Second[0] == false;
43    assert test2Second[1] == false;
44
45    assert test3First.length == 0;
46    assert test3Second.length == 0;
47
48    assert test4First[0] == true;
49    assert test4First[1] == false;
50    assert test4Second.length == 0;
51
52    assert test5First.length == 0;
53    assert test5Second[0] == false;
54    assert test5Second[1] == true;
55    assert test5Second[2] == false;
56
57    assert test1Expected[0] == true;
58    assert test1Expected[1] == true;
59
60    assert test2Expected[0] == true;
61    assert test2Expected[1] == true;
62    assert test2Expected[2] == false;
63    assert test2Expected[3] == false;
64
65    assert test3Expected.length == 0;
66
67    assert test4Expected[0] == true;
68    assert test4Expected[1] == false;
69
70    assert test5Expected[0] == false;
71    assert test5Expected[1] == true;
72    assert test5Expected[2] == false;
73}
74