1/*
2 * Copyright (c) 2024 Shenzhen Kaihong Digital Industry Development 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
16import { afterAll , afterEach , beforeAll , beforeEach , describe , expect , it } from '@ohos/hypium';
17import drawing from '@ohos.graphics.drawing';
18import { getEnumCount } from './utils';
19import buffer from '@ohos.buffer';
20
21export default function fontPart2Test() {
22  describe('DrawingTsFontPart2Test' , () => {
23    const DEFAULT = 0;
24    // Defines a test suite. Two parameters are supported: test suite name and test suite function.
25    beforeAll(async() => {
26
27    })
28    beforeEach(() => {
29      // Presets an action, which is performed before each unit test case starts.
30      // The number of execution times is the same as the number of test cases defined by **it**.
31      // This API supports only one parameter: preset action function.
32    })
33    afterEach(() => {
34      // Presets a clear action, which is performed after each unit test case ends.
35      // The number of execution times is the same as the number of test cases defined by **it**.
36      // This API supports only one parameter: clear action function.
37    })
38    afterAll(() => {
39      // Presets a clear action, which is performed after all test cases of the test suite end.
40      // This API supports only one parameter: clear action function.
41    })
42
43    /**
44     * @tc.number    : SUB_BASIC_GRAPHICS_SPECIAL_API_TS_DRAWING_FONT_0800
45     * @tc.name      : testFontCountTextTextNormal
46     * @tc.desc      : Test for testFontCountTextTextNormal.
47     * @tc.size      : SmallTest
48     * @tc.type      : Function
49     * @tc.level     : Level 0
50     */
51    it('testFontCountTextTextNormal' , DEFAULT , () => {
52      const msg = 'testFontCountTextTextNormal';
53      let font = new drawing.Font();
54
55      try {
56        let resultNumber: number = font.countText('ABCDE');
57        expect(resultNumber == 5).assertTrue();
58        console.info(msg + ' countTextText successed,resultNumber correct');
59      } catch( e ) {
60        console.info(msg + ` countTextText errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
61        expect().assertFail();
62      }
63
64      try {
65        let resultNumber: number = font.countText('你好');
66        expect(resultNumber == 2).assertTrue();
67        console.info(msg + ' countTextText successed,resultNumber correct');
68      } catch( e ) {
69        console.info(msg + ` countTextText errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
70        expect().assertFail();
71      }
72
73      try {
74        let resultNumber: number = font.countText('!@#¥2223@##');
75        expect(resultNumber == 11).assertTrue();
76        console.info(msg + ' countTextText successed,resultNumber correct');
77      } catch( e ) {
78        console.info(msg + ` countTextText errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
79        expect().assertFail();
80      }
81
82      try {
83        let resultNumber: number = font.countText('魑魅魍魉');
84        expect(resultNumber == 4).assertTrue();
85        console.info(msg + ' countTextText successed,resultNumber correct');
86      } catch( e ) {
87        console.info(msg + ` countTextText errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
88        expect().assertFail();
89      }
90
91      try {
92        let resultNumber: number = font.countText('');
93        expect(resultNumber == 0).assertTrue();
94        console.info(msg + ' countTextText successed,resultNumber correct');
95      } catch( e ) {
96        console.info(msg + ` countTextText errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
97        expect().assertFail();
98      }
99    });
100
101    /**
102     * @tc.number    : SUB_BASIC_GRAPHICS_SPECIAL_API_TS_DRAWING_FONT_0801
103     * @tc.name      : testFontCountTextTextNull
104     * @tc.desc      : Test for testFontCountTextTextNull.
105     * @tc.size      : SmallTest
106     * @tc.type      : Function
107     * @tc.level     : Level 3
108     */
109    it('testFontCountTextTextNull' , DEFAULT , () => {
110      const msg = 'testFontCountTextTextNull';
111      let font = new drawing.Font();
112
113      try {
114        font.countText(null);
115        console.info(msg + ' countTextText succeeded');
116      } catch( e ) {
117        console.info(msg + ` countTextText errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
118        expect(e.code).assertEqual(401);
119      }
120
121      try {
122        font.countText(undefined);
123        console.info(msg + ' countTextText succeeded');
124      } catch( e ) {
125        console.info(msg + ` countTextText errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
126        expect(e.code).assertEqual(401);
127      }
128    });
129
130    /**
131     * @tc.number    : SUB_BASIC_GRAPHICS_SPECIAL_API_TS_DRAWING_FONT_0803
132     * @tc.name      : testFontCountTextTextMultipleCalls
133     * @tc.desc      : Test for testFontCountTextTextMultipleCalls.
134     * @tc.size      : SmallTest
135     * @tc.type      : Function
136     * @tc.level     : Level 3
137     */
138    it('testFontCountTextTextMultipleCalls' , DEFAULT , () => {
139      const msg = 'testFontCountTextTextMultipleCalls';
140      let font = new drawing.Font();
141
142      for ( let i = 0 ; i < 20 ; i ++ ) {
143        try {
144          let resultNumber: number = font.countText('ABCDE');
145          expect(resultNumber == 5).assertTrue();
146          console.info(msg + ' countTextText successed,resultNumber correct');
147        } catch( e ) {
148          console.info(msg + ` countTextText errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
149          expect().assertFail();
150        }
151      }
152    });
153
154    /**
155     * @tc.number    : SUB_BASIC_GRAPHICS_SPECIAL_API_TS_DRAWING_FONT_0900
156     * @tc.name      : testFontSetAndGetEdgingNormal
157     * @tc.desc      : Test for testFontSetAndGetEdgingNormal.
158     * @tc.size      : SmallTest
159     * @tc.type      : Function
160     * @tc.level     : Level 0
161     */
162    it('testFontSetAndGetEdgingNormal' , DEFAULT , () => {
163      const msg = 'testFontSetAndGetEdgingNormal';
164      let font = new drawing.Font();
165
166      try {
167        font.setEdging(drawing.FontEdging.ALIAS);
168        let edging: drawing.FontEdging = font.getEdging();
169        expect(edging == drawing.FontEdging.ALIAS).assertTrue();
170        console.info(msg + ' setAndGetEdging successed,GetEdging:' + edging);
171      } catch( e ) {
172        console.info(msg + ` setAndGetEdging errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
173        expect().assertFail();
174      }
175
176      try {
177        font.setEdging(drawing.FontEdging.ANTI_ALIAS);
178        let edging: drawing.FontEdging = font.getEdging();
179        expect(edging == drawing.FontEdging.ANTI_ALIAS).assertTrue();
180        console.info(msg + ' setAndGetEdging successed,GetEdging:' + edging);
181      } catch( e ) {
182        console.info(msg + ` setAndGetEdging errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
183        expect().assertFail();
184      }
185
186      try {
187        font.setEdging(drawing.FontEdging.SUBPIXEL_ANTI_ALIAS);
188        let edging: drawing.FontEdging = font.getEdging();
189        expect(edging == drawing.FontEdging.SUBPIXEL_ANTI_ALIAS).assertTrue();
190        console.info(msg + ' setAndGetEdging successed,GetEdging:' + edging);
191      } catch( e ) {
192        console.info(msg + ` setAndGetEdging errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
193        expect().assertFail();
194      }
195    });
196
197    /**
198     * @tc.number    : SUB_BASIC_GRAPHICS_SPECIAL_API_TS_DRAWING_FONT_0901
199     * @tc.name      : testFontSetAndGetEdgingNull
200     * @tc.desc      : Test for testFontSetAndGetEdgingNull.
201     * @tc.size      : SmallTest
202     * @tc.type      : Function
203     * @tc.level     : Level 3
204     */
205    it('testFontSetAndGetEdgingNull' , DEFAULT , () => {
206      const msg = 'testFontSetAndGetEdgingNull';
207      let font = new drawing.Font();
208
209      try {
210        font.setEdging(null);
211        console.info(msg + ' setEdging succeeded');
212      } catch( e ) {
213        console.info(msg + ` setEdging errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
214        expect(e.code).assertEqual(401);
215      }
216
217      try {
218        font.setEdging(undefined);
219        console.info(msg + ' setEdging succeeded');
220      } catch( e ) {
221        console.info(msg + ` setEdging errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
222        expect(e.code).assertEqual(401);
223      }
224    });
225
226    /**
227     * @tc.number    : SUB_BASIC_GRAPHICS_SPECIAL_API_TS_DRAWING_FONT_0903
228     * @tc.name      : testFontSetAndGetEdgingMultipleCalls
229     * @tc.desc      : Test for testFontSetAndGetEdgingMultipleCalls.
230     * @tc.size      : SmallTest
231     * @tc.type      : Function
232     * @tc.level     : Level 3
233     */
234    it('testFontSetAndGetEdgingMultipleCalls' , DEFAULT , () => {
235      const msg = 'testFontSetAndGetEdgingMultipleCalls';
236      let font = new drawing.Font();
237
238      for ( let i = 0 ; i < 20 ; i ++ ) {
239        const randomEnum = Math.floor(Math.random() * getEnumCount(drawing.FontEdging));
240        try {
241          font.setEdging(randomEnum);
242          let edging: drawing.FontEdging = font.getEdging();
243          console.info(msg + ' setAndGetEdging successed,GetEdging:' + edging);
244        } catch( e ) {
245          console.info(msg + ` setAndGetEdging errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
246          expect().assertFail();
247        }
248      }
249
250      for ( let i = 0 ; i < 20 ; i ++ ) {
251        const randomEnum = Math.floor(Math.random() * getEnumCount(drawing.FontEdging));
252        try {
253          font.setEdging(randomEnum);
254          console.info(msg + ' setEdging successed');
255        } catch( e ) {
256          console.info(msg + ` setEdging errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
257          expect().assertFail();
258        }
259      }
260
261      for ( let i = 0 ; i < 20 ; i ++ ) {
262        try {
263          let edging: drawing.FontEdging = font.getEdging();
264          console.info(msg + ' getEdging successed,GetEdging:' + edging);
265        } catch( e ) {
266          console.info(msg + ` getEdging errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
267          expect().assertFail();
268        }
269      }
270    });
271
272    /**
273     * @tc.number    : SUB_BASIC_GRAPHICS_SPECIAL_API_TS_DRAWING_FONT_0904
274     * @tc.name      : testFontSetAndGetEdgingAbnormal
275     * @tc.desc      : Test for testFontSetAndGetEdgingAbnormal.
276     * @tc.size      : SmallTest
277     * @tc.type      : Function
278     * @tc.level     : Level 3
279     */
280    it('testFontSetAndGetEdgingAbnormal' , DEFAULT , () => {
281      const msg = 'testFontSetAndGetEdgingAbnormal';
282      let font = new drawing.Font();
283
284      try {
285        font.setEdging(10);
286        console.info(msg + ' setEdging succeeded');
287      } catch( e ) {
288        console.info(msg + ` setEdging errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
289        expect(e.code).assertEqual(401);
290      }
291    });
292
293    /**
294     * @tc.number    : SUB_BASIC_GRAPHICS_SPECIAL_API_TS_DRAWING_FONT_1000
295     * @tc.name      : testFontSetAndGetHintingNormal
296     * @tc.desc      : Test for testFontSetAndGetHintingNormal.
297     * @tc.size      : SmallTest
298     * @tc.type      : Function
299     * @tc.level     : Level 0
300     */
301    it('testFontSetAndGetHintingNormal' , DEFAULT , () => {
302      const msg = 'testFontSetAndGetHintingNormal';
303      let font = new drawing.Font();
304
305      try {
306        font.setHinting(drawing.FontHinting.NONE);
307        let hinting: drawing.FontHinting = font.getHinting();
308        expect(hinting == drawing.FontHinting.NONE).assertTrue();
309        console.info(msg + ' setAndGetHinting successed,getHinting:' + hinting);
310      } catch( e ) {
311        console.info(msg + ` setAndGetHinting errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
312        expect().assertFail();
313      }
314
315      try {
316        font.setHinting(drawing.FontHinting.SLIGHT);
317        let hinting: drawing.FontHinting = font.getHinting();
318        expect(hinting == drawing.FontHinting.SLIGHT).assertTrue();
319        console.info(msg + ' setAndGetHinting successed,getHinting:' + hinting);
320      } catch( e ) {
321        console.info(msg + ` setAndGetHinting errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
322        expect().assertFail();
323      }
324
325      try {
326        font.setHinting(drawing.FontHinting.NORMAL);
327        let hinting: drawing.FontHinting = font.getHinting();
328        expect(hinting == drawing.FontHinting.NORMAL).assertTrue();
329        console.info(msg + ' setAndGetHinting successed,getHinting:' + hinting);
330      } catch( e ) {
331        console.info(msg + ` setAndGetHinting errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
332        expect().assertFail();
333      }
334
335      try {
336        font.setHinting(drawing.FontHinting.FULL);
337        let hinting: drawing.FontHinting = font.getHinting();
338        expect(hinting == drawing.FontHinting.FULL).assertTrue();
339        console.info(msg + ' setAndGetHinting successed,getHinting:' + hinting);
340      } catch( e ) {
341        console.info(msg + ` setAndGetHinting errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
342        expect().assertFail();
343      }
344    });
345
346    /**
347     * @tc.number    : SUB_BASIC_GRAPHICS_SPECIAL_API_TS_DRAWING_FONT_1001
348     * @tc.name      : testFontSetAndGetHintingNull
349     * @tc.desc      : Test for testFontSetAndGetHintingNull.
350     * @tc.size      : SmallTest
351     * @tc.type      : Function
352     * @tc.level     : Level 3
353     */
354    it('testFontSetAndGetHintingNull' , DEFAULT , () => {
355      const msg = 'testFontSetAndGetHintingNull';
356      let font = new drawing.Font();
357
358      try {
359        font.setHinting(null);
360        console.info(msg + ' setHinting succeeded');
361      } catch( e ) {
362        console.info(msg + ` setHinting errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
363        expect(e.code).assertEqual(401);
364      }
365
366      try {
367        font.setHinting(undefined);
368        console.info(msg + ' setHinting succeeded');
369      } catch( e ) {
370        console.info(msg + ` setHinting errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
371        expect(e.code).assertEqual(401);
372      }
373    });
374
375    /**
376     * @tc.number    : SUB_BASIC_GRAPHICS_SPECIAL_API_TS_DRAWING_FONT_1003
377     * @tc.name      : testFontSetAndGetHintingMultipleCalls
378     * @tc.desc      : Test for testFontSetAndGetHintingMultipleCalls.
379     * @tc.size      : SmallTest
380     * @tc.type      : Function
381     * @tc.level     : Level 3
382     */
383    it('testFontSetAndGetHintingMultipleCalls' , DEFAULT , () => {
384      const msg = 'testFontSetAndGetHintingMultipleCalls';
385      let font = new drawing.Font();
386
387      for ( let i = 0 ; i < 20 ; i ++ ) {
388        const randomEnum = Math.floor(Math.random() * getEnumCount(drawing.FontHinting));
389        try {
390          font.setHinting(randomEnum);
391          let hinting: drawing.FontHinting = font.getHinting()
392          console.info(msg + ' setAndGetHinting successed,getHinting:' + hinting);
393        } catch( e ) {
394          console.info(msg + ` setAndGetHinting errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
395          expect().assertFail();
396        }
397      }
398
399      for ( let i = 0 ; i < 20 ; i ++ ) {
400        const randomEnum = Math.floor(Math.random() * getEnumCount(drawing.FontHinting));
401        try {
402          font.setHinting(randomEnum);
403          console.info(msg + ' setHinting successed');
404        } catch( e ) {
405          console.info(msg + ` setHinting errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
406          expect().assertFail();
407        }
408      }
409
410      for ( let i = 0 ; i < 20 ; i ++ ) {
411        try {
412          let hinting: drawing.FontHinting = font.getHinting();
413          console.info(msg + ' getHinting successed,getHinting:' + hinting);
414        } catch( e ) {
415          console.info(msg + ` getHinting errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
416          expect().assertFail();
417        }
418      }
419    });
420
421    /**
422     * @tc.number    : SUB_BASIC_GRAPHICS_SPECIAL_API_TS_DRAWING_FONT_1004
423     * @tc.name      : testFontSetAndGetHintingAbnormal
424     * @tc.desc      : Test for testFontSetAndGetHintingAbnormal.
425     * @tc.size      : SmallTest
426     * @tc.type      : Function
427     * @tc.level     : Level 3
428     */
429    it('testFontSetAndGetHintingAbnormal' , DEFAULT , () => {
430      const msg = 'testFontSetAndGetHintingAbnormal';
431      let font = new drawing.Font();
432
433      try {
434        font.setHinting(10);
435        console.info(msg + ' setAndGetHinting succeeded');
436      } catch( e ) {
437        console.info(msg + ` setAndGetHinting errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
438        expect(e.code).assertEqual(401);
439      }
440    });
441
442    /**
443     * @tc.number    : SUB_BASIC_GRAPHICS_SPECIAL_API_TS_DRAWING_FONT_1100
444     * @tc.name      : testFontSetAndGetScaleXNormal
445     * @tc.desc      : Test for testFontSetAndGetScaleXNormal.
446     * @tc.size      : SmallTest
447     * @tc.type      : Function
448     * @tc.level     : Level 0
449     */
450    it('testFontSetAndGetScaleXNormal' , DEFAULT , () => {
451      const msg = 'testFontSetAndGetScaleXNormal';
452      let font = new drawing.Font();
453
454      try {
455        font.setScaleX(2);
456        let scaleX: number = font.getScaleX();
457        expect(scaleX == 2).assertTrue();
458        console.info(msg + ' setAndGetScaleX successed,getScaleX:' + scaleX);
459      } catch( e ) {
460        console.info(msg + ` setAndGetScaleX errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
461        expect().assertFail();
462      }
463
464      try {
465        font.setScaleX(0.5);
466        let scaleX: number = font.getScaleX();
467        expect(scaleX == 0.5).assertTrue();
468        console.info(msg + ' setAndGetScaleX successed,getScaleX:' + scaleX);
469      } catch( e ) {
470        console.info(msg + ` setAndGetScaleX errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
471        expect().assertFail();
472      }
473
474      try {
475        font.setScaleX(0);
476        let scaleX: number = font.getScaleX();
477        expect(scaleX == 0).assertTrue();
478        console.info(msg + ' setAndGetScaleX successed,getScaleX:' + scaleX);
479      } catch( e ) {
480        console.info(msg + ` setAndGetScaleX errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
481        expect().assertFail();
482      }
483
484      try {
485        font.setScaleX(-1);
486        let scaleX: number = font.getScaleX();
487        expect(scaleX == -1).assertTrue();
488        console.info(msg + ' setAndGetScaleX successed,getScaleX:' + scaleX);
489      } catch( e ) {
490        console.info(msg + ` setAndGetScaleX errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
491        expect().assertFail();
492      }
493    });
494
495    /**
496     * @tc.number    : SUB_BASIC_GRAPHICS_SPECIAL_API_TS_DRAWING_FONT_1101
497     * @tc.name      : testFontSetAndGetScaleXNull
498     * @tc.desc      : Test for testFontSetAndGetScaleXNull.
499     * @tc.size      : SmallTest
500     * @tc.type      : Function
501     * @tc.level     : Level 3
502     */
503    it('testFontSetAndGetScaleXNull' , DEFAULT , () => {
504      const msg = 'testFontSetAndGetScaleXNull';
505      let font = new drawing.Font();
506
507      try {
508        font.setScaleX(null);
509        console.info(msg + ' setAndGetScaleX succeeded');
510      } catch( e ) {
511        console.info(msg + ` setAndGetScaleX errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
512        expect(e.code).assertEqual(401);
513      }
514
515      try {
516        font.setScaleX(undefined);
517        console.info(msg + ' setAndGetScaleX succeeded');
518      } catch( e ) {
519        console.info(msg + ` setAndGetScaleX errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
520        expect(e.code).assertEqual(401);
521      }
522    });
523
524    /**
525     * @tc.number    : SUB_BASIC_GRAPHICS_SPECIAL_API_TS_DRAWING_FONT_1103
526     * @tc.name      : testFontSetAndGetScaleXMultipleCalls
527     * @tc.desc      : Test for testFontSetAndGetScaleXMultipleCalls.
528     * @tc.size      : SmallTest
529     * @tc.type      : Function
530     * @tc.level     : Level 3
531     */
532    it('testFontSetAndGetScaleXMultipleCalls' , DEFAULT , () => {
533      const msg = 'testFontSetAndGetScaleXMultipleCalls';
534      let font = new drawing.Font();
535
536      for ( let i = 0 ; i < 20 ; i ++ ) {
537        try {
538          font.setScaleX(Math.random() * Number.MAX_VALUE);
539          let scaleX: number = font.getScaleX();
540          console.info(msg + ' setAndGetScaleX successed,getScaleX:' + scaleX);
541        } catch( e ) {
542          console.info(msg + ` setAndGetScaleX errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
543          expect().assertFail();
544        }
545      }
546
547      for ( let i = 0 ; i < 20 ; i ++ ) {
548        try {
549          font.setScaleX(Math.random() * Number.MAX_VALUE);
550          console.info(msg + ' setScaleX successed');
551        } catch( e ) {
552          console.info(msg + ` setScaleX errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
553          expect().assertFail();
554        }
555      }
556
557      for ( let i = 0 ; i < 20 ; i ++ ) {
558        try {
559          let scaleX: number = font.getScaleX();
560          console.info(msg + ' getScaleX successed,getScaleX:' + scaleX);
561        } catch( e ) {
562          console.info(msg + ` getScaleX errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
563          expect().assertFail();
564        }
565      }
566    });
567
568    /**
569     * @tc.number    : SUB_BASIC_GRAPHICS_SPECIAL_API_TS_DRAWING_FONT_1200
570     * @tc.name      : testFontSetAndGetSkewXNormal
571     * @tc.desc      : Test for testFontSetAndGetSkewXNormal.
572     * @tc.size      : SmallTest
573     * @tc.type      : Function
574     * @tc.level     : Level 0
575     */
576    it('testFontSetAndGetSkewXNormal' , DEFAULT , () => {
577      const msg = 'testFontSetAndGetSkewXNormal';
578      let font = new drawing.Font();
579
580      try {
581        font.setSkewX(2);
582        let skewX: number = font.getSkewX();
583        expect(skewX == 2).assertTrue();
584        console.info(msg + ' setAndGetSkewX successed,getSkewX:' + skewX);
585      } catch( e ) {
586        console.info(msg + ` setAndGetSkewX errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
587        expect().assertFail();
588      }
589
590      try {
591        font.setSkewX(0.5);
592        let skewX: number = font.getSkewX();
593        expect(skewX == 0.5).assertTrue();
594        console.info(msg + ' setAndGetSkewX successed,getSkewX:' + skewX);
595      } catch( e ) {
596        console.info(msg + ` setAndGetSkewX errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
597        expect().assertFail();
598      }
599
600      try {
601        font.setSkewX(0);
602        let skewX: number = font.getSkewX();
603        expect(skewX == 0).assertTrue();
604        console.info(msg + ' setAndGetSkewX successed,getSkewX:' + skewX);
605      } catch( e ) {
606        console.info(msg + ` setAndGetSkewX errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
607        expect().assertFail();
608      }
609
610      try {
611        font.setSkewX(- 1);
612        let skewX: number = font.getSkewX();
613        expect(skewX == -1).assertTrue();
614        console.info(msg + ' setAndGetSkewX successed,getSkewX:' + skewX);
615      } catch( e ) {
616        console.info(msg + ` setAndGetSkewX errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
617        expect().assertFail();
618      }
619    });
620
621    /**
622     * @tc.number    : SUB_BASIC_GRAPHICS_SPECIAL_API_TS_DRAWING_FONT_1201
623     * @tc.name      : testFontSetAndGetSkewXNull
624     * @tc.desc      : Test for testFontSetAndGetSkewXNull.
625     * @tc.size      : SmallTest
626     * @tc.type      : Function
627     * @tc.level     : Level 3
628     */
629    it('testFontSetAndGetSkewXNull' , DEFAULT , () => {
630      const msg = 'testFontSetAndGetSkewXNull';
631      let font = new drawing.Font();
632
633      try {
634        font.setSkewX(null);
635        console.info(msg + ' setAndGetSkewX succeeded');
636      } catch( e ) {
637        console.info(msg + ` setAndGetSkewX errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
638        expect(e.code).assertEqual(401);
639      }
640
641      try {
642        font.setSkewX(undefined);
643        console.info(msg + ' setAndGetSkewX succeeded');
644      } catch( e ) {
645        console.info(msg + ` setAndGetSkewX errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
646        expect(e.code).assertEqual(401);
647      }
648    });
649
650    /**
651     * @tc.number    : SUB_BASIC_GRAPHICS_SPECIAL_API_TS_DRAWING_FONT_1203
652     * @tc.name      : testFontSetAndGetSkewXMultipleCalls
653     * @tc.desc      : Test for testFontSetAndGetSkewXMultipleCalls.
654     * @tc.size      : SmallTest
655     * @tc.type      : Function
656     * @tc.level     : Level 3
657     */
658    it('testFontSetAndGetSkewXMultipleCalls' , DEFAULT , () => {
659      const msg = 'testFontSetAndGetSkewXMultipleCalls';
660      let font = new drawing.Font();
661
662      for ( let i = 0 ; i < 20 ; i ++ ) {
663        try {
664          font.setSkewX(Math.random() * Number.MAX_VALUE);
665          let skewX: number = font.getSkewX();
666          console.info(msg + ' setAndGetSkewX successed,getSkewX:' + skewX);
667        } catch( e ) {
668          console.info(msg + ` setAndGetSkewX errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
669          expect().assertFail();
670        }
671      }
672
673      for ( let i = 0 ; i < 20 ; i ++ ) {
674        try {
675          font.setSkewX(Math.random() * Number.MAX_VALUE);
676          console.info(msg + ' setSkewX successed');
677        } catch( e ) {
678          console.info(msg + ` setSkewX errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
679          expect().assertFail();
680        }
681      }
682
683      for ( let i = 0 ; i < 20 ; i ++ ) {
684        try {
685          let skewX: number = font.getSkewX();
686          console.info(msg + ' getSkewX successed,getSkewX:' + skewX);
687        } catch( e ) {
688          console.info(msg + ` getSkewX errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
689          expect().assertFail();
690        }
691      }
692    });
693
694    /**
695     * @tc.number    : SUB_BASIC_GRAPHICS_SPECIAL_API_TS_DRAWING_FONT_1300
696     * @tc.name      : testFontIsSubpixelNormal
697     * @tc.desc      : Test for testFontIsSubpixelNormal.
698     * @tc.size      : SmallTest
699     * @tc.type      : Function
700     * @tc.level     : Level 0
701     */
702    it('testFontIsSubpixelNormal' , DEFAULT , () => {
703      const msg = 'testFontIsSubpixelNormal';
704      let font = new drawing.Font();
705
706      try {
707        font.enableSubpixel(true);
708        let subpixel: boolean = font.isSubpixel();
709        expect(subpixel == true).assertTrue();
710        console.info(msg + ' enableSubpixel successed,isSubpixel:' + subpixel);
711      } catch( e ) {
712        console.info(msg + ` enableSubpixel errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
713        expect().assertFail();
714      }
715
716      try {
717        font.enableSubpixel(false);
718        let subpixel: boolean = font.isSubpixel();
719        expect(subpixel == false).assertTrue();
720        console.info(msg + ' enableSubpixel successed,isSubpixel:' + subpixel);
721      } catch( e ) {
722        console.info(msg + ` enableSubpixel errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
723        expect().assertFail();
724      }
725    });
726
727    /**
728     * @tc.number    : SUB_BASIC_GRAPHICS_SPECIAL_API_TS_DRAWING_FONT_1303
729     * @tc.name      : testFontIsSubpixelMultipleCalls
730     * @tc.desc      : Test for testFontIsSubpixelMultipleCalls.
731     * @tc.size      : SmallTest
732     * @tc.type      : Function
733     * @tc.level     : Level 3
734     */
735    it('testFontIsSubpixelMultipleCalls' , DEFAULT , () => {
736      const msg = 'testFontIsSubpixelMultipleCalls';
737      let font = new drawing.Font();
738
739      for ( let i = 0 ; i < 20 ; i ++ ) {
740        try {
741          let subpixel: boolean = font.isSubpixel();
742          expect(subpixel == false).assertTrue();
743          console.info(msg + ' isSubpixel successed,isSubpixel:' + subpixel);
744        } catch( e ) {
745          console.info(msg + ` isSubpixel errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
746          expect().assertFail();
747        }
748      }
749    });
750
751    /**
752     * @tc.number    : SUB_BASIC_GRAPHICS_SPECIAL_API_TS_DRAWING_FONT_1400
753     * @tc.name      : testFontIsLinearMetricsNormal
754     * @tc.desc      : Test for testFontIsLinearMetricsNormal.
755     * @tc.size      : SmallTest
756     * @tc.type      : Function
757     * @tc.level     : Level 0
758     */
759    it('testFontIsLinearMetricsNormal' , DEFAULT , () => {
760      const msg = 'testFontIsLinearMetricsNormal';
761      let font = new drawing.Font();
762
763      try {
764        font.enableLinearMetrics(true);
765        let linearMetrics: boolean = font.isLinearMetrics();
766        expect(linearMetrics == true).assertTrue();
767        console.info(msg + ' enableLinearMetrics successed,isSubpixel:' + linearMetrics);
768      } catch( e ) {
769        console.info(msg + ` enableLinearMetrics errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
770        expect().assertFail();
771      }
772
773      try {
774        font.enableLinearMetrics(false);
775        let linearMetrics: boolean = font.isLinearMetrics();
776        expect(linearMetrics == false).assertTrue();
777        console.info(msg + ' enableLinearMetrics successed,isSubpixel:' + linearMetrics);
778      } catch( e ) {
779        console.info(msg + ` enableLinearMetrics errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
780        expect().assertFail();
781      }
782    });
783
784    /**
785     * @tc.number    : SUB_BASIC_GRAPHICS_SPECIAL_API_TS_DRAWING_FONT_1402
786     * @tc.name      : testFontIsLinearMetricsMultipleCalls
787     * @tc.desc      : Test for testFontIsLinearMetricsMultipleCalls.
788     * @tc.size      : SmallTest
789     * @tc.type      : Function
790     * @tc.level     : Level 3
791     */
792    it('testFontIsLinearMetricsMultipleCalls' , DEFAULT , () => {
793      const msg = 'testFontIsLinearMetricsMultipleCalls';
794      let font = new drawing.Font();
795
796      for ( let i = 0 ; i < 20 ; i ++ ) {
797        try {
798          let linearMetrics: boolean = font.isLinearMetrics();
799          expect(linearMetrics == false).assertTrue();
800          console.info(msg + ' isLinearMetrics successed,linearMetrics:' + linearMetrics);
801        } catch( e ) {
802          console.info(msg + ` isLinearMetrics errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
803          expect().assertFail();
804        }
805      }
806    });
807
808    /**
809     * @tc.number    : SUB_BASIC_GRAPHICS_SPECIAL_API_TS_DRAWING_FONT_1500
810     * @tc.name      : testFontIsEmboldenNormal
811     * @tc.desc      : Test for testFontIsEmboldenNormal.
812     * @tc.size      : SmallTest
813     * @tc.type      : Function
814     * @tc.level     : Level 0
815     */
816    it('testFontIsEmboldenNormal' , DEFAULT , () => {
817      const msg = 'testFontIsEmboldenNormal';
818      let font = new drawing.Font();
819
820      try {
821        font.enableEmbolden(true);
822        let embolden: boolean = font.isEmbolden();
823        expect(embolden == true).assertTrue();
824        console.info(msg + ' enableEmbolden successed,embolden:' + embolden);
825      } catch( e ) {
826        console.info(msg + ` enableEmbolden errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
827        expect().assertFail();
828      }
829
830      try {
831        font.enableEmbolden(false);
832        let embolden: boolean = font.isEmbolden();
833        expect(embolden == false).assertTrue();
834        console.info(msg + ' enableEmbolden successed,embolden:' + embolden);
835      } catch( e ) {
836        console.info(msg + ` enableEmbolden errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
837        expect().assertFail();
838      }
839    });
840
841    /**
842     * @tc.number    : SUB_BASIC_GRAPHICS_SPECIAL_API_TS_DRAWING_FONT_1502
843     * @tc.name      : testFontIsEmboldenMultipleCalls
844     * @tc.desc      : Test for testFontIsEmboldenMultipleCalls.
845     * @tc.size      : SmallTest
846     * @tc.type      : Function
847     * @tc.level     : Level 3
848     */
849    it('testFontIsEmboldenMultipleCalls' , DEFAULT , () => {
850      const msg = 'testFontIsEmboldenMultipleCalls';
851      let font = new drawing.Font();
852
853      for ( let i = 0 ; i < 20 ; i ++ ) {
854        try {
855          let embolden: boolean = font.isEmbolden();
856          expect(embolden == false).assertTrue();
857          console.info(msg + ' isEmbolden successed,embolden:' + embolden);
858        } catch( e ) {
859          console.info(msg + ` isEmbolden errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
860          expect().assertFail();
861        }
862      }
863    });
864
865    /**
866     * @tc.number    : SUB_BASIC_GRAPHICS_SPECIAL_API_TS_DRAWING_FONT_1600
867     * @tc.name      : testFontMeasureSingleCharacterNormal
868     * @tc.desc      : Test for testFontMeasureSingleCharacterNormal.
869     * @tc.size      : SmallTest
870     * @tc.type      : Function
871     * @tc.level     : Level 0
872     */
873    it('testFontMeasureSingleCharacterNormal' , DEFAULT , () => {
874      const msg = 'testFontMeasureSingleCharacterNormal';
875      let font = new drawing.Font();
876
877      try {
878        let width: number = font.measureSingleCharacter("你");
879        expect(width == 12).assertTrue();
880        console.info(msg + ' measureSingleCharacter successed,width:' + width);
881      } catch( e ) {
882        console.info(msg + ` measureSingleCharacter errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
883        expect().assertFail();
884      }
885
886      try {
887        let width: number = font.measureSingleCharacter("A");
888        expect(width == 8).assertTrue();
889        console.info(msg + ' measureSingleCharacter successed,width:' + width);
890      } catch( e ) {
891        console.info(msg + ` measureSingleCharacter errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
892        expect().assertFail();
893      }
894
895      try {
896        let width: number = font.measureSingleCharacter("1");
897        expect(width == 7).assertTrue();
898        console.info(msg + ' measureSingleCharacter successed,width:' + width);
899      } catch( e ) {
900        console.info(msg + ` measureSingleCharacter errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
901        expect().assertFail();
902      }
903    });
904
905    /**
906     * @tc.number    : SUB_BASIC_GRAPHICS_SPECIAL_API_TS_DRAWING_FONT_1601
907     * @tc.name      : testFontMeasureSingleCharacterNull
908     * @tc.desc      : Test for testFontMeasureSingleCharacterNull.
909     * @tc.size      : SmallTest
910     * @tc.type      : Function
911     * @tc.level     : Level 3
912     */
913    it('testFontMeasureSingleCharacterNull' , DEFAULT , () => {
914      const msg = 'testFontMeasureSingleCharacterNull';
915      let font = new drawing.Font();
916
917      try {
918        font.measureSingleCharacter(null);
919        console.info(msg + ' measureSingleCharacter succeeded');
920      } catch( e ) {
921        console.info(msg + ` measureSingleCharacter errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
922        expect(e.code).assertEqual(401);
923      }
924
925      try {
926        font.measureSingleCharacter(undefined);
927        console.info(msg + ' measureSingleCharacter succeeded');
928      } catch( e ) {
929        console.info(msg + ` measureSingleCharacter errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
930        expect(e.code).assertEqual(401);
931      }
932    });
933
934    /**
935     * @tc.number    : SUB_BASIC_GRAPHICS_SPECIAL_API_TS_DRAWING_FONT_1603
936     * @tc.name      : testFontMeasureSingleCharacterMultipleCalls
937     * @tc.desc      : Test for testFontMeasureSingleCharacterMultipleCalls.
938     * @tc.size      : SmallTest
939     * @tc.type      : Function
940     * @tc.level     : Level 3
941     */
942    it('testFontMeasureSingleCharacterMultipleCalls' , DEFAULT , () => {
943      const msg = 'testFontMeasureSingleCharacterMultipleCalls';
944      let font = new drawing.Font();
945      const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
946
947      for ( let i = 0 ; i < 20 ; i ++ ) {
948        const randomString = characters.charAt(Math.floor(Math.random()*characters.length));
949        try {
950          let width: number = font.measureSingleCharacter(randomString)
951          console.info(msg + ' measureSingleCharacter successed,width:' + width);
952        } catch( e ) {
953          console.info(msg + ` measureSingleCharacter errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
954          expect().assertFail();
955        }
956      }
957    });
958
959    /**
960     * @tc.number    : SUB_BASIC_GRAPHICS_SPECIAL_API_TS_DRAWING_FONT_1604
961     * @tc.name      : testFontMeasureSingleCharacterAbnormal
962     * @tc.desc      : Test for testFontMeasureSingleCharacterAbnormal.
963     * @tc.size      : SmallTest
964     * @tc.type      : Function
965     * @tc.level     : Level 3
966     */
967    it('testFontMeasureSingleCharacterAbnormal' , DEFAULT , () => {
968      const msg = 'testFontMeasureSingleCharacterAbnormal';
969      let font = new drawing.Font();
970
971      try {
972        let width = font.measureSingleCharacter("");
973        console.info(msg + ' measureSingleCharacter successed,width:' + width);
974      } catch( e ) {
975        console.info(msg + ` measureSingleCharacter errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
976        expect(e.code).assertEqual(401);
977      }
978
979      try {
980        let width = font.measureSingleCharacter("abdcdefg");
981        console.info(msg + ' measureSingleCharacter successed,width:' + width);
982      } catch( e ) {
983        console.info(msg + ` measureSingleCharacter errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
984        expect(e.code).assertEqual(401);
985      }
986    });
987
988    /**
989     * @tc.number    : SUB_BASIC_GRAPHICS_SPECIAL_API_TS_DRAWING_FONT_1700
990     * @tc.name      : testFontSetAndIsBaselineSnapNormal
991     * @tc.desc      : Test for testFontSetAndIsBaselineSnapNormal.
992     * @tc.size      : SmallTest
993     * @tc.type      : Function
994     * @tc.level     : Level 0
995     */
996    it('testFontSetAndIsBaselineSnapNormal' , DEFAULT , () => {
997      const msg = 'testFontSetAndIsBaselineSnapNormal';
998      let font = new drawing.Font();
999
1000      try {
1001        let baselineSnap: boolean = font.isBaselineSnap();
1002        expect(baselineSnap == true).assertTrue();
1003        console.info(msg + ' setAndIsBaselineSnap successed,baselineSnap:' + baselineSnap);
1004      } catch( e ) {
1005        console.info(msg + ` setAndIsBaselineSnap errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
1006        expect().assertFail();
1007      }
1008
1009      try {
1010        font.setBaselineSnap(true);
1011        let baselineSnap: boolean = font.isBaselineSnap();
1012        expect(baselineSnap == true).assertTrue();
1013        console.info(msg + ' setAndIsBaselineSnap successed,baselineSnap:' + baselineSnap);
1014      } catch( e ) {
1015        console.info(msg + ` setAndIsBaselineSnap errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
1016        expect().assertFail();
1017      }
1018
1019      try {
1020        font.setBaselineSnap(false);
1021        let baselineSnap: boolean = font.isBaselineSnap();
1022        expect(baselineSnap == false).assertTrue();
1023        console.info(msg + ' setAndIsBaselineSnap successed,baselineSnap:' + baselineSnap);
1024      } catch( e ) {
1025        console.info(msg + ` setAndIsBaselineSnap errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
1026        expect().assertFail();
1027      }
1028    });
1029
1030    /**
1031     * @tc.number    : SUB_BASIC_GRAPHICS_SPECIAL_API_TS_DRAWING_FONT_1701
1032     * @tc.name      : testFontSetAndIsBaselineSnapNull
1033     * @tc.desc      : Test for testFontSetAndIsBaselineSnapNull.
1034     * @tc.size      : SmallTest
1035     * @tc.type      : Function
1036     * @tc.level     : Level 3
1037     */
1038    it('testFontSetAndIsBaselineSnapNull' , DEFAULT , () => {
1039      const msg = 'testFontSetAndIsBaselineSnapNull';
1040      let font = new drawing.Font();
1041
1042      try {
1043        font.setBaselineSnap(null);
1044        console.info(msg + ' setAndIsBaselineSnap successed');
1045      } catch( e ) {
1046        console.info(msg + ` setAndIsBaselineSnap errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
1047        expect(e.code).assertEqual(401);
1048      }
1049
1050      try {
1051        font.setBaselineSnap(undefined);
1052        console.info(msg + ' setAndIsBaselineSnap succeeded');
1053      } catch( e ) {
1054        console.info(msg + ` setAndIsBaselineSnap errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
1055        expect(e.code).assertEqual(401);
1056      }
1057    });
1058
1059    /**
1060     * @tc.number    : SUB_BASIC_GRAPHICS_SPECIAL_API_TS_DRAWING_FONT_1703
1061     * @tc.name      : testFontSetAndIsBaselineSnapMultipleCalls
1062     * @tc.desc      : Test for testFontSetAndIsBaselineSnapMultipleCalls.
1063     * @tc.size      : SmallTest
1064     * @tc.type      : Function
1065     * @tc.level     : Level 3
1066     */
1067    it('testFontSetAndIsBaselineSnapMultipleCalls' , DEFAULT , () => {
1068      const msg = 'testFontSetAndIsBaselineSnapMultipleCalls';
1069      let font = new drawing.Font();
1070
1071      for ( let i = 0 ; i < 20 ; i ++ ) {
1072        try {
1073          const randomBoolean = Math.random() < 0.5;
1074          font.setBaselineSnap(randomBoolean);
1075          let baselineSnap: boolean = font.isBaselineSnap();
1076          console.info(msg + ' setAndIsBaselineSnap successed,baselineSnap:' + baselineSnap);
1077        } catch( e ) {
1078          console.info(msg + ` setAndIsBaselineSnap errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
1079          expect().assertFail();
1080        }
1081      }
1082
1083      for ( let i = 0 ; i < 20 ; i ++ ) {
1084        try {
1085          const randomBoolean = Math.random() < 0.5;
1086          font.setBaselineSnap(randomBoolean);
1087          console.info(msg + ' setBaselineSnap successed');
1088        } catch( e ) {
1089          console.info(msg + ` setBaselineSnap errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
1090          expect().assertFail();
1091        }
1092      }
1093
1094      for ( let i = 0 ; i < 20 ; i ++ ) {
1095        try {
1096          let baselineSnap: boolean = font.isBaselineSnap();
1097          console.info(msg + ' isBaselineSnap successed,baselineSnap:' + baselineSnap);
1098        } catch( e ) {
1099          console.info(msg + ` isBaselineSnap errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
1100          expect().assertFail();
1101        }
1102      }
1103    });
1104
1105    /**
1106     * @tc.number    : SUB_BASIC_GRAPHICS_SPECIAL_API_TS_DRAWING_FONT_1800
1107     * @tc.name      : testFontSetAndIsForceAutoHintingNormal
1108     * @tc.desc      : Test for testFontSetAndIsForceAutoHintingNormal.
1109     * @tc.size      : SmallTest
1110     * @tc.type      : Function
1111     * @tc.level     : Level 0
1112     */
1113    it('testFontSetAndIsForceAutoHintingNormal' , DEFAULT , () => {
1114      const msg = 'testFontSetAndIsForceAutoHintingNormal';
1115      let font = new drawing.Font();
1116
1117      try {
1118        let forceAutoHinting: boolean = font.isForceAutoHinting();
1119        expect(forceAutoHinting == false).assertTrue();
1120        console.info(msg + ' SetAndIsForceAutoHinting successed,isForceAutoHinting:' + forceAutoHinting);
1121      } catch( e ) {
1122        console.info(msg + ` SetAndIsForceAutoHinting errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
1123        expect().assertFail();
1124      }
1125
1126      try {
1127        font.setForceAutoHinting(true);
1128        let forceAutoHinting: boolean = font.isForceAutoHinting();
1129        expect(forceAutoHinting == true).assertTrue();
1130        console.info(msg + ' SetAndIsForceAutoHinting successed,isForceAutoHinting:' + forceAutoHinting);
1131      } catch( e ) {
1132        console.info(msg + ` SetAndIsForceAutoHinting errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
1133        expect().assertFail();
1134      }
1135
1136      try {
1137        font.setForceAutoHinting(false);
1138        let forceAutoHinting: boolean = font.isForceAutoHinting();
1139        expect(forceAutoHinting == false).assertTrue();
1140        console.info(msg + ' SetAndIsForceAutoHinting successed,isForceAutoHinting:' + forceAutoHinting);
1141      } catch( e ) {
1142        console.info(msg + ` SetAndIsForceAutoHinting errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
1143        expect().assertFail();
1144      }
1145    });
1146
1147    /**
1148     * @tc.number    : SUB_BASIC_GRAPHICS_SPECIAL_API_TS_DRAWING_FONT_1801
1149     * @tc.name      : testFontSetAndIsForceAutoHintingNull
1150     * @tc.desc      : Test for testFontSetAndIsForceAutoHintingNull.
1151     * @tc.size      : SmallTest
1152     * @tc.type      : Function
1153     * @tc.level     : Level 3
1154     */
1155    it('testFontSetAndIsForceAutoHintingNull' , DEFAULT , () => {
1156      const msg = 'testFontSetAndIsForceAutoHintingNull';
1157      let font = new drawing.Font();
1158
1159      try {
1160        font.setForceAutoHinting(null);
1161        console.info(msg + ' setForceAutoHinting successed');
1162      } catch( e ) {
1163        console.info(msg + ` setForceAutoHinting errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
1164        expect(e.code).assertEqual(401);
1165      }
1166
1167      try {
1168        font.setForceAutoHinting(undefined);
1169        console.info(msg + ' setForceAutoHinting succeeded');
1170      } catch( e ) {
1171        console.info(msg + ` setForceAutoHinting errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
1172        expect(e.code).assertEqual(401);
1173      }
1174    });
1175
1176    /**
1177     * @tc.number    : SUB_BASIC_GRAPHICS_SPECIAL_API_TS_DRAWING_FONT_1803
1178     * @tc.name      : testFontSetAndIsForceAutoHintingMultipleCalls
1179     * @tc.desc      : Test for testFontSetAndIsForceAutoHintingMultipleCalls.
1180     * @tc.size      : SmallTest
1181     * @tc.type      : Function
1182     * @tc.level     : Level 3
1183     */
1184    it('testFontSetAndIsForceAutoHintingMultipleCalls' , DEFAULT , () => {
1185      const msg = 'testFontSetAndIsForceAutoHintingMultipleCalls';
1186      let font = new drawing.Font();
1187
1188      for ( let i = 0 ; i < 20 ; i ++ ) {
1189        try {
1190          const randomBoolean = Math.random() < 0.5;
1191          font.setForceAutoHinting(randomBoolean);
1192          let forceAutoHinting: boolean = font.isForceAutoHinting();
1193          console.info(msg + ' setAndIsForceAutoHinting successed,forceAutoHinting:' + forceAutoHinting);
1194        } catch( e ) {
1195          console.info(msg + ` setAndIsForceAutoHinting errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
1196          expect().assertFail();
1197        }
1198      }
1199
1200      for ( let i = 0 ; i < 20 ; i ++ ) {
1201        try {
1202          const randomBoolean = Math.random() < 0.5;
1203          font.setForceAutoHinting(randomBoolean);
1204          console.info(msg + ' setForceAutoHinting successed');
1205        } catch( e ) {
1206          console.info(msg + ` setForceAutoHinting errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
1207          expect().assertFail();
1208        }
1209      }
1210
1211      for ( let i = 0 ; i < 20 ; i ++ ) {
1212        try {
1213          let forceAutoHinting: boolean = font.isForceAutoHinting();
1214          console.info(msg + ' isForceAutoHinting successed,forceAutoHinting:' + forceAutoHinting);
1215        } catch( e ) {
1216          console.info(msg + ` isForceAutoHinting errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
1217          expect().assertFail();
1218        }
1219      }
1220    });
1221
1222    /**
1223     * @tc.number    : SUB_BASIC_GRAPHICS_SPECIAL_API_TS_DRAWING_FONT_1900
1224     * @tc.name      : testFontSetAndIsEmbeddedBitmapsNormal
1225     * @tc.desc      : Test for testFontSetAndIsEmbeddedBitmapsNormal.
1226     * @tc.size      : SmallTest
1227     * @tc.type      : Function
1228     * @tc.level     : Level 0
1229     */
1230    it('testFontSetAndIsEmbeddedBitmapsNormal' , DEFAULT , () => {
1231      const msg = 'testFontSetAndIsEmbeddedBitmapsNormal';
1232      let font = new drawing.Font();
1233
1234      try {
1235        let embeddedBitmaps: boolean = font.isEmbeddedBitmaps();
1236        expect(embeddedBitmaps == false).assertTrue();
1237        console.info(msg + ' isEmbeddedBitmaps successed');
1238      } catch( e ) {
1239        console.info(msg + ` isEmbeddedBitmaps errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
1240        expect().assertFail();
1241      }
1242
1243      try {
1244        font.setEmbeddedBitmaps(true);
1245        let embeddedBitmaps: boolean = font.isEmbeddedBitmaps();
1246        expect(embeddedBitmaps == true).assertTrue();
1247        console.info(msg + ' setAndIsEmbeddedBitmaps successed,embeddedBitmaps:' + embeddedBitmaps);
1248      } catch( e ) {
1249        console.info(msg + ` setAndIsEmbeddedBitmaps errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
1250        expect().assertFail();
1251      }
1252
1253      try {
1254        font.setEmbeddedBitmaps(false);
1255        let embeddedBitmaps: boolean = font.isEmbeddedBitmaps();
1256        expect(embeddedBitmaps == false).assertTrue();
1257        console.info(msg + ' setAndIsEmbeddedBitmaps successed,embeddedBitmaps:' + embeddedBitmaps);
1258      } catch( e ) {
1259        console.info(msg + ` setAndIsEmbeddedBitmaps errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
1260        expect().assertFail();
1261      }
1262    });
1263
1264    /**
1265     * @tc.number    : SUB_BASIC_GRAPHICS_SPECIAL_API_TS_DRAWING_FONT_1901
1266     * @tc.name      : testFontSetAndIsEmbeddedBitmapsNull
1267     * @tc.desc      : Test for testFontSetAndIsEmbeddedBitmapsNull.
1268     * @tc.size      : SmallTest
1269     * @tc.type      : Function
1270     * @tc.level     : Level 3
1271     */
1272    it('testFontSetAndIsEmbeddedBitmapsNull' , DEFAULT , () => {
1273      const msg = 'testFontSetAndIsEmbeddedBitmapsNull';
1274      let font = new drawing.Font();
1275
1276      try {
1277        font.setEmbeddedBitmaps(null);
1278        console.info(msg + ' setEmbeddedBitmaps successed');
1279      } catch( e ) {
1280        console.info(msg + ` setEmbeddedBitmaps errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
1281        expect(e.code).assertEqual(401);
1282      }
1283
1284      try {
1285        font.setEmbeddedBitmaps(undefined);
1286        console.info(msg + ' setEmbeddedBitmaps succeeded');
1287      } catch( e ) {
1288        console.info(msg + ` setEmbeddedBitmaps errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
1289        expect(e.code).assertEqual(401);
1290      }
1291    });
1292
1293    /**
1294     * @tc.number    : SUB_BASIC_GRAPHICS_SPECIAL_API_TS_DRAWING_FONT_1903
1295     * @tc.name      : testFontSetAndIsEmbeddedBitmapsMultipleCalls
1296     * @tc.desc      : Test for testFontSetAndIsEmbeddedBitmapsMultipleCalls.
1297     * @tc.size      : SmallTest
1298     * @tc.type      : Function
1299     * @tc.level     : Level 3
1300     */
1301    it('testFontSetAndIsEmbeddedBitmapsMultipleCalls' , DEFAULT , () => {
1302      const msg = 'testFontSetAndIsEmbeddedBitmapsMultipleCalls';
1303      let font = new drawing.Font();
1304
1305      for ( let i = 0 ; i < 20 ; i ++ ) {
1306        try {
1307          const randomBoolean = Math.random() < 0.5;
1308          font.setEmbeddedBitmaps(randomBoolean);
1309          let embeddedBitmaps: boolean = font.isEmbeddedBitmaps();
1310          console.info(msg + ' setAndIsEmbeddedBitmaps successed,embeddedBitmaps:' + embeddedBitmaps);
1311        } catch( e ) {
1312          console.info(msg + ` setAndIsEmbeddedBitmaps errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
1313          expect().assertFail();
1314        }
1315      }
1316
1317      for ( let i = 0 ; i < 20 ; i ++ ) {
1318        try {
1319          const randomBoolean = Math.random() < 0.5;
1320          font.setEmbeddedBitmaps(randomBoolean);
1321          console.info(msg + ' setEmbeddedBitmaps successed');
1322        } catch( e ) {
1323          console.info(msg + ` setEmbeddedBitmaps errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
1324          expect().assertFail();
1325        }
1326      }
1327
1328      for ( let i = 0 ; i < 20 ; i ++ ) {
1329        try {
1330          let embeddedBitmaps: boolean = font.isEmbeddedBitmaps();
1331          console.info(msg + ' isEmbeddedBitmaps successed,embeddedBitmaps:' + embeddedBitmaps);
1332        } catch( e ) {
1333          console.info(msg + ` isEmbeddedBitmaps errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
1334          expect().assertFail();
1335        }
1336      }
1337    });
1338
1339    /**
1340     * @tc.number    : SUB_BASIC_GRAPHICS_SPECIAL_API_TS_DRAWING_FONT_1904
1341     * @tc.name      : testFontGetTextPath
1342     * @tc.desc      : Test for testFontGetTextPathForCharacterNormal1
1343     * @tc.size      : SmallTest
1344     * @tc.type      : Function
1345     * @tc.level     : Level 0
1346     */
1347    it('testFontGetTextPathForCharacterNormal1' , DEFAULT , () => {
1348      const msg = 'testFontGetTextPathForCharacterNormal1';
1349      let font = new drawing.Font();
1350      let myString: string = "Hello, TypeScript!";
1351      let path: drawing.Path | null = null;
1352      try {
1353        path = font.getTextPath(myString, buffer.from(myString).length, 0, 200);
1354        expect(path).not().assertNull();
1355        expect(path.getLength(false)).assertLarger(0);
1356        console.info(msg + ' getTextPath successed');
1357      } catch(e) {
1358        console.info(msg + ' getTextPath failed');
1359        expect().assertFail();
1360      }
1361    });
1362
1363    /**
1364     * @tc.number    : SUB_BASIC_GRAPHICS_SPECIAL_API_TS_DRAWING_FONT_1905
1365     * @tc.name      : testFontGetTextPath
1366     * @tc.desc      : Test for testFontGetTextPathForCharacterNormal2
1367     * @tc.size      : SmallTest
1368     * @tc.type      : Function
1369     * @tc.level     : Level 0
1370     */
1371    it('testFontGetTextPathForCharacterNormal2' , DEFAULT , () => {
1372      const msg = 'testFontGetTextPathForCharacterNormal2';
1373      let font = new drawing.Font();
1374      try {
1375        let myString: string = " ";
1376        let path = font.getTextPath(myString, buffer.from(myString).length, 0, 200);
1377        expect(path).not().assertNull();
1378        expect(path.getLength(false) == 0).assertTrue();
1379        console.info(msg + ' GetTextPath successed,path length:' + path.getLength(false));
1380      } catch( e ) {
1381        console.info(msg + ` GetTextPath errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
1382        expect().assertFail();
1383      }
1384    });
1385
1386    /**
1387     * @tc.number    : SUB_BASIC_GRAPHICS_SPECIAL_API_TS_DRAWING_FONT_1906
1388     * @tc.name      : testFontGetTextPath
1389     * @tc.desc      : Test for testFontGetTextPathForCharacterNormal3
1390     * @tc.size      : SmallTest
1391     * @tc.type      : Function
1392     * @tc.level     : Level 0
1393     */
1394    it('testFontGetTextPathForCharacterNormal3' , DEFAULT , () => {
1395      const msg = 'testFontGetTextPathForCharacterNormal3';
1396      let font = new drawing.Font();
1397      try {
1398        let myString: string = "Hello, TypeScript!";
1399        let path = font.getTextPath(myString, buffer.from(myString).length, -1, -1);
1400        expect(path).not().assertNull();
1401        console.info(msg + ' GetTextPath successed');
1402      } catch( e ) {
1403        console.info(msg + ` GetTextPath errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
1404        expect().assertFail();
1405      }
1406    });
1407
1408    /**
1409     * @tc.number    : SUB_BASIC_GRAPHICS_SPECIAL_API_TS_DRAWING_FONT_1907
1410     * @tc.name      : testFontGetTextPath
1411     * @tc.desc      : Test for testFontGetTextPathForCharacterNormal4
1412     * @tc.size      : SmallTest
1413     * @tc.type      : Function
1414     * @tc.level     : Level 0
1415     */
1416    it('testFontGetTextPathForCharacterNormal4' , DEFAULT , () => {
1417      const msg = 'testFontGetTextPathForCharacterNormal4';
1418      let font = new drawing.Font();
1419      try {
1420        let myString: string = "Hello, TypeScript!";
1421        let path = font.getTextPath(myString, buffer.from(myString).length, 0, 200);
1422        expect(path).not().assertNull();
1423        expect(path.getLength(false)).assertEqual(46.921875);
1424        console.info(msg + ' GetTextPath successed');
1425      } catch( e ) {
1426        console.info(msg + ` GetTextPath errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
1427        expect().assertFail();
1428      }
1429    });
1430
1431    /**
1432     * @tc.number    : SUB_BASIC_GRAPHICS_SPECIAL_API_TS_DRAWING_FONT_1907
1433     * @tc.name      : testFontGetTextPath
1434     * @tc.desc      : Test for testFontGetTextPathParameterError1
1435     * @tc.size      : SmallTest
1436     * @tc.type      : Function
1437     * @tc.level     : Level 0
1438     */
1439    it('testFontGetTextPathParameterError1' , DEFAULT , () => {
1440      const msg = 'testFontGetTextPathParameterError1';
1441      let font = new drawing.Font();
1442      let myString: string = "Hello, TypeScript!";
1443      try {
1444        font.getTextPath(null, buffer.from(myString).length, -1, -1);
1445        expect().assertFail();
1446      } catch( e ) {
1447        console.info(msg + ` GetTextPath errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
1448        expect().not().assertFail();
1449      }
1450
1451      try {
1452        font.getTextPath(undefined, buffer.from(myString).length, -1, -1);
1453        expect().assertFail();
1454      } catch( e ) {
1455        console.info(msg + ` GetTextPath errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
1456        expect().not().assertFail();
1457      }
1458    });
1459
1460    /**
1461     * @tc.number    : SUB_BASIC_GRAPHICS_SPECIAL_API_TS_DRAWING_FONT_1908
1462     * @tc.name      : testFontGetTextPath
1463     * @tc.desc      : Test for testFontGetTextPathParameterError2
1464     * @tc.size      : SmallTest
1465     * @tc.type      : Function
1466     * @tc.level     : Level 0
1467     */
1468    it('testFontGetTextPathParameterError2' , DEFAULT , () => {
1469      const msg = 'testFontGetTextPathParameterError2';
1470      let font = new drawing.Font();
1471      let myString: string = "Hello, TypeScript!";
1472      try {
1473        font.getTextPath(myString, null, -1, -1);
1474        expect().assertFail();
1475      } catch( e ) {
1476        console.info(msg + ` GetTextPath errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
1477        expect().not().assertFail();
1478      }
1479
1480      try {
1481        font.getTextPath(myString, undefined, -1, -1);
1482        expect().assertFail();
1483      } catch( e ) {
1484        console.info(msg + ` GetTextPath errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
1485        expect().not().assertFail();
1486      }
1487    });
1488
1489    /**
1490     * @tc.number    : SUB_BASIC_GRAPHICS_SPECIAL_API_TS_DRAWING_FONT_1909
1491     * @tc.name      : testFontGetTextPath
1492     * @tc.desc      : Test for testFontGetTextPathParameterError3
1493     * @tc.size      : SmallTest
1494     * @tc.type      : Function
1495     * @tc.level     : Level 0
1496     */
1497    it('testFontGetTextPathParameterError3' , DEFAULT , () => {
1498      const msg = 'testFontGetTextPathParameterError3';
1499      let font = new drawing.Font();
1500      let myString: string = "Hello, TypeScript!";
1501      try {
1502        font.getTextPath(myString, buffer.from(myString).length, null, -1);
1503        expect().assertFail();
1504      } catch( e ) {
1505        console.info(msg + ` GetTextPath errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
1506        expect().not().assertFail();
1507      }
1508
1509      try {
1510        font.getTextPath(myString, buffer.from(myString).length, undefined, -1);
1511        expect().assertFail();
1512      } catch( e ) {
1513        console.info(msg + ` GetTextPath errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
1514        expect().not().assertFail();
1515      }
1516    });
1517
1518    /**
1519     * @tc.number    : SUB_BASIC_GRAPHICS_SPECIAL_API_TS_DRAWING_FONT_1910
1520     * @tc.name      : testFontGetTextPath
1521     * @tc.desc      : Test for testFontGetTextPathParameterError4
1522     * @tc.size      : SmallTest
1523     * @tc.type      : Function
1524     * @tc.level     : Level 0
1525     */
1526    it('testFontGetTextPathParameterError4' , DEFAULT , () => {
1527      const msg = 'testFontGetTextPathParameterError4';
1528      let font = new drawing.Font();
1529      let myString: string = "Hello, TypeScript!";
1530      try {
1531        font.getTextPath(myString, buffer.from(myString).length, 0, null);
1532        expect().assertFail();
1533      } catch( e ) {
1534        console.info(msg + ` GetTextPath errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
1535        expect().not().assertFail();
1536      }
1537
1538      try {
1539        font.getTextPath(myString, buffer.from(myString).length, 0, undefined);
1540        expect().assertFail();
1541      } catch( e ) {
1542        console.info(msg + ` GetTextPath errorCode is:  ${ e.code } + errormsg is: ${ e.message }`);
1543        expect().not().assertFail();
1544      }
1545    });
1546
1547  });
1548}