1/*
2 * Copyright (c) 2023 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
16declare function print(arg:any):string;
17
18let undf: any = undefined;
19let intNum: number = 5;
20let doubleNum: number = 1.1;
21let falseValue: boolean = false;
22let trueValue: boolean = true;
23let nullValue: any = null;
24
25// int op undefined
26print("=====int op undefined=====")
27print(intNum + undf);
28print(intNum - undf);
29print(intNum * undf);
30print(intNum / undf);
31print(intNum % undf);
32print(intNum < undf);
33print(intNum <= undf);
34print(intNum > undf);
35print(intNum >= undf);
36print(intNum == undf);
37print(intNum === undf);
38print(intNum != undf);
39print(intNum !== undf);
40print(intNum << undf);
41print(intNum >> undf);
42print(intNum >>> undf);
43print(intNum | undf);
44print(intNum ^ undf);
45
46// double op undefined
47print("=====double op undefined=====")
48print(doubleNum + undf);
49print(doubleNum - undf);
50print(doubleNum * undf);
51print(doubleNum / undf);
52print(doubleNum % undf);
53print(doubleNum < undf);
54print(doubleNum <= undf);
55print(doubleNum > undf);
56print(doubleNum >= undf);
57print(doubleNum == undf);
58print(doubleNum === undf);
59print(doubleNum != undf);
60print(doubleNum !== undf);
61print(doubleNum << undf);
62print(doubleNum >> undf);
63print(doubleNum >>> undf);
64print(doubleNum | undf);
65print(doubleNum ^ undf);
66
67// false op undefined
68print("=====false op undefined=====")
69print(falseValue + undf);
70print(falseValue - undf);
71print(falseValue * undf);
72print(falseValue / undf);
73print(falseValue % undf);
74print(falseValue < undf);
75print(falseValue <= undf);
76print(falseValue > undf);
77print(falseValue >= undf);
78print(falseValue == undf);
79print(falseValue === undf);
80print(falseValue != undf);
81print(falseValue !== undf);
82print(falseValue << undf);
83print(falseValue >> undf);
84print(falseValue >>> undf);
85print(falseValue | undf);
86print(falseValue ^ undf);
87
88// true op undefined
89print("=====true op undefined=====")
90print(trueValue + undf);
91print(trueValue - undf);
92print(trueValue * undf);
93print(trueValue / undf);
94print(trueValue % undf);
95print(trueValue < undf);
96print(trueValue <= undf);
97print(trueValue > undf);
98print(trueValue >= undf);
99print(trueValue == undf);
100print(trueValue === undf);
101print(trueValue != undf);
102print(trueValue !== undf);
103print(trueValue << undf);
104print(trueValue >> undf);
105print(trueValue >>> undf);
106print(trueValue | undf);
107print(trueValue ^ undf);
108
109// null op undefined
110print("=====null op undefined=====")
111print(nullValue + undf);
112print(nullValue - undf);
113print(nullValue * undf);
114print(nullValue / undf);
115print(nullValue % undf);
116print(nullValue < undf);
117print(nullValue <= undf);
118print(nullValue > undf);
119print(nullValue >= undf);
120print(nullValue == undf);
121print(nullValue === undf);
122print(nullValue != undf);
123print(nullValue !== undf);
124print(nullValue << undf);
125print(nullValue >> undf);
126print(nullValue >>> undf);
127print(nullValue | undf);
128print(nullValue ^ undf);
129
130// int op null
131print("=====int op null=====")
132print(intNum + nullValue);
133print(intNum - nullValue);
134print(intNum * nullValue);
135print(intNum / nullValue);
136print(intNum % nullValue);
137print(intNum < nullValue);
138print(intNum <= nullValue);
139print(intNum > nullValue);
140print(intNum >= nullValue);
141print(intNum == nullValue);
142print(intNum === nullValue);
143print(intNum != nullValue);
144print(intNum !== nullValue);
145print(intNum << nullValue);
146print(intNum >> nullValue);
147print(intNum >>> nullValue);
148print(intNum | nullValue);
149print(intNum ^ nullValue);
150
151// double op null
152print("=====double op null=====")
153print(doubleNum + nullValue);
154print(doubleNum - nullValue);
155print(doubleNum * nullValue);
156print(doubleNum / nullValue);
157print(doubleNum % nullValue);
158print(doubleNum < nullValue);
159print(doubleNum <= nullValue);
160print(doubleNum > nullValue);
161print(doubleNum >= nullValue);
162print(doubleNum == nullValue);
163print(doubleNum === nullValue);
164print(doubleNum != nullValue);
165print(doubleNum !== nullValue);
166print(doubleNum << nullValue);
167print(doubleNum >> nullValue);
168print(doubleNum >>> nullValue);
169print(doubleNum | nullValue);
170print(doubleNum ^ nullValue);
171
172// false op null
173print("=====false op null=====")
174print(falseValue + nullValue);
175print(falseValue - nullValue);
176print(falseValue * nullValue);
177print(falseValue / nullValue);
178print(falseValue % nullValue);
179print(falseValue < nullValue);
180print(falseValue <= nullValue);
181print(falseValue > nullValue);
182print(falseValue >= nullValue);
183print(falseValue == nullValue);
184print(falseValue === nullValue);
185print(falseValue != nullValue);
186print(falseValue !== nullValue);
187print(falseValue << nullValue);
188print(falseValue >> nullValue);
189print(falseValue >>> nullValue);
190print(falseValue | nullValue);
191print(falseValue ^ nullValue);
192
193// true op null
194print("=====true op null=====")
195print(trueValue + nullValue);
196print(trueValue - nullValue);
197print(trueValue * nullValue);
198print(trueValue / nullValue);
199print(trueValue % nullValue);
200print(trueValue < nullValue);
201print(trueValue <= nullValue);
202print(trueValue > nullValue);
203print(trueValue >= nullValue);
204print(trueValue == nullValue);
205print(trueValue === nullValue);
206print(trueValue != nullValue);
207print(trueValue !== nullValue);
208print(trueValue << nullValue);
209print(trueValue >> nullValue);
210print(trueValue >>> nullValue);
211print(trueValue | nullValue);
212print(trueValue ^ nullValue);
213
214// int op false
215print("=====int op false=====")
216print(intNum + falseValue);
217print(intNum - falseValue);
218print(intNum * falseValue);
219print(intNum / falseValue);
220print(intNum % falseValue);
221print(intNum < falseValue);
222print(intNum <= falseValue);
223print(intNum > falseValue);
224print(intNum >= falseValue);
225print(intNum == falseValue);
226print(intNum === falseValue);
227print(intNum != falseValue);
228print(intNum !== falseValue);
229print(intNum << falseValue);
230print(intNum >> falseValue);
231print(intNum >>> falseValue);
232print(intNum | falseValue);
233print(intNum ^ falseValue);
234
235// double op false
236print("=====double op false=====")
237print(doubleNum + falseValue);
238print(doubleNum - falseValue);
239print(doubleNum * falseValue);
240print(doubleNum / falseValue);
241print(doubleNum % falseValue);
242print(doubleNum < falseValue);
243print(doubleNum <= falseValue);
244print(doubleNum > falseValue);
245print(doubleNum >= falseValue);
246print(doubleNum == falseValue);
247print(doubleNum === falseValue);
248print(doubleNum != falseValue);
249print(doubleNum !== falseValue);
250print(doubleNum << falseValue);
251print(doubleNum >> falseValue);
252print(doubleNum >>> falseValue);
253print(doubleNum | falseValue);
254print(doubleNum ^ falseValue);
255
256// true op false
257print("=====true op false=====")
258print(trueValue + falseValue);
259print(trueValue - falseValue);
260print(trueValue * falseValue);
261print(trueValue / falseValue);
262print(trueValue % falseValue);
263print(trueValue < falseValue);
264print(trueValue <= falseValue);
265print(trueValue > falseValue);
266print(trueValue >= falseValue);
267print(trueValue == falseValue);
268print(trueValue === falseValue);
269print(trueValue != falseValue);
270print(trueValue !== falseValue);
271print(trueValue << falseValue);
272print(trueValue >> falseValue);
273print(trueValue >>> falseValue);
274print(trueValue | falseValue);
275print(trueValue ^ falseValue);
276
277// int op true
278print("=====int op true=====")
279print(intNum + trueValue);
280print(intNum - trueValue);
281print(intNum * trueValue);
282print(intNum / trueValue);
283print(intNum % trueValue);
284print(intNum < trueValue);
285print(intNum <= trueValue);
286print(intNum > trueValue);
287print(intNum >= trueValue);
288print(intNum == trueValue);
289print(intNum === trueValue);
290print(intNum != trueValue);
291print(intNum !== trueValue);
292print(intNum << trueValue);
293print(intNum >> trueValue);
294print(intNum >>> trueValue);
295print(intNum | trueValue);
296print(intNum ^ trueValue);
297
298// double op true
299print("=====double op true=====")
300print(doubleNum + trueValue);
301print(doubleNum - trueValue);
302print(doubleNum * trueValue);
303print(doubleNum / trueValue);
304print(doubleNum % trueValue);
305print(doubleNum < trueValue);
306print(doubleNum <= trueValue);
307print(doubleNum > trueValue);
308print(doubleNum >= trueValue);
309print(doubleNum == trueValue);
310print(doubleNum === trueValue);
311print(doubleNum != trueValue);
312print(doubleNum !== trueValue);
313print(doubleNum << trueValue);
314print(doubleNum >> trueValue);
315print(doubleNum >>> trueValue);
316print(doubleNum | trueValue);
317print(doubleNum ^ trueValue);
318
319// true op false
320print("=====true op false=====")
321print(trueValue + falseValue);
322print(trueValue - falseValue);
323print(trueValue * falseValue);
324print(trueValue / falseValue);
325print(trueValue % falseValue);
326print(trueValue < falseValue);
327print(trueValue <= falseValue);
328print(trueValue > falseValue);
329print(trueValue >= falseValue);
330print(trueValue == falseValue);
331print(trueValue === falseValue);
332print(trueValue != falseValue);
333print(trueValue !== falseValue);
334print(trueValue << falseValue);
335print(trueValue >> falseValue);
336print(trueValue >>> falseValue);
337print(trueValue | falseValue);
338print(trueValue ^ falseValue);
339
340// undefined op undefined
341print("=====undefined op undefined=====")
342print(undf + undf);
343print(undf - undf);
344print(undf * undf);
345print(undf / undf);
346print(undf % undf);
347print(undf < undf);
348print(undf <= undf);
349print(undf > undf);
350print(undf >= undf);
351print(undf == undf);
352print(undf === undf);
353print(undf != undf);
354print(undf !== undf);
355print(undf << undf);
356print(undf >> undf);
357print(undf >>> undf);
358print(undf | undf);
359print(undf ^ undf);
360
361// null op null
362print("=====null op null=====")
363print(nullValue + nullValue);
364print(nullValue - nullValue);
365print(nullValue * nullValue);
366print(nullValue / nullValue);
367print(nullValue % nullValue);
368print(nullValue < nullValue);
369print(nullValue <= nullValue);
370print(nullValue > nullValue);
371print(nullValue >= nullValue);
372print(nullValue == nullValue);
373print(nullValue === nullValue);
374print(nullValue != nullValue);
375print(nullValue !== nullValue);
376print(nullValue << nullValue);
377print(nullValue >> nullValue);
378print(nullValue >>> nullValue);
379print(nullValue | nullValue);
380print(nullValue ^ nullValue);
381
382// true op true
383print("=====true op true=====")
384print(trueValue + trueValue);
385print(trueValue - trueValue);
386print(trueValue * trueValue);
387print(trueValue / trueValue);
388print(trueValue % trueValue);
389print(trueValue < trueValue);
390print(trueValue <= trueValue);
391print(trueValue > trueValue);
392print(trueValue >= trueValue);
393print(trueValue == trueValue);
394print(trueValue === trueValue);
395print(trueValue != trueValue);
396print(trueValue !== trueValue);
397print(trueValue << trueValue);
398print(trueValue >> trueValue);
399print(trueValue >>> trueValue);
400print(trueValue | trueValue);
401print(trueValue ^ trueValue);
402
403// false op false
404print("=====false op false=====")
405print(falseValue + falseValue);
406print(falseValue - falseValue);
407print(falseValue * falseValue);
408print(falseValue / falseValue);
409print(falseValue % falseValue);
410print(falseValue < falseValue);
411print(falseValue <= falseValue);
412print(falseValue > falseValue);
413print(falseValue >= falseValue);
414print(falseValue == falseValue);
415print(falseValue === falseValue);
416print(falseValue != falseValue);
417print(falseValue !== falseValue);
418print(falseValue << falseValue);
419print(falseValue >> falseValue);
420print(falseValue >>> falseValue);
421print(falseValue | falseValue);
422print(falseValue ^ falseValue);