fontservices/textbase/tgdi/TGlyphSel.cpp
author hgs
Thu, 23 Sep 2010 12:50:02 +0800
changeset 64 f66674566702
parent 45 662fa7de7023
permissions -rw-r--r--
201033_08
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
45
662fa7de7023 201024_05
hgs
parents:
diff changeset
     1
// Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
662fa7de7023 201024_05
hgs
parents:
diff changeset
     2
// All rights reserved.
662fa7de7023 201024_05
hgs
parents:
diff changeset
     3
// This component and the accompanying materials are made available
662fa7de7023 201024_05
hgs
parents:
diff changeset
     4
// under the terms of "Eclipse Public License v1.0"
662fa7de7023 201024_05
hgs
parents:
diff changeset
     5
// which accompanies this distribution, and is available
662fa7de7023 201024_05
hgs
parents:
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
662fa7de7023 201024_05
hgs
parents:
diff changeset
     7
//
662fa7de7023 201024_05
hgs
parents:
diff changeset
     8
// Initial Contributors:
662fa7de7023 201024_05
hgs
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
662fa7de7023 201024_05
hgs
parents:
diff changeset
    10
//
662fa7de7023 201024_05
hgs
parents:
diff changeset
    11
// Contributors:
662fa7de7023 201024_05
hgs
parents:
diff changeset
    12
//
662fa7de7023 201024_05
hgs
parents:
diff changeset
    13
// Description:
662fa7de7023 201024_05
hgs
parents:
diff changeset
    14
// This is a unit test module which defines the test code that 
662fa7de7023 201024_05
hgs
parents:
diff changeset
    15
// exercise CFont::GetCharacterPosition() functionality.
662fa7de7023 201024_05
hgs
parents:
diff changeset
    16
// 
662fa7de7023 201024_05
hgs
parents:
diff changeset
    17
//
662fa7de7023 201024_05
hgs
parents:
diff changeset
    18
662fa7de7023 201024_05
hgs
parents:
diff changeset
    19
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
    20
 @file
662fa7de7023 201024_05
hgs
parents:
diff changeset
    21
 @test
662fa7de7023 201024_05
hgs
parents:
diff changeset
    22
 @internalComponent
662fa7de7023 201024_05
hgs
parents:
diff changeset
    23
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
    24
662fa7de7023 201024_05
hgs
parents:
diff changeset
    25
662fa7de7023 201024_05
hgs
parents:
diff changeset
    26
//
662fa7de7023 201024_05
hgs
parents:
diff changeset
    27
// -- INCLUDE FILES ---------------------------------------------------------
662fa7de7023 201024_05
hgs
parents:
diff changeset
    28
//
662fa7de7023 201024_05
hgs
parents:
diff changeset
    29
662fa7de7023 201024_05
hgs
parents:
diff changeset
    30
662fa7de7023 201024_05
hgs
parents:
diff changeset
    31
#include <e32std.h>
662fa7de7023 201024_05
hgs
parents:
diff changeset
    32
#include <biditext.h>
662fa7de7023 201024_05
hgs
parents:
diff changeset
    33
#include <bidi.h>
662fa7de7023 201024_05
hgs
parents:
diff changeset
    34
#include <linebreak.h>
662fa7de7023 201024_05
hgs
parents:
diff changeset
    35
#include <bidivisual.h>
662fa7de7023 201024_05
hgs
parents:
diff changeset
    36
#include "GlyphSel.h"
662fa7de7023 201024_05
hgs
parents:
diff changeset
    37
#include "TGlyphSel.h"
662fa7de7023 201024_05
hgs
parents:
diff changeset
    38
#include <graphics/openfontconstants.h>
662fa7de7023 201024_05
hgs
parents:
diff changeset
    39
#include <graphics/openfontrasterizer.h>
662fa7de7023 201024_05
hgs
parents:
diff changeset
    40
662fa7de7023 201024_05
hgs
parents:
diff changeset
    41
662fa7de7023 201024_05
hgs
parents:
diff changeset
    42
//
662fa7de7023 201024_05
hgs
parents:
diff changeset
    43
// -- CONSTANTS -------------------------------------------------------------
662fa7de7023 201024_05
hgs
parents:
diff changeset
    44
//
662fa7de7023 201024_05
hgs
parents:
diff changeset
    45
662fa7de7023 201024_05
hgs
parents:
diff changeset
    46
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
    47
 This define when set introduces a delay to start up to allow Glowcode to
662fa7de7023 201024_05
hgs
parents:
diff changeset
    48
 be set up to collect statistics.
662fa7de7023 201024_05
hgs
parents:
diff changeset
    49
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
    50
//#define _GLOWCODE_LAUNCH_DELAY 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
    51
662fa7de7023 201024_05
hgs
parents:
diff changeset
    52
662fa7de7023 201024_05
hgs
parents:
diff changeset
    53
/** RTest object for unit test output */
662fa7de7023 201024_05
hgs
parents:
diff changeset
    54
//RTest TEST(_L("TGlyphSel - CFont Glyph Selection"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
    55
662fa7de7023 201024_05
hgs
parents:
diff changeset
    56
/** Thread name for test cases involving a new thread. */
662fa7de7023 201024_05
hgs
parents:
diff changeset
    57
_LIT(KThread2NameFirst, "GlyphSelPanicTest_First");
662fa7de7023 201024_05
hgs
parents:
diff changeset
    58
_LIT(KThread2NameSecond, "GlyphSelPanicTest_Second");
662fa7de7023 201024_05
hgs
parents:
diff changeset
    59
662fa7de7023 201024_05
hgs
parents:
diff changeset
    60
/*Beginning of Indic language font file constants declaration*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
    61
662fa7de7023 201024_05
hgs
parents:
diff changeset
    62
_LIT16(KTestHindiFontFile, "C:\\TNR_Dev_OT.ttf");
662fa7de7023 201024_05
hgs
parents:
diff changeset
    63
_LIT16(KTestHindiFontFaceName, "Devanagari OT Eval");
662fa7de7023 201024_05
hgs
parents:
diff changeset
    64
662fa7de7023 201024_05
hgs
parents:
diff changeset
    65
//_LIT16(KTestIndicFontFile, "C:\\s60ssb_v435.ttf");
662fa7de7023 201024_05
hgs
parents:
diff changeset
    66
_LIT16(KTestIndicFontFile, "C:\\s60ssb_v500.ttf");
662fa7de7023 201024_05
hgs
parents:
diff changeset
    67
_LIT16(KTestIndicFontFaceName, "Series 60 Sans");
662fa7de7023 201024_05
hgs
parents:
diff changeset
    68
662fa7de7023 201024_05
hgs
parents:
diff changeset
    69
//_LIT16(KTestTeluguFontFile, "C:\\s60ssb_v500.ttf");
662fa7de7023 201024_05
hgs
parents:
diff changeset
    70
//_LIT16(KTestTeluguFontFaceName, "Series 60 Sans");
662fa7de7023 201024_05
hgs
parents:
diff changeset
    71
662fa7de7023 201024_05
hgs
parents:
diff changeset
    72
_LIT16(KTestGB18030FontFile, "C:\\TestExtB.ttf");
662fa7de7023 201024_05
hgs
parents:
diff changeset
    73
_LIT16(KTestGB18030FontFaceName, "Test Font for CJK ExtB");
662fa7de7023 201024_05
hgs
parents:
diff changeset
    74
662fa7de7023 201024_05
hgs
parents:
diff changeset
    75
/*End of Indic language font file constants declaration*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
    76
//
662fa7de7023 201024_05
hgs
parents:
diff changeset
    77
// -- THAI TEST DATA --------------------------------------------------------
662fa7de7023 201024_05
hgs
parents:
diff changeset
    78
//
662fa7de7023 201024_05
hgs
parents:
diff changeset
    79
662fa7de7023 201024_05
hgs
parents:
diff changeset
    80
662fa7de7023 201024_05
hgs
parents:
diff changeset
    81
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
    82
 An array of Thai characters each of which is individually passed into
662fa7de7023 201024_05
hgs
parents:
diff changeset
    83
 GetCharacterPosition() for testing.
662fa7de7023 201024_05
hgs
parents:
diff changeset
    84
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
    85
LOCAL_D const TText16 Thai_SimpleChars[] = {
662fa7de7023 201024_05
hgs
parents:
diff changeset
    86
	 // Digits test 0..9
662fa7de7023 201024_05
hgs
parents:
diff changeset
    87
	0x0E50, 0x0E51, 0x0E52, 0x0E53, 0x0E54,
662fa7de7023 201024_05
hgs
parents:
diff changeset
    88
	0x0E55, 0x0E56, 0x0E57, 0x0E58, 0x0E59,
662fa7de7023 201024_05
hgs
parents:
diff changeset
    89
662fa7de7023 201024_05
hgs
parents:
diff changeset
    90
	// Consonants
662fa7de7023 201024_05
hgs
parents:
diff changeset
    91
	0x0E01, 0x0E02, 0x0E03, 0x0E04, 0x0E05, 0x0E06, 0x0E07, 
662fa7de7023 201024_05
hgs
parents:
diff changeset
    92
	0x0E08, 0x0E09, 0x0E0A, 0x0E0B, 0x0E0C, 0x0E0D, 0x0E0E, 0x0E0F, 
662fa7de7023 201024_05
hgs
parents:
diff changeset
    93
	0x0E10, 0x0E11, 0x0E12, 0x0E13, 0x0E14, 0x0E15, 0x0E16, 0x0E17, 
662fa7de7023 201024_05
hgs
parents:
diff changeset
    94
	0x0E18, 0x0E19, 0x0E1A, 0x0E1B, 0x0E1C, 0x0E1D, 0x0E1E, 0x0E1F, 
662fa7de7023 201024_05
hgs
parents:
diff changeset
    95
	0x0E20, 0x0E21, 0x0E22, 0x0E23, 0x0E24, 0x0E25, 0x0E26, 0x0E27, 
662fa7de7023 201024_05
hgs
parents:
diff changeset
    96
	0x0E28, 0x0E29, 0x0E2A, 0x0E2B, 0x0E2C, 0x0E2D, 0x0E2E, 
662fa7de7023 201024_05
hgs
parents:
diff changeset
    97
662fa7de7023 201024_05
hgs
parents:
diff changeset
    98
	// Independent vowels
662fa7de7023 201024_05
hgs
parents:
diff changeset
    99
	0x0E30, 0x0E32, // 0x0E33, Sara Am decomposed, not simple
662fa7de7023 201024_05
hgs
parents:
diff changeset
   100
	0x0E40, 0x0E41, 0x0E42, 0x0E43, 0x0E44, 
662fa7de7023 201024_05
hgs
parents:
diff changeset
   101
662fa7de7023 201024_05
hgs
parents:
diff changeset
   102
	// Independent signs
662fa7de7023 201024_05
hgs
parents:
diff changeset
   103
	0x0E2F, 0x0E3F, 0x0E45, 0x0E46, 0x0E4F, 0x0E5A, 0x0E5B, 
662fa7de7023 201024_05
hgs
parents:
diff changeset
   104
662fa7de7023 201024_05
hgs
parents:
diff changeset
   105
	// Array end
662fa7de7023 201024_05
hgs
parents:
diff changeset
   106
	0xFFFF,
662fa7de7023 201024_05
hgs
parents:
diff changeset
   107
	};
662fa7de7023 201024_05
hgs
parents:
diff changeset
   108
662fa7de7023 201024_05
hgs
parents:
diff changeset
   109
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
   110
 Data structure used to hold the in and out data of one invoke
662fa7de7023 201024_05
hgs
parents:
diff changeset
   111
 of the CFont::GetCharacterPosition() API.
662fa7de7023 201024_05
hgs
parents:
diff changeset
   112
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
   113
struct TTestInput_PositionParam
662fa7de7023 201024_05
hgs
parents:
diff changeset
   114
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
   115
	TInt	iTextLen;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   116
	TText16	iText[4];
662fa7de7023 201024_05
hgs
parents:
diff changeset
   117
	TInt	iPosInText;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   118
	TInt	oPosInText;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   119
	TInt	oOutputLen;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   120
	TText16	oOutput[CFont::TPositionParam::EMaxOutputGlyphs];
662fa7de7023 201024_05
hgs
parents:
diff changeset
   121
	};
662fa7de7023 201024_05
hgs
parents:
diff changeset
   122
662fa7de7023 201024_05
hgs
parents:
diff changeset
   123
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
   124
 This array of structs is used in the test routine 
662fa7de7023 201024_05
hgs
parents:
diff changeset
   125
 CTGlyphSelection::TestThai_ValidGlyphClusters() for verifying
662fa7de7023 201024_05
hgs
parents:
diff changeset
   126
 GetCharacterPosition() constructs Thai PUA glyph clusters correctly.
662fa7de7023 201024_05
hgs
parents:
diff changeset
   127
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
   128
LOCAL_D const TTestInput_PositionParam Thai_ValidGlyphClusters[] = {
662fa7de7023 201024_05
hgs
parents:
diff changeset
   129
//    --INPUT----------------			--OUTPUT----------------------
662fa7de7023 201024_05
hgs
parents:
diff changeset
   130
662fa7de7023 201024_05
hgs
parents:
diff changeset
   131
//  TEST A1..A8 handled in Thai_SimpleChars table.
662fa7de7023 201024_05
hgs
parents:
diff changeset
   132
662fa7de7023 201024_05
hgs
parents:
diff changeset
   133
//0.TEST A9 - Decomposed SARA AM
662fa7de7023 201024_05
hgs
parents:
diff changeset
   134
	{ 2, {0x0E01, 0x0E33}, 1,			2, 1, {0x0E33}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   135
	{ 2, {0x0E1B, 0x0E33}, 1,			2, 2, {0xF711, 0x0E32}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   136
	{ 2, {0x0E41, 0x0E33}, 1,			2, 2, {KUnicodeDottedCircle, 0x0E33}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   137
	{ 1, {0x0E33}, 0,					1, 2, {KUnicodeDottedCircle, 0x0E33}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   138
	{ 3, {0x0E19, 0x0E49, 0x0E33}, 0,	3, 4, {0x0E19, 0x0E4D, 0x0E49, 0x0E32}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   139
662fa7de7023 201024_05
hgs
parents:
diff changeset
   140
//5.TEST A9.1 - SARA AM exlcuded from cluster when vowel present
662fa7de7023 201024_05
hgs
parents:
diff changeset
   141
	{ 3, {0x0E19, 0x0E35, 0x0E33}, 0,           2, 2, {0x0E19, 0x0E35}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   142
	{ 3, {0x0E19, 0x0E39, 0x0E33}, 0,           2, 2, {0x0E19, 0x0E39}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   143
	{ 4, {0x0E19, 0x0E35, 0x0E48, 0x0E33}, 0,   3, 3, {0x0E19, 0x0E35, 0x0E48}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   144
662fa7de7023 201024_05
hgs
parents:
diff changeset
   145
//8.TEST B1 - Normal right aligned vowel/sign above short consonant
662fa7de7023 201024_05
hgs
parents:
diff changeset
   146
	{ 2, {0x0E04, 0x0E35}, 0,			2, 2, {0x0E04, 0x0E35}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   147
	{ 2, {0x0E01, 0x0E4D}, 0,			2, 2, {0x0E01, 0x0E4D}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   148
662fa7de7023 201024_05
hgs
parents:
diff changeset
   149
//10.TEST B2 - Left aligned vowel/sign above tall consonant
662fa7de7023 201024_05
hgs
parents:
diff changeset
   150
	{ 2, {0x0E1B, 0x0E34}, 0,			2, 2, {0x0E1B, 0xF701}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   151
	{ 2, {0x0E1D, 0x0E35}, 0,			2, 2, {0x0E1D, 0xF702}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   152
	{ 2, {0x0E1F, 0x0E36}, 0,			2, 2, {0x0E1F, 0xF703}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   153
	{ 2, {0x0E2C, 0x0E37}, 0,			2, 2, {0x0E2C, 0xF704}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   154
	{ 2, {0x0E1B, 0x0E31}, 0,			2, 2, {0x0E1B, 0xF710}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   155
	{ 2, {0x0E1D, 0x0E4D}, 0,			2, 2, {0x0E1D, 0xF711}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   156
	{ 2, {0x0E1F, 0x0E47}, 0,			2, 2, {0x0E1F, 0xF712}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   157
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
   158
//17.TEST B3 - Normal right aligned vowel below short consonant
662fa7de7023 201024_05
hgs
parents:
diff changeset
   159
	{ 2, {0x0E2C, 0x0E3A}, 0,			2, 2, {0x0E2C, 0x0E3A}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   160
	{ 2, {0x0E0C, 0x0E38}, 0,			2, 2, {0x0E0C, 0x0E38}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   161
662fa7de7023 201024_05
hgs
parents:
diff changeset
   162
//19.TEST B4 - Vowel below consonant with joint decender 
662fa7de7023 201024_05
hgs
parents:
diff changeset
   163
	{ 2, {0x0E0E, 0x0E38}, 0,			2, 2, {0x0E0E, 0xF718}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   164
	{ 2, {0x0E0F, 0x0E39}, 0,			2, 2, {0x0E0F, 0xF719}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   165
	{ 2, {0x0E0F, 0x0E3A}, 0,			2, 2, {0x0E0F, 0xF71A}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   166
	{ 2, {0x0E24, 0x0E38}, 0,			2, 2, {0x0E24, 0xF718}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   167
	{ 2, {0x0E26, 0x0E39}, 0,			2, 2, {0x0E26, 0xF719}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   168
662fa7de7023 201024_05
hgs
parents:
diff changeset
   169
//24.TEST B5 - Vowel below consonant with disjoint decender
662fa7de7023 201024_05
hgs
parents:
diff changeset
   170
	{ 2, {0x0E10, 0x0E38}, 0,			2, 2, {0xF700, 0x0E38}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   171
	{ 2, {0x0E0D, 0x0E39}, 0,			2, 2, {0xF70F, 0x0E39}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   172
	{ 2, {0x0E10, 0x0E3A}, 0,			2, 2, {0xF700, 0x0E3A}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   173
 
662fa7de7023 201024_05
hgs
parents:
diff changeset
   174
//27.TEST C1 - Tone mark/sign above short consonant
662fa7de7023 201024_05
hgs
parents:
diff changeset
   175
	{ 2, {0x0E14, 0x0E48}, 0,			2, 2, {0x0E14, 0xF70A}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   176
	{ 2, {0x0E16, 0x0E49}, 0,			2, 2, {0x0E16, 0xF70B}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   177
	{ 2, {0x0E17, 0x0E4A}, 0,			2, 2, {0x0E17, 0xF70C}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   178
	{ 2, {0x0E19, 0x0E4B}, 0,			2, 2, {0x0E19, 0xF70D}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   179
	{ 2, {0x0E20, 0x0E4C}, 0,			2, 2, {0x0E20, 0xF70E}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   180
	// with lower vowel char in between the two?
662fa7de7023 201024_05
hgs
parents:
diff changeset
   181
	{ 3, {0x0E16, 0x0E39, 0x0E49}, 0,	3, 3, {0x0E16, 0x0E39, 0xF70B}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   182
662fa7de7023 201024_05
hgs
parents:
diff changeset
   183
//33.TEST C2 - Upper Vowel & tone makr/sign above short consonant
662fa7de7023 201024_05
hgs
parents:
diff changeset
   184
	{ 3, {0x0E01, 0x0E34, 0x0E48}, 0,	3, 3, {0x0E01, 0x0E34, 0x0E48}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   185
	{ 3, {0x0E02, 0x0E35, 0x0E49}, 0,	3, 3, {0x0E02, 0x0E35, 0x0E49}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   186
	{ 3, {0x0E04, 0x0E36, 0x0E4A}, 0,	3, 3, {0x0E04, 0x0E36, 0x0E4A}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   187
	{ 3, {0x0E08, 0x0E37, 0x0E4B}, 0,	3, 3, {0x0E08, 0x0E37, 0x0E4B}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   188
	{ 3, {0x0E09, 0x0E34, 0x0E4C}, 0,	3, 3, {0x0E09, 0x0E34, 0x0E4C}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   189
	{ 3, {0x0E11, 0x0E47, 0x0E4C}, 0,	2, 2, {0x0E11, 0x0E47}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   190
662fa7de7023 201024_05
hgs
parents:
diff changeset
   191
//39.TEST C2.1 - Lower Vowel & tone makr/sign above short consonant
662fa7de7023 201024_05
hgs
parents:
diff changeset
   192
	{ 3, {0x0E01, 0x0E38, 0x0E48}, 0,	3, 3, {0x0E01, 0x0E38, 0xF70A}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   193
	{ 3, {0x0E02, 0x0E39, 0x0E49}, 0,	3, 3, {0x0E02, 0x0E39, 0xF70B}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   194
	{ 3, {0x0E04, 0x0E38, 0x0E4A}, 0,	3, 3, {0x0E04, 0x0E38, 0xF70C}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   195
	{ 3, {0x0E08, 0x0E39, 0x0E4B}, 0,	3, 3, {0x0E08, 0x0E39, 0xF70D}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   196
	{ 3, {0x0E09, 0x0E38, 0x0E4C}, 0,	3, 3, {0x0E09, 0x0E38, 0xF70E}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   197
	{ 3, {0x0E09, 0x0E39, 0x0E4C}, 0,	2, 2, {0x0E09, 0x0E39}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   198
662fa7de7023 201024_05
hgs
parents:
diff changeset
   199
//45.TEST C3 - Left aligned tone mark/sign above tall consonant
662fa7de7023 201024_05
hgs
parents:
diff changeset
   200
	{ 2, {0x0E1B, 0x0E48}, 0,			2, 2, {0x0E1B, 0xF705}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   201
	{ 2, {0x0E1D, 0x0E49}, 0,			2, 2, {0x0E1D, 0xF706}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   202
	{ 2, {0x0E1F, 0x0E4A}, 0,			2, 2, {0x0E1F, 0xF707}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   203
	{ 2, {0x0E2C, 0x0E4B}, 0,			2, 2, {0x0E2C, 0xF708}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   204
	{ 2, {0x0E1B, 0x0E4C}, 0,			2, 2, {0x0E1B, 0xF709}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   205
662fa7de7023 201024_05
hgs
parents:
diff changeset
   206
//50.TEST C4 - Left aligned vowel & tone mark/sign above tall consonant
662fa7de7023 201024_05
hgs
parents:
diff changeset
   207
	{ 3, {0x0E1B, 0x0E34, 0x0E48}, 0,	3, 3, {0x0E1B, 0xF701, 0xF713}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   208
	{ 3, {0x0E1D, 0x0E35, 0x0E49}, 0,	3, 3, {0x0E1D, 0xF702, 0xF714}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   209
	{ 3, {0x0E1F, 0x0E36, 0x0E4A}, 0,	3, 3, {0x0E1F, 0xF703, 0xF715}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   210
	{ 3, {0x0E2C, 0x0E37, 0x0E4B}, 0,	3, 3, {0x0E2C, 0xF704, 0xF716}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   211
	{ 3, {0x0E1B, 0x0E34, 0x0E4C}, 0,	3, 3, {0x0E1B, 0xF701, 0xF717}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   212
662fa7de7023 201024_05
hgs
parents:
diff changeset
   213
//55. INC043221 - Tone marks are not readable with tall consonants and Sara Am
662fa7de7023 201024_05
hgs
parents:
diff changeset
   214
// Test that the nikhahit part of a sara am causes the same effects as top
662fa7de7023 201024_05
hgs
parents:
diff changeset
   215
// vowels.
662fa7de7023 201024_05
hgs
parents:
diff changeset
   216
// Test 4 already does one suitable test.
662fa7de7023 201024_05
hgs
parents:
diff changeset
   217
	{ 3, {0x0E1B, 0x0E49, 0x0E33}, 0,	3, 4, {0x0E1B, 0xF711, 0xF714, 0x0E32}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   218
662fa7de7023 201024_05
hgs
parents:
diff changeset
   219
//56. INC127996 - Tone mark/diacritic displayed incorrectly when combinded 
662fa7de7023 201024_05
hgs
parents:
diff changeset
   220
//	with long tail consonanat and below vowel. Test that in context 
662fa7de7023 201024_05
hgs
parents:
diff changeset
   221
//	'short consonanat + below vowel + Tone Mark/diacritic', mark/diacritic
662fa7de7023 201024_05
hgs
parents:
diff changeset
   222
//	can be replaced by corresonding PUA code.
662fa7de7023 201024_05
hgs
parents:
diff changeset
   223
	{ 3, {0x0E0D, 0x0E39, 0x0E49}, 0, 	3, 3, {0xF70F, 0x0E39, 0xF70B}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   224
	{ 3, {0x0E0E, 0x0E38, 0x0E48}, 0,	3, 3, {0x0E0E, 0xF718, 0xF70A}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   225
	{ 3, {0x0E0F, 0x0E39, 0x0E4A}, 0,	3, 3, {0x0E0F, 0xF719, 0xF70C}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   226
	{ 3, {0x0E26, 0x0E39, 0x0E4B}, 0,	3, 3, {0x0E26, 0xF719, 0xF70D}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   227
	{ 3, {0x0E24, 0x0E38, 0x0E49}, 0,	3, 3, {0x0E24, 0xF718, 0xF70B}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   228
	{ 3, {0x0E10, 0x0E38, 0x0E4C}, 0,	3, 3, {0xF700, 0x0E38, 0xF70E}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   229
662fa7de7023 201024_05
hgs
parents:
diff changeset
   230
//62.TABLE END
662fa7de7023 201024_05
hgs
parents:
diff changeset
   231
	{ -1, {0}, -1,						-1, 0, {0}}
662fa7de7023 201024_05
hgs
parents:
diff changeset
   232
	};
662fa7de7023 201024_05
hgs
parents:
diff changeset
   233
662fa7de7023 201024_05
hgs
parents:
diff changeset
   234
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
   235
 Data structure used to hold the in and out data of two invokes
662fa7de7023 201024_05
hgs
parents:
diff changeset
   236
 of the CFont::GetCharacterPosition() API.
662fa7de7023 201024_05
hgs
parents:
diff changeset
   237
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
   238
struct TTestInput_Invoke
662fa7de7023 201024_05
hgs
parents:
diff changeset
   239
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
   240
	TInt                iPosInText;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   241
	TInt				oPosInText;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   242
	TInt				oOutputLen;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   243
	TText16				oOutput[CFont::TPositionParam::EMaxOutputGlyphs];
662fa7de7023 201024_05
hgs
parents:
diff changeset
   244
	};
662fa7de7023 201024_05
hgs
parents:
diff changeset
   245
662fa7de7023 201024_05
hgs
parents:
diff changeset
   246
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
   247
 Data structure used to hold the in and out data of two invokes
662fa7de7023 201024_05
hgs
parents:
diff changeset
   248
 of the CFont::GetCharacterPosition() API.
662fa7de7023 201024_05
hgs
parents:
diff changeset
   249
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
   250
struct TTestInput_PositionParam2
662fa7de7023 201024_05
hgs
parents:
diff changeset
   251
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
   252
	TInt				iTextLen;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   253
	TText16				iText[4];
662fa7de7023 201024_05
hgs
parents:
diff changeset
   254
	TTestInput_Invoke   oOut[2];
662fa7de7023 201024_05
hgs
parents:
diff changeset
   255
	};
662fa7de7023 201024_05
hgs
parents:
diff changeset
   256
662fa7de7023 201024_05
hgs
parents:
diff changeset
   257
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
   258
 Data structure used to hold the in and out data of two invokes
662fa7de7023 201024_05
hgs
parents:
diff changeset
   259
 of the CFont::GetCharacterPosition() API.
662fa7de7023 201024_05
hgs
parents:
diff changeset
   260
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
   261
struct TTestInput_PositionParam6
662fa7de7023 201024_05
hgs
parents:
diff changeset
   262
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
   263
	TInt				iTextLen;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   264
	TText16				iText[6];
662fa7de7023 201024_05
hgs
parents:
diff changeset
   265
	TTestInput_Invoke   oOut[6];
662fa7de7023 201024_05
hgs
parents:
diff changeset
   266
	};
662fa7de7023 201024_05
hgs
parents:
diff changeset
   267
662fa7de7023 201024_05
hgs
parents:
diff changeset
   268
//	{-1, 1, 1, {0} } } indicate end of sequence
662fa7de7023 201024_05
hgs
parents:
diff changeset
   269
//	The most significant bit of glyph index is trimmed off when stored
662fa7de7023 201024_05
hgs
parents:
diff changeset
   270
LOCAL_D const TTestInput_PositionParam6 Indic_GurmukhiDigit[] = {
662fa7de7023 201024_05
hgs
parents:
diff changeset
   271
		{ 1, {0x0a66}, { {0, 1, 1, {0x12fe} }, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   272
		{ 1, {0x0a67}, { {0, 1, 1, {0x12ff} }, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   273
		{ 1, {0x0a68}, { {0, 1, 1, {0x1300} }, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   274
		{ 1, {0x0a69}, { {0, 1, 1, {0x1301} }, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   275
		{ 1, {0x0a6a}, { {0, 1, 1, {0x1302} }, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   276
		{ 1, {0x0a6b}, { {0, 1, 1, {0x1303} }, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   277
		{ 1, {0x0a6c}, { {0, 1, 1, {0x1304} }, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   278
		{ 1, {0x0a6d}, { {0, 1, 1, {0x1305} }, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   279
		{ 1, {0x0a6e}, { {0, 1, 1, {0x1306} }, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   280
		{ 1, {0x0a6f}, { {0, 1, 1, {0x1307} }, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   281
		//	Consonant + digit
662fa7de7023 201024_05
hgs
parents:
diff changeset
   282
		{ 2, {0x0a15, 0x0a66}, { {0, 1, 1, {0x12cd}}, {1, 2, 1, {0x12fe}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   283
		{ 2, {0x0a17, 0x0a67}, { {0, 1, 1, {0x12cf}}, {1, 2, 1, {0x12ff}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   284
		{ 2, {0x0a19, 0x0a68}, { {0, 1, 1, {0x12d1}}, {1, 2, 1, {0x1300}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   285
		{ 2, {0x0a25, 0x0a69}, { {0, 1, 1, {0x12dd}}, {1, 2, 1, {0x1301}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   286
		{ 2, {0x0a27, 0x0a6a}, { {0, 1, 1, {0x12df}}, {1, 2, 1, {0x1302}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   287
		{ 2, {0x0a28, 0x0a6b}, { {0, 1, 1, {0x12e0}}, {1, 2, 1, {0x1303}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   288
		{ 2, {0x0a29, 0x0a6c}, { {0, 1, 1, {0x0000}}, {1, 2, 1, {0x1304}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   289
		{ 2, {0x0a3a, 0x0a6d}, { {0, 1, 1, {0x0000}}, {1, 2, 1, {0x1305}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   290
		{ 2, {0x0a3b, 0x0a6e}, { {0, 1, 1, {0x0000}}, {1, 2, 1, {0x1306}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   291
		{ 2, {0x0a3c, 0x0a6f}, { {0, 1, 2, {0x058f, 0x12ee}}, {1, 2, 1, {0x1307}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   292
		//	Modifier + digit
662fa7de7023 201024_05
hgs
parents:
diff changeset
   293
		{ 2, {0x0a3e, 0x0a66}, { {0, 1, 2, {0x058f, 0x12ef}}, {1, 2, 1, {0x12fe}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   294
		{ 2, {0x0a3e, 0x0a67}, { {0, 1, 2, {0x058f, 0x12ef}}, {1, 2, 1, {0x12ff}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   295
		{ 2, {0x0a3e, 0x0a68}, { {0, 1, 2, {0x058f, 0x12ef}}, {1, 2, 1, {0x1300}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   296
		{ 2, {0x0a3e, 0x0a69}, { {0, 1, 2, {0x058f, 0x12ef}}, {1, 2, 1, {0x1301}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   297
		{ 2, {0x0a3e, 0x0a6a}, { {0, 1, 2, {0x058f, 0x12ef}}, {1, 2, 1, {0x1302}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   298
		{ 2, {0x0a3e, 0x0a6b}, { {0, 1, 2, {0x058f, 0x12ef}}, {1, 2, 1, {0x1303}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   299
		{ 2, {0x0a3e, 0x0a6c}, { {0, 1, 2, {0x058f, 0x12ef}}, {1, 2, 1, {0x1304}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   300
		{ 2, {0x0a3e, 0x0a6d}, { {0, 1, 2, {0x058f, 0x12ef}}, {1, 2, 1, {0x1305}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   301
		{ 2, {0x0a3e, 0x0a6e}, { {0, 1, 2, {0x058f, 0x12ef}}, {1, 2, 1, {0x1306}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   302
		{ 2, {0x0a3e, 0x0a6f}, { {0, 1, 2, {0x058f, 0x12ef}}, {1, 2, 1, {0x1307}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   303
		//	Vowel + digit
662fa7de7023 201024_05
hgs
parents:
diff changeset
   304
		{ 2, {0x0a73, 0x0a66}, { {0, 1, 1, {0x130b}}, {1, 2, 1, {0x12fe}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   305
		{ 2, {0x0a73, 0x0a67}, { {0, 1, 1, {0x130b}}, {1, 2, 1, {0x12ff}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   306
		{ 2, {0x0a73, 0x0a68}, { {0, 1, 1, {0x130b}}, {1, 2, 1, {0x1300}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   307
		{ 2, {0x0a73, 0x0a69}, { {0, 1, 1, {0x130b}}, {1, 2, 1, {0x1301}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   308
		{ 2, {0x0a73, 0x0a6a}, { {0, 1, 1, {0x130b}}, {1, 2, 1, {0x1302}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   309
		{ 2, {0x0a73, 0x0a6b}, { {0, 1, 1, {0x130b}}, {1, 2, 1, {0x1303}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   310
		{ 2, {0x0a73, 0x0a6c}, { {0, 1, 1, {0x130b}}, {1, 2, 1, {0x1304}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   311
		{ 2, {0x0a73, 0x0a6d}, { {0, 1, 1, {0x130b}}, {1, 2, 1, {0x1305}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   312
		{ 2, {0x0a73, 0x0a6e}, { {0, 1, 1, {0x130b}}, {1, 2, 1, {0x1306}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   313
		{ 2, {0x0a73, 0x0a6f}, { {0, 1, 1, {0x130b}}, {1, 2, 1, {0x1307}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   314
		//	Virama + digit
662fa7de7023 201024_05
hgs
parents:
diff changeset
   315
		{ 2, {0x0a4d, 0x0a66}, { {0, 1, 2, {0x058f, 0x12f8}}, {1, 2, 1, {0x12fe}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   316
		{ 2, {0x0a4d, 0x0a67}, { {0, 1, 2, {0x058f, 0x12f8}}, {1, 2, 1, {0x12ff}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   317
		{ 2, {0x0a4d, 0x0a68}, { {0, 1, 2, {0x058f, 0x12f8}}, {1, 2, 1, {0x1300}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   318
		{ 2, {0x0a4d, 0x0a69}, { {0, 1, 2, {0x058f, 0x12f8}}, {1, 2, 1, {0x1301}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   319
		{ 2, {0x0a4d, 0x0a6a}, { {0, 1, 2, {0x058f, 0x12f8}}, {1, 2, 1, {0x1302}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   320
		{ 2, {0x0a4d, 0x0a6b}, { {0, 1, 2, {0x058f, 0x12f8}}, {1, 2, 1, {0x1303}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   321
		{ 2, {0x0a4d, 0x0a6c}, { {0, 1, 2, {0x058f, 0x12f8}}, {1, 2, 1, {0x1304}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   322
		{ 2, {0x0a4d, 0x0a6d}, { {0, 1, 2, {0x058f, 0x12f8}}, {1, 2, 1, {0x1305}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   323
		{ 2, {0x0a4d, 0x0a6e}, { {0, 1, 2, {0x058f, 0x12f8}}, {1, 2, 1, {0x1306}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   324
		{ 2, {0x0a4d, 0x0a6f}, { {0, 1, 2, {0x058f, 0x12f8}}, {1, 2, 1, {0x1307}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   325
		//	Consonant + digit + Matra
662fa7de7023 201024_05
hgs
parents:
diff changeset
   326
		{ 3, {0x0a15, 0x0a66, 0x0a3e}, { {0, 1, 1, {0x12cd}}, {1, 2, 1, {0x12fe}}, {2, 3, 2, {0x058f, 0x12ef}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   327
		{ 3, {0x0a16, 0x0a67, 0x0a3e}, { {0, 1, 1, {0x12ce}}, {1, 2, 1, {0x12ff}}, {2, 3, 2, {0x058f, 0x12ef}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   328
		{ 3, {0x0a17, 0x0a68, 0x0a3e}, { {0, 1, 1, {0x12cf}}, {1, 2, 1, {0x1300}}, {2, 3, 2, {0x058f, 0x12ef}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   329
		{ 3, {0x0a18, 0x0a69, 0x0a3e}, { {0, 1, 1, {0x12d0}}, {1, 2, 1, {0x1301}}, {2, 3, 2, {0x058f, 0x12ef}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   330
		{ 3, {0x0a19, 0x0a6a, 0x0a3e}, { {0, 1, 1, {0x12d1}}, {1, 2, 1, {0x1302}}, {2, 3, 2, {0x058f, 0x12ef}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   331
		{ 3, {0x0a25, 0x0a6b, 0x0a3e}, { {0, 1, 1, {0x12dd}}, {1, 2, 1, {0x1303}}, {2, 3, 2, {0x058f, 0x12ef}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   332
		{ 3, {0x0a2a, 0x0a6c, 0x0a3e}, { {0, 1, 1, {0x12e1}}, {1, 2, 1, {0x1304}}, {2, 3, 2, {0x058f, 0x12ef}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   333
		{ 3, {0x0a2d, 0x0a6d, 0x0a3e}, { {0, 1, 1, {0x12e4}}, {1, 2, 1, {0x1305}}, {2, 3, 2, {0x058f, 0x12ef}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   334
		{ 3, {0x0a30, 0x0a6e, 0x0a3e}, { {0, 1, 1, {0x12e7}}, {1, 2, 1, {0x1306}}, {2, 3, 2, {0x058f, 0x12ef}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   335
		{ 3, {0x0a33, 0x0a6f, 0x0a3e}, { {0, 1, 1, {0x12e9}}, {1, 2, 1, {0x1307}}, {2, 3, 2, {0x058f, 0x12ef}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   336
		{ -1, {0}, -1,						-1, 0, {0}}
662fa7de7023 201024_05
hgs
parents:
diff changeset
   337
};
662fa7de7023 201024_05
hgs
parents:
diff changeset
   338
662fa7de7023 201024_05
hgs
parents:
diff changeset
   339
662fa7de7023 201024_05
hgs
parents:
diff changeset
   340
LOCAL_D const TTestInput_PositionParam6 Indic_MalayalamDigit[] = {
662fa7de7023 201024_05
hgs
parents:
diff changeset
   341
		{ 1, {0x0d66}, { {0, 1, 1, {0x123e} }, {-1, 1, 1, {0} } }  },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   342
		{ 1, {0x0d67}, { {0, 1, 1, {0x123f} }, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   343
		{ 1, {0x0d68}, { {0, 1, 1, {0x1240} }, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   344
		{ 1, {0x0d69}, { {0, 1, 1, {0x1241} }, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   345
		{ 1, {0x0d6a}, { {0, 1, 1, {0x1242} }, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   346
		{ 1, {0x0d6b}, { {0, 1, 1, {0x1243} }, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   347
		{ 1, {0x0d6c}, { {0, 1, 1, {0x1244} }, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   348
		{ 1, {0x0d6d}, { {0, 1, 1, {0x1245} }, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   349
		{ 1, {0x0d6e}, { {0, 1, 1, {0x1246} }, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   350
		{ 1, {0x0d6f}, { {0, 1, 1, {0x1247} }, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   351
		//	Consonant + digit
662fa7de7023 201024_05
hgs
parents:
diff changeset
   352
		{ 2, {0x0d15, 0x0d66}, { {0, 1, 1, {0x120a}}, {1, 2, 1, {0x123e}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   353
		{ 2, {0x0d15, 0x0d67}, { {0, 1, 1, {0x120a}}, {1, 2, 1, {0x123f}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   354
		{ 2, {0x0d17, 0x0d68}, { {0, 1, 1, {0x120c}}, {1, 2, 1, {0x1240}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   355
		{ 2, {0x0d19, 0x0d69}, { {0, 1, 1, {0x120e}}, {1, 2, 1, {0x1241}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   356
		{ 2, {0x0d25, 0x0d6a}, { {0, 1, 1, {0x121a}}, {1, 2, 1, {0x1242}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   357
		{ 2, {0x0d26, 0x0d6b}, { {0, 1, 1, {0x121b}}, {1, 2, 1, {0x1243}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   358
		{ 2, {0x0d15, 0x0d6c}, { {0, 1, 1, {0x120a}}, {1, 2, 1, {0x1244}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   359
		{ 2, {0x0d30, 0x0d6d}, { {0, 1, 1, {0x1224}}, {1, 2, 1, {0x1245}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   360
		{ 2, {0x0d31, 0x0d6e}, { {0, 1, 1, {0x1225}}, {1, 2, 1, {0x1246}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   361
		{ 2, {0x0d32, 0x0d6f}, { {0, 1, 1, {0x1226}}, {1, 2, 1, {0x1247}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   362
		//	Modifier + digit
662fa7de7023 201024_05
hgs
parents:
diff changeset
   363
		{ 2, {0x0d03, 0x0d66}, { {0, 1, 2, {0x058f, 0x11fb}}, {1, 2, 1, {0x123e}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   364
		{ 2, {0x0d03, 0x0d67}, { {0, 1, 2, {0x058f, 0x11fb}}, {1, 2, 1, {0x123f}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   365
		{ 2, {0x0d03, 0x0d68}, { {0, 1, 2, {0x058f, 0x11fb}}, {1, 2, 1, {0x1240}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   366
		{ 2, {0x0d03, 0x0d69}, { {0, 1, 2, {0x058f, 0x11fb}}, {1, 2, 1, {0x1241}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   367
		{ 2, {0x0d03, 0x0d6a}, { {0, 1, 2, {0x058f, 0x11fb}}, {1, 2, 1, {0x1242}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   368
		{ 2, {0x0d02, 0x0d6b}, { {0, 1, 2, {0x058f, 0x11fa}}, {1, 2, 1, {0x1243}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   369
		{ 2, {0x0d02, 0x0d6c}, { {0, 1, 2, {0x058f, 0x11fa}}, {1, 2, 1, {0x1244}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   370
		{ 2, {0x0d02, 0x0d6d}, { {0, 1, 2, {0x058f, 0x11fa}}, {1, 2, 1, {0x1245}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   371
		{ 2, {0x0d02, 0x0d6e}, { {0, 1, 2, {0x058f, 0x11fa}}, {1, 2, 1, {0x1246}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   372
		{ 2, {0x0d02, 0x0d6f}, { {0, 1, 2, {0x058f, 0x11fa}}, {1, 2, 1, {0x1247}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   373
		//	Vowel + digit
662fa7de7023 201024_05
hgs
parents:
diff changeset
   374
		{ 2, {0x0d3e, 0x0d66}, { {0, 1, 2, {0x058f, 0x122e}}, {1, 2, 1, {0x123e}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   375
		{ 2, {0x0d3f, 0x0d67}, { {0, 1, 2, {0x058f, 0x122f}}, {1, 2, 1, {0x123f}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   376
		{ 2, {0x0d40, 0x0d68}, { {0, 1, 2, {0x058f, 0x1230}}, {1, 2, 1, {0x1240}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   377
		{ 2, {0x0d41, 0x0d69}, { {0, 1, 2, {0x058f, 0x1231}}, {1, 2, 1, {0x1241}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   378
		{ 2, {0x0d42, 0x0d6a}, { {0, 1, 2, {0x058f, 0x1232}}, {1, 2, 1, {0x1242}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   379
		{ 2, {0x0d43, 0x0d6b}, { {0, 1, 2, {0x058f, 0x1233}}, {1, 2, 1, {0x1243}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   380
		{ 2, {0x0d46, 0x0d6c}, { {0, 1, 2, {0x1234, 0x058f}}, {1, 2, 1, {0x1244}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   381
		{ 2, {0x0d47, 0x0d6d}, { {0, 1, 2, {0x1235, 0x058f}}, {1, 2, 1, {0x1245}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   382
		{ 2, {0x0d48, 0x0d6e}, { {0, 1, 2, {0x1236, 0x058f}}, {1, 2, 1, {0x1246}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   383
		{ 2, {0x0d4c, 0x0d6f}, { {0, 1, 2, {0x058f, 0x123b}}, {1, 2, 1, {0x1247}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   384
		//	Virama + digit
662fa7de7023 201024_05
hgs
parents:
diff changeset
   385
		{ 2, {0x0d4d, 0x0d66}, { {0, 1, 2, {0x058f, 0x123a}}, {1, 2, 1, {0x123e}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   386
		{ 2, {0x0d4d, 0x0d67}, { {0, 1, 2, {0x058f, 0x123a}}, {1, 2, 1, {0x123f}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   387
		{ 2, {0x0d4d, 0x0d68}, { {0, 1, 2, {0x058f, 0x123a}}, {1, 2, 1, {0x1240}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   388
		{ 2, {0x0d4d, 0x0d69}, { {0, 1, 2, {0x058f, 0x123a}}, {1, 2, 1, {0x1241}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   389
		{ 2, {0x0d4d, 0x0d6a}, { {0, 1, 2, {0x058f, 0x123a}}, {1, 2, 1, {0x1242}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   390
		{ 2, {0x0d4d, 0x0d6b}, { {0, 1, 2, {0x058f, 0x123a}}, {1, 2, 1, {0x1243}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   391
		{ 2, {0x0d4d, 0x0d6c}, { {0, 1, 2, {0x058f, 0x123a}}, {1, 2, 1, {0x1244}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   392
		{ 2, {0x0d4d, 0x0d6d}, { {0, 1, 2, {0x058f, 0x123a}}, {1, 2, 1, {0x1245}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   393
		{ 2, {0x0d4d, 0x0d6e}, { {0, 1, 2, {0x058f, 0x123a}}, {1, 2, 1, {0x1246}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   394
		{ 2, {0x0d4d, 0x0d6f}, { {0, 1, 2, {0x058f, 0x123a}}, {1, 2, 1, {0x1247}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   395
		//	Consonant + digit + Matra
662fa7de7023 201024_05
hgs
parents:
diff changeset
   396
		{ 3, {0x0d15, 0x0d66, 0x0d3e}, { {0, 1, 1, {0x120a}}, {1, 2, 1, {0x123e}}, {2, 3, 2, {0x058f, 0x122e}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   397
		{ 3, {0x0d20, 0x0d67, 0x0d3f}, { {0, 1, 1, {0x1215}}, {1, 2, 1, {0x123f}}, {2, 3, 2, {0x058f, 0x122f}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   398
		{ 3, {0x0d22, 0x0d68, 0x0d40}, { {0, 1, 1, {0x1217}}, {1, 2, 1, {0x1240}}, {2, 3, 2, {0x058f, 0x1230}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   399
		{ 3, {0x0d27, 0x0d69, 0x0d41}, { {0, 1, 1, {0x121c}}, {1, 2, 1, {0x1241}}, {2, 3, 2, {0x058f, 0x1231}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   400
		{ 3, {0x0d28, 0x0d6a, 0x0d42}, { {0, 1, 1, {0x121d}}, {1, 2, 1, {0x1242}}, {2, 3, 2, {0x058f, 0x1232}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   401
		{ 3, {0x0d2A, 0x0d6b, 0x0d43}, { {0, 1, 1, {0x121e}}, {1, 2, 1, {0x1243}}, {2, 3, 2, {0x058f, 0x1233}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   402
		{ 3, {0x0d2D, 0x0d6c, 0x0d46}, { {0, 1, 1, {0x1221}}, {1, 2, 1, {0x1244}}, {2, 3, 2, {0x1234, 0x058f}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   403
		{ 3, {0x0d32, 0x0d6d, 0x0d47}, { {0, 1, 1, {0x1226}}, {1, 2, 1, {0x1245}}, {2, 3, 2, {0x1235, 0x058f}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   404
		{ 3, {0x0d34, 0x0d6e, 0x0d48}, { {0, 1, 1, {0x1228}}, {1, 2, 1, {0x1246}}, {2, 3, 2, {0x1236, 0x058f}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   405
		{ 3, {0x0d39, 0x0d6f, 0x0d4a}, { {0, 1, 1, {0x122d}}, {1, 2, 1, {0x1247}}, {2, 3, 3, {0x1234, 0x058f, 0x122e}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   406
		{ -1, {0}, -1,						-1, 0, {0}}
662fa7de7023 201024_05
hgs
parents:
diff changeset
   407
};
662fa7de7023 201024_05
hgs
parents:
diff changeset
   408
662fa7de7023 201024_05
hgs
parents:
diff changeset
   409
LOCAL_D const TTestInput_PositionParam6 Indic_GurmukhiAndLatin[] = {
662fa7de7023 201024_05
hgs
parents:
diff changeset
   410
		//	Gurmukhi sequence + Latin
662fa7de7023 201024_05
hgs
parents:
diff changeset
   411
		{ 3, {0x0a05, 0x0a70, 0x0077}, { {0, 2, 2, {0x12c3, 0x1308}}, {1, 2, 1, {0x1308}}, {2, 3, 1, {0x0077}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   412
		//	Latin + Gurmukhi sequence
662fa7de7023 201024_05
hgs
parents:
diff changeset
   413
		{ 3, {0x0063, 0x0a19, 0x0a48}, { {0, 1, 1, {0x0063}}, {1, 3, 2, {0x12d1, 0x12f5}}, {2, 3, 1, {0x12f5}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   414
		{ 3, {0x0064, 0x0a3f, 0x0a71}, { {0, 1, 1, {0x0064}}, {1, 2, 2, {0x12f0, 0x058f}}, {2, 3, 2, {0x058f, 0x1309}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   415
		{ 3, {0x0066, 0x0a69, 0x0a3e}, { {0, 1, 1, {0x0066}}, {1, 2, 1, {0x1301}}, {2, 3, 2, {0x058f, 0x12ef}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   416
		{ 3, {0x0068, 0x0a6a, 0x0a3e}, { {0, 1, 1, {0x0068}}, {1, 2, 1, {0x1302}}, {2, 3, 2, {0x058f, 0x12ef}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   417
		{ 3, {0x002e, 0x0a6b, 0x0a3e}, { {0, 1, 1, {0x0772}}, {1, 2, 1, {0x1303}}, {2, 3, 2, {0x058f, 0x12ef}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   418
		{ 3, {0x0074, 0x0a6c, 0x0a3e}, { {0, 1, 1, {0x0074}}, {1, 2, 1, {0x1304}}, {2, 3, 2, {0x058f, 0x12ef}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   419
		{ 3, {0x002c, 0x0a6d, 0x0a3e}, { {0, 1, 1, {0x0770}}, {1, 2, 1, {0x1305}}, {2, 3, 2, {0x058f, 0x12ef}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   420
		{ 3, {0x0078, 0x0a6e, 0x0a3e}, { {0, 1, 1, {0x0078}}, {1, 2, 1, {0x1306}}, {2, 3, 2, {0x058f, 0x12ef}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   421
		{ 3, {0x007a, 0x0a6f, 0x0a3e}, { {0, 1, 1, {0x007a}}, {1, 2, 1, {0x1307}}, {2, 3, 2, {0x058f, 0x12ef}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   422
		{ 3, {0x0a6f, 0x0a3e, 0x0078}, { {0, 1, 1, {0x1307}}, {1, 2, 2, {0x058f, 0x12ef}}, {2, 3, 1, {0x0078}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   423
		{ 3, {0x0a6f, 0x0a3e, 0x002e}, { {0, 1, 1, {0x1307}}, {1, 2, 2, {0x058f, 0x12ef}}, {2, 3, 1, {0x0772}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   424
		{ 3, {0x0a6f, 0x0a3e, 0x0066}, { {0, 1, 1, {0x1307}}, {1, 2, 2, {0x058f, 0x12ef}}, {2, 3, 1, {0x0066}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   425
		{ -1, {0}, -1,						-1, 0, {0}}
662fa7de7023 201024_05
hgs
parents:
diff changeset
   426
};
662fa7de7023 201024_05
hgs
parents:
diff changeset
   427
662fa7de7023 201024_05
hgs
parents:
diff changeset
   428
662fa7de7023 201024_05
hgs
parents:
diff changeset
   429
LOCAL_D const TTestInput_PositionParam6 Indic_MalayalamAndLatin[] = {
662fa7de7023 201024_05
hgs
parents:
diff changeset
   430
		//	Malayalam sequence + Latin
662fa7de7023 201024_05
hgs
parents:
diff changeset
   431
		//{ 3, {0x0d05, 0x0d70, 0x0077}, { {0, 1, 1, {0x11fc}}, {1, 2, 1, {0x0000}}, {2, 3, 1, {0x0077}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   432
		//	Latin + Malayalam sequence
662fa7de7023 201024_05
hgs
parents:
diff changeset
   433
		{ 3, {0x0063, 0x0d19, 0x0d48}, { {0, 1, 1, {0x0063}}, {1, 3, 2, {0x1236, 0x120e}}, {2, 3, 1, {0x1236}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   434
		{ 3, {0x0066, 0x0d69, 0x0d3e}, { {0, 1, 1, {0x0066}}, {1, 2, 1, {0x1241}}, {2, 3, 2, {0x058f, 0x122e}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   435
		{ 3, {0x0068, 0x0d6a, 0x0d3e}, { {0, 1, 1, {0x0068}}, {1, 2, 1, {0x1242}}, {2, 3, 2, {0x058f, 0x122e}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   436
		{ 3, {0x002e, 0x0d6b, 0x0d3e}, { {0, 1, 1, {0x0c87}}, {1, 2, 1, {0x1243}}, {2, 3, 2, {0x058f, 0x122e}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   437
		{ 3, {0x0074, 0x0d6c, 0x0d3e}, { {0, 1, 1, {0x0074}}, {1, 2, 1, {0x1244}}, {2, 3, 2, {0x058f, 0x122e}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   438
		{ 3, {0x002c, 0x0d6d, 0x0d3e}, { {0, 1, 1, {0x0c85}}, {1, 2, 1, {0x1245}}, {2, 3, 2, {0x058f, 0x122e}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   439
		{ 3, {0x0078, 0x0d6e, 0x0d3e}, { {0, 1, 1, {0x0078}}, {1, 2, 1, {0x1246}}, {2, 3, 2, {0x058f, 0x122e}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   440
		{ 3, {0x007a, 0x0d6f, 0x0d3e}, { {0, 1, 1, {0x007a}}, {1, 2, 1, {0x1247}}, {2, 3, 2, {0x058f, 0x122e}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   441
		{ -1, {0}, -1,						-1, 0, {0}}
662fa7de7023 201024_05
hgs
parents:
diff changeset
   442
};
662fa7de7023 201024_05
hgs
parents:
diff changeset
   443
662fa7de7023 201024_05
hgs
parents:
diff changeset
   444
662fa7de7023 201024_05
hgs
parents:
diff changeset
   445
LOCAL_D const TTestInput_PositionParam6 Indic_GurmukhiModifierAfterConsonantViramaZWJ[] = {
662fa7de7023 201024_05
hgs
parents:
diff changeset
   446
		//	Consonant + Virama + ZWJ + Modifier
662fa7de7023 201024_05
hgs
parents:
diff changeset
   447
		{ 4, {0x0a15, 0x0a4d, 0x200d, 0x0A01}, { {0, 4, 2, {0x1335, 0x12c0}}, {1, 2, 0, {0x0000}}, {2, 4, 1, {0x12c0}}, {3, 4, 1, {0x12c0}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   448
		{ 4, {0x0a16, 0x0a4d, 0x200d, 0x0A02}, { {0, 4, 2, {0x1336, 0x12c1}}, {1, 2, 0, {0x0000}}, {2, 4, 1, {0x12c1}}, {3, 4, 1, {0x12c1}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   449
		{ 4, {0x0a17, 0x0a4d, 0x200d, 0x0A03}, { {0, 4, 2, {0x1337, 0x12c2}}, {1, 2, 0, {0x0000}}, {2, 4, 1, {0x12c2}}, {3, 4, 1, {0x12c2}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   450
		{ 4, {0x0a18, 0x0a4d, 0x200d, 0x0A70}, { {0, 4, 2, {0x1338, 0x1308}}, {1, 2, 0, {0x0000}}, {2, 4, 1, {0x1308}}, {3, 4, 1, {0x1308}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   451
		{ -1, {0}, -1,						-1, 0, {0}}
662fa7de7023 201024_05
hgs
parents:
diff changeset
   452
};
662fa7de7023 201024_05
hgs
parents:
diff changeset
   453
662fa7de7023 201024_05
hgs
parents:
diff changeset
   454
662fa7de7023 201024_05
hgs
parents:
diff changeset
   455
LOCAL_D const TTestInput_PositionParam6 Indic_MalayalamModifierAfterConsonantViramaZWJ[] = {
662fa7de7023 201024_05
hgs
parents:
diff changeset
   456
		//	Consonant + Virama + ZWJ + Modifier
662fa7de7023 201024_05
hgs
parents:
diff changeset
   457
		{ 4, {0x0d15, 0x0d4d, 0x200d, 0x0d02}, { {0, 4, 2, {0x1248, 0x11fa}}, {1, 2, 0, {0x0000}}, {2, 4, 1, {0x11fa}}, {3, 4, 1, {0x11fa}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   458
		{ 4, {0x0d25, 0x0d4d, 0x200d, 0x0d02}, { {0, 4, 2, {0x1258, 0x11fa}}, {1, 2, 0, {0x0000}}, {2, 4, 1, {0x11fa}}, {3, 4, 1, {0x11fa}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   459
		{ 4, {0x0d33, 0x0d4d, 0x200d, 0x0d03}, { {0, 3, 1, {0x1275}}, {1, 2, 0, {0x0000}}, {2, 4, 1, {0x11fb}}, {3, 4, 1, {0x11fb}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   460
		{ 4, {0x0d34, 0x0d4d, 0x200d, 0x0d03}, { {0, 4, 2, {0x1266, 0x11fb}}, {1, 2, 0, {0x0000}}, {2, 4, 1, {0x11fb}}, {3, 4, 1, {0x11fb}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   461
		{ -1, {0}, -1,						-1, 0, {0}}
662fa7de7023 201024_05
hgs
parents:
diff changeset
   462
};
662fa7de7023 201024_05
hgs
parents:
diff changeset
   463
662fa7de7023 201024_05
hgs
parents:
diff changeset
   464
LOCAL_D const TTestInput_PositionParam6 Indic_GurmukhiConsonantLeading[] = {
662fa7de7023 201024_05
hgs
parents:
diff changeset
   465
		//	Consonant + Nukta
662fa7de7023 201024_05
hgs
parents:
diff changeset
   466
		{ 2, {0x0a17, 0x0A3C}, { {0, 2, 1, {0x12fa}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   467
		//	Consonant + dependent vowel, two sequences to check context shaping
662fa7de7023 201024_05
hgs
parents:
diff changeset
   468
		{ 2, {0x0a15, 0x0A4C}, { {0, 2, 2, {0x12cd, 0x12f7}}, {1, 2, 1, {0x12f7}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   469
		{ 2, {0x0a16, 0x0A4C}, { {0, 2, 2, {0x12ce, 0x12f7}}, {1, 2, 1, {0x12f7}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   470
		//	Consonant + Matra /i/, and other Matras
662fa7de7023 201024_05
hgs
parents:
diff changeset
   471
		{ 2, {0x0a16, 0x0A3f}, { {0, 2, 2, {0x12f0, 0x12ce}}, {1, 2, 1, {0x12f0}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   472
		{ 2, {0x0a16, 0x0A3e}, { {0, 2, 2, {0x12ce, 0x12ef}}, {1, 2, 1, {0x12ef}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   473
		{ 2, {0x0a16, 0x0A40}, { {0, 2, 2, {0x12ce, 0x12f1}}, {1, 2, 1, {0x12f1}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   474
		{ 2, {0x0a16, 0x0A41}, { {0, 2, 2, {0x12ce, 0x12f2}}, {1, 2, 1, {0x12f2}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   475
		{ 2, {0x0a16, 0x0A42}, { {0, 2, 2, {0x12ce, 0x12f3}}, {1, 2, 1, {0x12f3}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   476
		{ 2, {0x0a16, 0x0A43}, { {0, 1, 1, {0x12ce}}, {1, 2, 1, {0x0000}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   477
		{ 2, {0x0a16, 0x0A44}, { {0, 1, 1, {0x12ce}}, {1, 2, 1, {0x0000}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   478
		{ 2, {0x0a16, 0x0A45}, { {0, 1, 1, {0x12ce}}, {1, 2, 1, {0x0000}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   479
		{ 2, {0x0a16, 0x0A46}, { {0, 1, 1, {0x12ce}}, {1, 2, 1, {0x0000}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   480
		{ 2, {0x0a16, 0x0A47}, { {0, 2, 2, {0x12ce, 0x12f4}}, {1, 2, 1, {0x12f4}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   481
		{ 2, {0x0a16, 0x0A48}, { {0, 2, 2, {0x12ce, 0x12f5}}, {1, 2, 1, {0x12f5}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   482
		{ 2, {0x0a16, 0x0A49}, { {0, 1, 1, {0x12ce}}, {1, 2, 1, {0x0000}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   483
		{ 2, {0x0a16, 0x0A4a}, { {0, 1, 1, {0x12ce}}, {1, 2, 1, {0x0000}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   484
		{ 2, {0x0a16, 0x0A4b}, { {0, 2, 2, {0x12ce, 0x12f6}}, {1, 2, 1, {0x12f6}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   485
		{ 2, {0x0a16, 0x0A4c}, { {0, 2, 2, {0x12ce, 0x12f7}}, {1, 2, 1, {0x12f7}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   486
		//0d24 + 0d4d + 0d30
662fa7de7023 201024_05
hgs
parents:
diff changeset
   487
		//0d28 + 0d4d + //0d24 + 0d4d + 0d30
662fa7de7023 201024_05
hgs
parents:
diff changeset
   488
		//0d38 + 0d4d + //0d15 + 0d4d + 0d30
662fa7de7023 201024_05
hgs
parents:
diff changeset
   489
		//	Consonant + Virama + HA(RA/VA/YA)
662fa7de7023 201024_05
hgs
parents:
diff changeset
   490
		{ 3, {0x0a15, 0x0a4d, 0x0a39}, { {0, 3, 2, {0x12cd, 0x1331}}, {1, 2, 0, {0x0000}}, {2, 3, 1, {0x1331}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   491
		{ 3, {0x0a15, 0x0a4d, 0x0a30}, { {0, 3, 1, {0x13e7}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   492
		{ 3, {0x0a15, 0x0a4d, 0x0a35}, { {0, 3, 2, {0x1399, 0x1333}}, {1, 2, 0, {0x0000}}, {2, 3, 1, {0x1333}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   493
		{ 3, {0x0a15, 0x0a4d, 0x0a2f}, { {0, 3, 2, {0x12cd, 0x1373}}, {1, 2, 0, {0x0000}}, {2, 3, 1, {0x1373}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   494
		//	Consonant + Addak
662fa7de7023 201024_05
hgs
parents:
diff changeset
   495
		{ 2, {0x0a16, 0x0A71}, { {0, 2, 2, {0x12ce, 0x1309}}, {1, 2, 1, {0x1309}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   496
		//	Consonant + bindi
662fa7de7023 201024_05
hgs
parents:
diff changeset
   497
		{ 2, {0x0a16, 0x0A02}, { {0, 2, 2, {0x12ce, 0x12c1}}, {1, 2, 1, {0x12c1}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   498
		{ 3, {0x0a16, 0x0a40, 0x0A02}, { {0, 3, 2, {0x12ce, 0x13f0}}, {1, 2, 1, {0x13f0}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   499
		{ 3, {0x0a16, 0x0a4b, 0x0A02}, { {0, 3, 2, {0x12ce, 0x13f3}}, {1, 2, 1, {0x13f3}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   500
		//	Consonant + Tippi
662fa7de7023 201024_05
hgs
parents:
diff changeset
   501
		{ 2, {0x0a25, 0x0A70}, { {0, 2, 2, {0x12dd, 0x1308}}, {1, 2, 1, {0x1308}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   502
		{ 3, {0x0a25, 0x0a3f, 0x0A70}, { {0, 3, 3, {0x12f0, 0x12dd, 0x1308}}, {1, 2, 1, {0x12f0}}, {2, 3, 1, {0x1308}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   503
		{ 3, {0x0a25, 0x0a41, 0x0A70}, { {0, 3, 3, {0x12dd, 0x12f2, 0x1308}}, {1, 2, 1, {0x12f2}}, {2, 3, 1, {0x1308}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   504
		//	Nukta, corresponding consonant, Nukta pair
662fa7de7023 201024_05
hgs
parents:
diff changeset
   505
		{ 1, {0x0a33}, { {0, 1, 1, {0x12e9}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   506
		{ 2, {0x0a32, 0x0A3c}, { {0, 2, 1, {0x12e9}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   507
		{ 1, {0x0a36}, { {0, 1, 1, {0x12eb}},{-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   508
		{ 2, {0x0a38, 0x0A3c}, { {0, 2, 1, {0x12eb}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   509
		{ 1, {0x0a59}, { {0, 1, 1, {0x12f9}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   510
		{ 2, {0x0aa1, 0x0A3c}, { {0, 1, 1, {0x096e}}, {1, 2, 2, {0x058f, 0x12ee}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   511
		{ 1, {0x0a5a}, { {0, 1, 1, {0x12fa}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   512
		{ 2, {0x0a17, 0x0A3c}, { {0, 2, 1, {0x12fa}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   513
		{ 1, {0x0a5b}, { {0, 1, 1, {0x12fb}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   514
		{ 2, {0x0a1c, 0x0A3c}, { {0, 2, 1, {0x12fb}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   515
		{ 1, {0x0a5e}, { {0, 1, 1, {0x12fd}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   516
		{ 2, {0x0a2b, 0x0A3c}, { {0, 2, 1, {0x12fd}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   517
		{ -1, {0}, -1,						-1, 0, {0}}
662fa7de7023 201024_05
hgs
parents:
diff changeset
   518
};
662fa7de7023 201024_05
hgs
parents:
diff changeset
   519
662fa7de7023 201024_05
hgs
parents:
diff changeset
   520
662fa7de7023 201024_05
hgs
parents:
diff changeset
   521
662fa7de7023 201024_05
hgs
parents:
diff changeset
   522
LOCAL_D const TTestInput_PositionParam6 Indic_MalayalamConsonantLeading[] = {
662fa7de7023 201024_05
hgs
parents:
diff changeset
   523
		//	Consonant, and its split representation
662fa7de7023 201024_05
hgs
parents:
diff changeset
   524
		{ 2, {0x0d15, 0x0d14}, { {0, 1, 1, {0x120a}}, {1, 2, 1, {0x1209}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   525
		{ 3, {0x0d15, 0x0d12, 0x0d57}, { {0, 1, 1, {0x120a}}, {1, 3, 3, {0x1207, 0x058f, 0x123b}}, {2, 3, 2, {0x058f, 0x123b}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   526
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
   527
		{ 2, {0x0d15, 0x0d4a}, { {0, 2, 3, {0x1234, 0x120a, 0x122e}}, {1, 2, 2, {0x1234, 0x122e}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   528
		{ 3, {0x0d15, 0x0d46, 0x0d3e}, { {0, 3, 3, {0x1234, 0x120a, 0x122e}}, {1, 2, 1, {0x1234}}, {2, 3, 1, {0x122e}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   529
662fa7de7023 201024_05
hgs
parents:
diff changeset
   530
		{ 2, {0x0d17, 0x0d4b}, { {0, 2, 3, {0x1235, 0x120c, 0x122e}}, {1, 2, 2, {0x1235, 0x122e}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   531
		{ 3, {0x0d17, 0x0d47, 0x0d3e}, { {0, 3, 3, {0x1235, 0x120c, 0x122e}}, {1, 2, 1, {0x1235}}, {2, 3, 1, {0x122e}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   532
662fa7de7023 201024_05
hgs
parents:
diff changeset
   533
		{ 2, {0x0d19, 0x0d4c}, { {0, 2, 2, {0x120e, 0x123b}}, {1, 2, 1, {0x123b}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   534
		{ 3, {0x0d19, 0x0d46, 0x0d57}, { {0, 3, 2, {0x120e, 0x123b}}, {1, 2, 0, {0x0000}}, {2, 3, 1, {0x123b}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   535
662fa7de7023 201024_05
hgs
parents:
diff changeset
   536
		//	Consonant + dependent vowel, two sequences to check context shaping
662fa7de7023 201024_05
hgs
parents:
diff changeset
   537
		{ 2, {0x0d15, 0x0d0a}, { {0, 1, 1, {0x120a}}, {1, 2, 1, {0x1201}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   538
		{ 2, {0x0d16, 0x0d0a}, { {0, 1, 1, {0x120b}}, {1, 2, 1, {0x1201}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   539
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
   540
		//	Consonant + Matra /-e/, /-ee/, /-ai/ 
662fa7de7023 201024_05
hgs
parents:
diff changeset
   541
		{ 2, {0x0d16, 0x0d46}, { {0, 2, 2, {0x1234, 0x120b}}, {1, 2, 1, {0x1234}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   542
		{ 2, {0x0d17, 0x0d47}, { {0, 2, 2, {0x1235, 0x120c}}, {1, 2, 1, {0x1235}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   543
		{ 2, {0x0d18, 0x0d48}, { {0, 2, 2, {0x1236, 0x120d}}, {1, 2, 1, {0x1236}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   544
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
   545
		//	Consonant and Matras /-o/, /-oo/, /-au/ to shaper
662fa7de7023 201024_05
hgs
parents:
diff changeset
   546
		//	Consonant and 0x0d4c (first form of Matra /-au/ ) to shaper,
662fa7de7023 201024_05
hgs
parents:
diff changeset
   547
		//	Consonant, 0x0d46 and 0x0d57 (second form of Matra /-au/) to shaper002E
662fa7de7023 201024_05
hgs
parents:
diff changeset
   548
		{ 2, {0x0d16, 0x0d4A}, { {0, 2, 3, {0x1234, 0x120b, 0x122e}}, {1, 2, 2, {0x1234, 0x122e}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   549
		{ 2, {0x0d17, 0x0d4B}, { {0, 2, 3, {0x1235, 0x120c, 0x122e}}, {1, 2, 2, {0x1235, 0x122e}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   550
		{ 2, {0x0d18, 0x0d4C}, { {0, 2, 2, {0x120d, 0x123b}}, {1, 2, 1, {0x123b}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   551
		{ 3, {0x0d15, 0x0d46, 0x0d57}, { {0, 3, 2, {0x120a, 0x123b}}, {1, 2, 0, {0x0000}}, {2, 3, 1, {0x123b}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   552
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
   553
		//	Consonant + 0x0d4d + Consonant
662fa7de7023 201024_05
hgs
parents:
diff changeset
   554
		{ 3, {0x0d15, 0x0d4d, 0x0d15}, { {0, 3, 1, {0x1277}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   555
		{ 4, {0x0d31, 0x0d4d, 0x0d31, 0x0d4d}, { {0, 4, 2, {0x12a7, 0x123a}}, {1, 2, 0, {0x0000}}, {2, 4, 1, {0x123a}}, {3, 4, 1, {0x123a}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   556
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
   557
		//	Consonant (NNA, NA, RA, LA, LLA) + Virama + ZWJ to shaper
662fa7de7023 201024_05
hgs
parents:
diff changeset
   558
		//	KA + Virama + ZWJ to shaper.
662fa7de7023 201024_05
hgs
parents:
diff changeset
   559
		// 	other Consonant + Virama + ZWJ to shaper.
662fa7de7023 201024_05
hgs
parents:
diff changeset
   560
		{ 3, {0x0d23, 0x0d4d, 0x200d}, { {0, 3, 1, {0x1272}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   561
		{ 3, {0x0d28, 0x0d4d, 0x200d}, { {0, 3, 1, {0x1273}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   562
		{ 3, {0x0d32, 0x0d4d, 0x200d}, { {0, 3, 1, {0x1276}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   563
		{ 3, {0x0d33, 0x0d4d, 0x200d}, { {0, 3, 1, {0x1275}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   564
		{ 3, {0x0d15, 0x0d4d, 0x200d}, { {0, 3, 1, {0x1248}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   565
		{ 3, {0x0d16, 0x0d4d, 0x200d}, { {0, 3, 1, {0x1249}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   566
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
   567
		//	RA + Virama + ZWJ to shaper,
662fa7de7023 201024_05
hgs
parents:
diff changeset
   568
		//	RRA + Viram + ZWJ to shaper.
662fa7de7023 201024_05
hgs
parents:
diff changeset
   569
		{ 3, {0x0d30, 0x0d4d, 0x200d}, { {0, 3, 1, {0x1274}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   570
		{ 3, {0x0d31, 0x0d4d, 0x200d}, { {0, 3, 1, {0x1263}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   571
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
   572
		//	Chillu and Modifier to shaper
662fa7de7023 201024_05
hgs
parents:
diff changeset
   573
		//	Chillu and Virama to shaper
662fa7de7023 201024_05
hgs
parents:
diff changeset
   574
		{ 4, {0x0d31, 0x0d4d, 0x200d, 0x0d05}, { {0, 3, 1, {0x1263}}, {1, 2, 0, {0x0000}}, {2, 3, 0, {0x0000}}, {3, 4, 1, {0x11fc}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   575
		{ 4, {0x0d15, 0x0d4d, 0x200d, 0x0d14}, { {0, 3, 1, {0x1248}}, {1, 2, 0, {0x0000}}, {2, 3, 0, {0x0000}}, {3, 4, 1, {0x1209}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   576
		{ 4, {0x0d31, 0x0d4d, 0x200d, 0x0d4d}, { {0, 3, 1, {0x1263}}, {1, 2, 0, {0x0000}}, {2, 4, 2, {0x058f, 0x123a}}, {3, 4, 2, {0x058f, 0x123a}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   577
		{ 4, {0x0d15, 0x0d4d, 0x200d, 0x0d4d}, { {0, 3, 1, {0x1248}}, {1, 2, 0, {0x0000}}, {2, 4, 2, {0x058f, 0x123a}}, {3, 4, 2, {0x058f, 0x123a}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   578
662fa7de7023 201024_05
hgs
parents:
diff changeset
   579
		//	AAR
662fa7de7023 201024_05
hgs
parents:
diff changeset
   580
		{ 3, {0x0d06, 0x0d4d, 0x200d}, { {0, 1, 1, {0x11fd}}, {1, 2, 2, {0x058f, 0x123a}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   581
		{ 2, {0x0d06, 0x0d4d}, { {0, 1, 1, {0x11fd}}, {1, 2, 2, {0x058f, 0x123a}}, {-1, 1, 1, {0} }  } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   582
662fa7de7023 201024_05
hgs
parents:
diff changeset
   583
		//	K.KA, K.TA, K.SSA, G.NA, G.MA, 
662fa7de7023 201024_05
hgs
parents:
diff changeset
   584
		//	NG.KA, NG.NGA, J.JA, J.NYA, NY.NYA, TT.TTA, NN.MA, T.BHA, T.MA, 
662fa7de7023 201024_05
hgs
parents:
diff changeset
   585
		//	T.SA, D.DA, D.DHA, 
662fa7de7023 201024_05
hgs
parents:
diff changeset
   586
		//	N.TA, N.DA, N.DHA, N.NA, 
662fa7de7023 201024_05
hgs
parents:
diff changeset
   587
		//	M.PA, M.MA, 
662fa7de7023 201024_05
hgs
parents:
diff changeset
   588
		//	SH.CA, S.THA, 
662fa7de7023 201024_05
hgs
parents:
diff changeset
   589
		//	H.NA, H.MA and LL.LLA
662fa7de7023 201024_05
hgs
parents:
diff changeset
   590
		{ 3, {0x0d15, 0x0d4d, 0x0d15}, { {0, 3, 1, {0x1277}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   591
		{ 3, {0x0d15, 0x0d4d, 0x0d24}, { {0, 3, 1, {0x1278}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   592
		{ 3, {0x0d15, 0x0d4d, 0x0d37}, { {0, 3, 1, {0x127b}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   593
		{ 3, {0x0d17, 0x0d4d, 0x0d28}, { {0, 3, 1, {0x127e}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   594
		{ 3, {0x0d17, 0x0d4d, 0x0d2e}, { {0, 3, 1, {0x127d}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   595
		{ 3, {0x0d19, 0x0d4d, 0x0d15}, { {0, 3, 1, {0x1280}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   596
		{ 3, {0x0d19, 0x0d4d, 0x0d19}, { {0, 3, 1, {0x1281}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   597
		{ 3, {0x0d1c, 0x0d4d, 0x0d1c}, { {0, 3, 1, {0x1284}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   598
		{ 3, {0x0d1c, 0x0d4d, 0x0d1e}, { {0, 3, 1, {0x1285}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   599
		{ 3, {0x0d1f, 0x0d4d, 0x0d1f}, { {0, 3, 1, {0x1288}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   600
		{ 3, {0x0d23, 0x0d4d, 0x0d2e}, { {0, 3, 1, {0x128b}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   601
		{ 3, {0x0d24, 0x0d4d, 0x0d2d}, { {0, 3, 1, {0x128e}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   602
		{ 3, {0x0d24, 0x0d4d, 0x0d2e}, { {0, 3, 1, {0x128f}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   603
		{ 3, {0x0d24, 0x0d4d, 0x0d38}, { {0, 3, 1, {0x1290}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   604
		{ 3, {0x0d26, 0x0d4d, 0x0d26}, { {0, 3, 1, {0x1293}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   605
		{ 3, {0x0d26, 0x0d4d, 0x0d27}, { {0, 3, 1, {0x1294}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   606
		{ 3, {0x0d28, 0x0d4d, 0x0d24}, { {0, 3, 1, {0x129a}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   607
		{ 3, {0x0d28, 0x0d4d, 0x0d26}, { {0, 3, 1, {0x1295}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   608
		{ 3, {0x0d28, 0x0d4d, 0x0d27}, { {0, 3, 1, {0x1296}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   609
		{ 3, {0x0d28, 0x0d4d, 0x0d28}, { {0, 3, 1, {0x1297}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   610
		{ 3, {0x0d2e, 0x0d4d, 0x0d2a}, { {0, 3, 1, {0x12a4}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   611
		{ 3, {0x0d2e, 0x0d4d, 0x0d2e}, { {0, 3, 1, {0x12a3}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   612
		{ 3, {0x0d36, 0x0d4d, 0x0d1a}, { {0, 3, 1, {0x12ab}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   613
		{ 3, {0x0d38, 0x0d4d, 0x0d25}, { {0, 3, 1, {0x12b1}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   614
		{ 3, {0x0d39, 0x0d4d, 0x0d28}, { {0, 3, 1, {0x12b4}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   615
		{ 3, {0x0d39, 0x0d4d, 0x0d2e}, { {0, 3, 1, {0x12b3}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   616
		{ 3, {0x0d33, 0x0d4d, 0x0d23}, { {0, 3, 2, {0x1265, 0x1218}}, {1, 2, 0, {0x0000}}, {2, 3, 1, {0x1218}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   617
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
   618
		//	One of (KA, GA, PA, BA, MA, LA, SHA, SA, HA), Virama and LA to shaper
662fa7de7023 201024_05
hgs
parents:
diff changeset
   619
		{ 3, {0x0d15, 0x0d4d, 0x0d32}, { {0, 3, 1, {0x127a}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   620
		{ 3, {0x0d17, 0x0d4d, 0x0d32}, { {0, 3, 1, {0x127f}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   621
		{ 3, {0x0d2a, 0x0d4d, 0x0d32}, { {0, 3, 1, {0x129d}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   622
		{ 3, {0x0d2c, 0x0d4d, 0x0d32}, { {0, 3, 1, {0x12a2}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   623
		{ 3, {0x0d2e, 0x0d4d, 0x0d32}, { {0, 3, 1, {0x12a5}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   624
		{ 3, {0x0d32, 0x0d4d, 0x0d32}, { {0, 3, 1, {0x12a8}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   625
		{ 3, {0x0d36, 0x0d4d, 0x0d32}, { {0, 3, 1, {0x12ad}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   626
		{ 3, {0x0d38, 0x0d4d, 0x0d32}, { {0, 3, 1, {0x12b2}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   627
		{ 3, {0x0d39, 0x0d4d, 0x0d32}, { {0, 3, 1, {0x12b5}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   628
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
   629
		//	CA, Virama and CA to shaper
662fa7de7023 201024_05
hgs
parents:
diff changeset
   630
		//	BA, Virama and BA to shaper
662fa7de7023 201024_05
hgs
parents:
diff changeset
   631
		//	YA, Virama and YA to shaper
662fa7de7023 201024_05
hgs
parents:
diff changeset
   632
		//	VA, Virama and VA to shaper
662fa7de7023 201024_05
hgs
parents:
diff changeset
   633
		//	other Consonant, Virama and the same Consonant to shaper.
662fa7de7023 201024_05
hgs
parents:
diff changeset
   634
		{ 3, {0x0d1a, 0x0d4d, 0x0d1a}, { {0, 3, 1, {0x1282}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   635
		{ 3, {0x0d2c, 0x0d4d, 0x0d2c}, { {0, 3, 1, {0x129f}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   636
		{ 3, {0x0d2f, 0x0d4d, 0x0d2f}, { {0, 3, 1, {0x12a6}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   637
		{ 3, {0x0d35, 0x0d4d, 0x0d35}, { {0, 3, 1, {0x12aa}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   638
		{ 3, {0x0d15, 0x0d4d, 0x0d15}, { {0, 3, 1, {0x1277}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   639
662fa7de7023 201024_05
hgs
parents:
diff changeset
   640
		//	G.GA, C.CHA, K.TTA, SS.TTA, DD.DDA, NN.NNA, B.DA, B.DHA, P.PA, RR.RRA, SH.SHA, S.SA clusters to shaper
662fa7de7023 201024_05
hgs
parents:
diff changeset
   641
		{ 3, {0x0d17, 0x0d4d, 0x0d17}, { {0, 3, 1, {0x127c}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   642
		{ 3, {0x0d2c, 0x0d4d, 0x0d26}, { {0, 3, 1, {0x12a0}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   643
		{ 3, {0x0d1a, 0x0d4d, 0x0d1b}, { {0, 3, 1, {0x1283}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   644
		{ 3, {0x0d2c, 0x0d4d, 0x0d27}, { {0, 3, 1, {0x12a1}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   645
		{ 3, {0x0d15, 0x0d4d, 0x0d1f}, { {0, 3, 1, {0x1279}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   646
		{ 3, {0x0d2a, 0x0d4d, 0x0d2a}, { {0, 3, 1, {0x129c}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   647
		{ 3, {0x0d37, 0x0d4d, 0x0d1f}, { {0, 3, 1, {0x12ae}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   648
		{ 3, {0x0d31, 0x0d4d, 0x0d31}, { {0, 3, 1, {0x12a7}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   649
		{ 3, {0x0d21, 0x0d4d, 0x0d21}, { {0, 3, 1, {0x1289}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   650
		{ 3, {0x0d36, 0x0d4d, 0x0d36}, { {0, 3, 1, {0x12ac}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   651
		{ 3, {0x0d23, 0x0d4d, 0x0d23}, { {0, 3, 1, {0x128c}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   652
		{ 3, {0x0d38, 0x0d4d, 0x0d38}, { {0, 3, 1, {0x12b0}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   653
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
   654
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
   655
		//	Consonant clusters from REQ1.3.11 to shaper.
662fa7de7023 201024_05
hgs
parents:
diff changeset
   656
		//	Already covered in other sequence
662fa7de7023 201024_05
hgs
parents:
diff changeset
   657
		//	S.RR.RRA to shaper,
662fa7de7023 201024_05
hgs
parents:
diff changeset
   658
		//	N.RR.RRA to shaper
662fa7de7023 201024_05
hgs
parents:
diff changeset
   659
		{ 5, {0x0d38, 0x0d4d, 0x0d31, 0x0d4d, 0x0d31}, { {0, 5, 1, {0x12af}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   660
		{ 4, {0x0d28, 0x0d4d, 0x0d31, 0x0d31}, { {0, 3, 2, {0x125b, 0x1225}}, {1, 2, 0, {0x0000}}, {2, 3, 1, {0x1225}}, {3, 4, 1, {0x1225}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   661
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
   662
		//	N.RRA
662fa7de7023 201024_05
hgs
parents:
diff changeset
   663
		{ 4, {0x0d28, 0x0d4d, 0x200d, 0x0d31}, { {0, 4, 1, {0x1299}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   664
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
   665
		//	NA, Virama, ZWJ, RRA to shaper
662fa7de7023 201024_05
hgs
parents:
diff changeset
   666
		//	NA, Virama, ZWJ, ZWNJ, RRA to shaper
662fa7de7023 201024_05
hgs
parents:
diff changeset
   667
		{ 4, {0x0d28, 0x0d4d, 0x200d, 0x0d31}, { {0, 4, 1, {0x1299}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   668
		{ 5, {0x0d28, 0x0d4d, 0x200d, 0x200c, 0x0d31}, { {0, 3, 1, {0x1273}}, {1, 2, 0, {0x0000}}, {2, 3, 0, {0x0000}}, {3, 4, 0, {0x0000}}, {4, 5, 1, {0x1225}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   669
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
   670
		//	Consonant cluster and YA to shaper
662fa7de7023 201024_05
hgs
parents:
diff changeset
   671
		//	Consonant cluster and VA to shaper
662fa7de7023 201024_05
hgs
parents:
diff changeset
   672
		{ 4, {0x0d15, 0x0d4d, 0x0d30, 0x0d3f}, { {0, 4, 3, {0x1271, 0x120a, 0x122f}}, {1, 2, 0, {0x0000}}, {2, 4, 2, {0x1271, 0x122f}}, {3, 4, 1, {0x122f}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   673
		{ 4, {0x0d15, 0x0d4d, 0x0d30, 0x0d35}, { {0, 3, 2, {0x1271, 0x120a}}, {1, 2, 0, {0x0000}}, {2, 3, 1, {0x1271}}, {3, 4, 1, {0x1229}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   674
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
   675
		//	YA, YAKAR to shaper
662fa7de7023 201024_05
hgs
parents:
diff changeset
   676
		//	VA, VAKAR to shaper
662fa7de7023 201024_05
hgs
parents:
diff changeset
   677
		{ 3, {0x0d15, 0x0d4d, 0x0d2f}, { {0, 3, 2, {0x120a, 0x126f}}, {1, 2, 0, {0x0000}}, {2, 3, 1, {0x126f}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   678
		{ 3, {0x0d15, 0x0d4d, 0x0d35}, { {0, 3, 2, {0x120a, 0x1270}}, {1, 2, 0, {0x0000}}, {2, 3, 1, {0x1270}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   679
		{ 5, {0x0d15, 0x0d4d, 0x0d30, 0x0d4d, 0x0d2f}, { {0, 5, 3, {0x1271, 0x120a, 0x126f}}, {1, 2, 0, {0x0000}}, {2, 5, 2, {0x1271, 0x126f}}, {3, 4, 0, {0x0000}}, {4, 5, 1, {0x126f}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   680
		{ 5, {0x0d15, 0x0d4d, 0x0d30, 0x0d4d, 0x0d35}, { {0, 5, 3, {0x1271, 0x120a, 0x1270}}, {1, 2, 0, {0x0000}}, {2, 5, 2, {0x1271, 0x1270}}, {3, 4, 0, {0x0000}}, {4, 5, 1, {0x1270}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   681
		{ 5, {0x0d15, 0x0d4d, 0x0d2f, 0x0d4d, 0x0d30}, { {0, 5, 3, {0x1248, 0x1271, 0x1223}}, {1, 2, 0, {0x0000}}, {2, 5, 2, {0x1271, 0x1223}}, {3, 4, 0, {0x0000}}, {4, 5, 1, {0x1271}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   682
		{ 5, {0x0d15, 0x0d4d, 0x0d35, 0x0d4d, 0x0d30}, { {0, 5, 3, {0x1248, 0x1271, 0x1229}}, {1, 2, 0, {0x0000}}, {2, 5, 2, {0x1271, 0x1229}}, {3, 4, 0, {0x0000}}, {4, 5, 1, {0x1271}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   683
662fa7de7023 201024_05
hgs
parents:
diff changeset
   684
		//	one of (LLA, LLLA, RRA) and YA to shaper
662fa7de7023 201024_05
hgs
parents:
diff changeset
   685
		//	one of (LLA, LLLA, RRA) and VA to shaper
662fa7de7023 201024_05
hgs
parents:
diff changeset
   686
		{ 2, {0x0d33, 0x0d2f}, { {0, 1, 1, {0x1227}}, {1, 2, 1, {0x1223}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   687
		{ 2, {0x0d34, 0x0d2f}, { {0, 1, 1, {0x1228}}, {1, 2, 1, {0x1223}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   688
		{ 2, {0x0d31, 0x0d2f}, { {0, 1, 1, {0x1225}}, {1, 2, 1, {0x1223}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   689
		{ 2, {0x0d33, 0x0d35}, { {0, 1, 1, {0x1227}}, {1, 2, 1, {0x1229}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   690
		{ 2, {0x0d34, 0x0d35}, { {0, 1, 1, {0x1228}}, {1, 2, 1, {0x1229}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   691
		{ 2, {0x0d31, 0x0d35}, { {0, 1, 1, {0x1225}}, {1, 2, 1, {0x1229}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   692
		//	KSSA
662fa7de7023 201024_05
hgs
parents:
diff changeset
   693
		//0d15, 0d4d, 0d37
662fa7de7023 201024_05
hgs
parents:
diff changeset
   694
		//	Consonant cluster and RA to shaper
662fa7de7023 201024_05
hgs
parents:
diff changeset
   695
		{ 4, {0x0d15, 0x0d4d, 0x0d30, 0x0d30}, { {0, 3, 2, {0x1271, 0x120a}}, {1, 2, 0, {0x0000}}, {2, 3, 1, {0x1271}}, {3, 4, 1, {0x1224}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   696
662fa7de7023 201024_05
hgs
parents:
diff changeset
   697
		//	one of (LLA, LLLA, RRA) and RA to shaper
662fa7de7023 201024_05
hgs
parents:
diff changeset
   698
		{ 2, {0x0d33, 0x0d30}, { {0, 1, 1, {0x1227}}, {1, 2, 1, {0x1224}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   699
		{ 2, {0x0d34, 0x0d30}, { {0, 1, 1, {0x1228}}, {1, 2, 1, {0x1224}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   700
		{ 2, {0x0d31, 0x0d30}, { {0, 1, 1, {0x1225}}, {1, 2, 1, {0x1224}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   701
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
   702
		//	YAKAR/VAKAR and RA to shaper.
662fa7de7023 201024_05
hgs
parents:
diff changeset
   703
		{ 4, {0x0d15, 0x0d4d, 0x0d2f, 0x0d30}, { {0, 3, 2, {0x120a, 0x126f}}, {1, 2, 0, {0x0000}}, {2, 3, 1, {0x126f}}, {3, 4, 1, {0x1224}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   704
		{ 4, {0x0d15, 0x0d4d, 0x0d35, 0x0d30}, { {0, 3, 2, {0x120a, 0x1270}}, {1, 2, 0, {0x0000}}, {2, 3, 1, {0x1270}}, {3, 4, 1, {0x1224}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   705
662fa7de7023 201024_05
hgs
parents:
diff changeset
   706
		//	Chillu
662fa7de7023 201024_05
hgs
parents:
diff changeset
   707
		//	Chillu and Vowel to shaper
662fa7de7023 201024_05
hgs
parents:
diff changeset
   708
		//	Chillu and Consonant to shaper
662fa7de7023 201024_05
hgs
parents:
diff changeset
   709
		//	Chillu and Modifier to shaper
662fa7de7023 201024_05
hgs
parents:
diff changeset
   710
		//	Chillu and Virama to shaper
662fa7de7023 201024_05
hgs
parents:
diff changeset
   711
		{ 4, {0x0d06, 0x0d23, 0x0d4d, 0x200d}, { {0, 1, 1, {0x11fd}}, {1, 4, 1, {0x1272}}, {2, 3, 0, {0x058f, 0x123a}}, {3, 4, 0, {0x0d30}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   712
		{ 4, {0x0d06, 0x0d28, 0x0d4d, 0x200d}, { {0, 1, 1, {0x11fd}}, {1, 4, 1, {0x1273}}, {2, 3, 0, {0x058f, 0x123a}}, {3, 4, 0, {0x0d30}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   713
		{ 4, {0x0d06, 0x0d30, 0x0d4d, 0x200d}, { {0, 1, 1, {0x11fd}}, {1, 4, 1, {0x1274}}, {2, 3, 0, {0x058f, 0x123a}}, {3, 4, 0, {0x0d30}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   714
		{ 4, {0x0d06, 0x0d32, 0x0d4d, 0x200d}, { {0, 1, 1, {0x11fd}}, {1, 4, 1, {0x1276}}, {2, 3, 0, {0x058f, 0x123a}}, {3, 4, 0, {0x0d30}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   715
		{ 4, {0x0d06, 0x0d33, 0x0d4d, 0x200d}, { {0, 1, 1, {0x11fd}}, {1, 4, 1, {0x1275}}, {2, 3, 0, {0x058f, 0x123a}}, {3, 4, 0, {0x0d30}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   716
662fa7de7023 201024_05
hgs
parents:
diff changeset
   717
		{ 4, {0x0d23, 0x0d4d, 0x200d, 0x0d06}, { {0, 3, 1, {0x1272}}, {1, 2, 0, {0x0000}}, {2, 3, 0, {0x0000}}, {3, 4, 1, {0x11fd}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   718
		{ 4, {0x0d28, 0x0d4d, 0x200d, 0x0d09}, { {0, 3, 1, {0x1273}}, {1, 2, 0, {0x0000}}, {2, 3, 0, {0x0000}}, {3, 4, 1, {0x1200}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   719
		{ 4, {0x0d30, 0x0d4d, 0x200d, 0x0d0a}, { {0, 3, 1, {0x1274}}, {1, 2, 0, {0x0000}}, {2, 3, 0, {0x0000}}, {3, 4, 1, {0x1201}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   720
		{ 4, {0x0d32, 0x0d4d, 0x200d, 0x0d0f}, { {0, 3, 1, {0x1276}}, {1, 2, 0, {0x0000}}, {2, 3, 0, {0x0000}}, {3, 4, 1, {0x1205}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   721
		{ 4, {0x0d33, 0x0d4d, 0x200d, 0x0d13}, { {0, 3, 1, {0x1275}}, {1, 2, 0, {0x0000}}, {2, 3, 0, {0x0000}}, {3, 4, 1, {0x1208}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   722
662fa7de7023 201024_05
hgs
parents:
diff changeset
   723
		{ 4, {0x0d23, 0x0d4d, 0x200d, 0x0d16}, { {0, 3, 1, {0x1272}}, {1, 2, 0, {0x0000}}, {2, 3, 0, {0x0000}}, {3, 4, 1, {0x120b}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   724
		{ 4, {0x0d28, 0x0d4d, 0x200d, 0x0d19}, { {0, 3, 1, {0x1273}}, {1, 2, 0, {0x0000}}, {2, 3, 0, {0x0000}}, {3, 4, 1, {0x120e}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   725
		{ 4, {0x0d30, 0x0d4d, 0x200d, 0x0d1a}, { {0, 3, 1, {0x1274}}, {1, 2, 0, {0x0000}}, {2, 3, 0, {0x0000}}, {3, 4, 1, {0x120f}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   726
		{ 4, {0x0d32, 0x0d4d, 0x200d, 0x0d1f}, { {0, 3, 1, {0x1276}}, {1, 2, 0, {0x0000}}, {2, 3, 0, {0x0000}}, {3, 4, 1, {0x1214}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   727
		{ 4, {0x0d33, 0x0d4d, 0x200d, 0x0d31}, { {0, 3, 1, {0x1275}}, {1, 2, 0, {0x0000}}, {2, 3, 0, {0x0000}}, {3, 4, 1, {0x1225}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   728
662fa7de7023 201024_05
hgs
parents:
diff changeset
   729
		{ 4, {0x0d23, 0x0d4d, 0x200d, 0x0d02}, { {0, 3, 1, {0x1272}}, {1, 2, 0, {0x0000}}, {2, 4, 1, {0x11fa}}, {3, 4, 1, {0x11fa}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   730
		{ 4, {0x0d28, 0x0d4d, 0x200d, 0x0d02}, { {0, 3, 1, {0x1273}}, {1, 2, 0, {0x0000}}, {2, 4, 1, {0x11fa}}, {3, 4, 1, {0x11fa}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   731
		{ 4, {0x0d30, 0x0d4d, 0x200d, 0x0d03}, { {0, 3, 1, {0x1274}}, {1, 2, 0, {0x0000}}, {2, 4, 1, {0x11fb}}, {3, 4, 1, {0x11fb}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   732
		{ 4, {0x0d32, 0x0d4d, 0x200d, 0x0d03}, { {0, 3, 1, {0x1276}}, {1, 2, 0, {0x0000}}, {2, 4, 1, {0x11fb}}, {3, 4, 1, {0x11fb}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   733
		{ 4, {0x0d33, 0x0d4d, 0x200d, 0x0d03}, { {0, 3, 1, {0x1275}}, {1, 2, 0, {0x0000}}, {2, 4, 1, {0x11fb}}, {3, 4, 1, {0x11fb}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   734
662fa7de7023 201024_05
hgs
parents:
diff changeset
   735
		{ 4, {0x0d23, 0x0d4d, 0x200d, 0x0d4d}, { {0, 3, 1, {0x1272}}, {1, 2, 0, {0x0000}}, {2, 4, 2, {0x058f, 0x123a}}, {3, 4, 2, {0x058f, 0x123a}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   736
		{ 4, {0x0d28, 0x0d4d, 0x200d, 0x0d4d}, { {0, 3, 1, {0x1273}}, {1, 2, 0, {0x0000}}, {2, 4, 2, {0x058f, 0x123a}}, {3, 4, 2, {0x058f, 0x123a}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   737
		{ 4, {0x0d30, 0x0d4d, 0x200d, 0x0d4d}, { {0, 3, 1, {0x1274}}, {1, 2, 0, {0x0000}}, {2, 4, 2, {0x058f, 0x123a}}, {3, 4, 2, {0x058f, 0x123a}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   738
		{ 4, {0x0d32, 0x0d4d, 0x200d, 0x0d4d}, { {0, 3, 1, {0x1276}}, {1, 2, 0, {0x0000}}, {2, 4, 2, {0x058f, 0x123a}}, {3, 4, 2, {0x058f, 0x123a}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   739
		{ 4, {0x0d33, 0x0d4d, 0x200d, 0x0d4d}, { {0, 3, 1, {0x1275}}, {1, 2, 0, {0x0000}}, {2, 4, 2, {0x058f, 0x123a}}, {3, 4, 2, {0x058f, 0x123a}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   740
		{ -1, {0}, -1,						-1, 0, {0}}
662fa7de7023 201024_05
hgs
parents:
diff changeset
   741
};
662fa7de7023 201024_05
hgs
parents:
diff changeset
   742
662fa7de7023 201024_05
hgs
parents:
diff changeset
   743
LOCAL_D const TTestInput_PositionParam6 Indic_GurmukhiVowelLeading[] = {
662fa7de7023 201024_05
hgs
parents:
diff changeset
   744
		//	ARA, IRI, URA, independent vowel to shaper
662fa7de7023 201024_05
hgs
parents:
diff changeset
   745
		{ 1, {0x0a05}, { {0, 1, 1, {0x12c3}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   746
		{ 1, {0x0a06}, { {0, 1, 1, {0x12c4}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   747
		{ 1, {0x0a07}, { {0, 1, 1, {0x12c5}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   748
		{ 1, {0x0a08}, { {0, 1, 1, {0x12c6}}, {-1, 1, 1, {0} } } },		
662fa7de7023 201024_05
hgs
parents:
diff changeset
   749
		{ 1, {0x0a09}, { {0, 1, 1, {0x12c7}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   750
		{ 1, {0x0a0a}, { {0, 1, 1, {0x12c8}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   751
		{ 1, {0x0a0b}, { {0, 1, 1, {0x0000}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   752
		{ 1, {0x0a0c}, { {0, 1, 1, {0x0000}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   753
		{ 1, {0x0a0d}, { {0, 1, 1, {0x0000}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   754
		{ 1, {0x0a0e}, { {0, 1, 1, {0x0000}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   755
		{ 1, {0x0a0f}, { {0, 1, 1, {0x12c9}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   756
		{ 1, {0x0a10}, { {0, 1, 1, {0x12ca}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   757
		{ 1, {0x0a11}, { {0, 1, 1, {0x0000}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   758
		{ 1, {0x0a12}, { {0, 1, 1, {0x0000}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   759
		{ 1, {0x0a13}, { {0, 1, 1, {0x12cb}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   760
		{ 1, {0x0a14}, { {0, 1, 1, {0x12cc}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   761
		{ 1, {0x0a72}, { {0, 1, 1, {0x130a}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   762
		{ 1, {0x0a73}, { {0, 1, 1, {0x130b}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   763
		//	Valid bear + vowel
662fa7de7023 201024_05
hgs
parents:
diff changeset
   764
		{ 2, {0x0a05, 0x0a3e}, { {0, 2, 2, {0x12c3, 0x12ef}}, {1, 2, 1, {0x12ef}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   765
		{ 2, {0x0a05, 0x0a48}, { {0, 2, 2, {0x12c3, 0x12f5}}, {1, 2, 1, {0x12f5}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   766
		{ 2, {0x0a05, 0x0a4c}, { {0, 2, 2, {0x12c3, 0x12f7}}, {1, 2, 1, {0x12f7}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   767
		{ 2, {0x0a72, 0x0a3f}, { {0, 2, 2, {0x12f0, 0x130a}}, {1, 2, 1, {0x12f0}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   768
		{ 2, {0x0a72, 0x0a40}, { {0, 2, 2, {0x130a, 0x12f1}}, {1, 2, 1, {0x12f1}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   769
		{ 2, {0x0a72, 0x0a47}, { {0, 2, 2, {0x130a, 0x12f4}}, {1, 2, 1, {0x12f4}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   770
		{ 2, {0x0a73, 0x0a41}, { {0, 2, 1, {0x12c7}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   771
		{ 2, {0x0a73, 0x0a42}, { {0, 2, 1, {0x12c8}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   772
		{ 2, {0x0a73, 0x0a4b}, { {0, 2, 1, {0x12cb}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   773
		//	Invalid bear + vowel sequence
662fa7de7023 201024_05
hgs
parents:
diff changeset
   774
		{ 2, {0x0a72, 0x0a4b}, { {0, 1, 1, {0x130a}}, {1, 2, 2, {0x058f, 0x12f6}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   775
		{ 2, {0x0a05, 0x0a4b}, { {0, 1, 1, {0x12c3}}, {1, 2, 2, {0x058f, 0x12f6}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   776
		{ 2, {0x0a73, 0x0a3f}, { {0, 1, 1, {0x130b}}, {1, 2, 2, {0x12f0, 0x058f}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   777
		{ -1, {0}, -1,						-1, 0, {0}}
662fa7de7023 201024_05
hgs
parents:
diff changeset
   778
};
662fa7de7023 201024_05
hgs
parents:
diff changeset
   779
662fa7de7023 201024_05
hgs
parents:
diff changeset
   780
662fa7de7023 201024_05
hgs
parents:
diff changeset
   781
LOCAL_D const TTestInput_PositionParam6 Indic_MalayalamVowelLeading[] = {
662fa7de7023 201024_05
hgs
parents:
diff changeset
   782
		//	Vowel
662fa7de7023 201024_05
hgs
parents:
diff changeset
   783
		{ 1, {0x0d05}, { {0, 1, 1, {0x11fc}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   784
		{ 1, {0x0d06}, { {0, 1, 1, {0x11fd}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   785
		{ 1, {0x0d07}, { {0, 1, 1, {0x11fe}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   786
		{ 1, {0x0d08}, { {0, 1, 1, {0x11ff}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   787
		{ 1, {0x0d09}, { {0, 1, 1, {0x1200}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   788
		{ 1, {0x0d0a}, { {0, 1, 1, {0x1201}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   789
		{ 1, {0x0d0b}, { {0, 1, 1, {0x1202}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   790
		{ 1, {0x0d60}, { {0, 1, 1, {0x123c}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   791
		{ 1, {0x0d0c}, { {0, 1, 1, {0x1203}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   792
		{ 1, {0x0d61}, { {0, 1, 1, {0x123d}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   793
		{ 1, {0x0d0e}, { {0, 1, 1, {0x1204}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   794
		{ 1, {0x0d0f}, { {0, 1, 1, {0x1205}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   795
		{ 1, {0x0d10}, { {0, 1, 1, {0x1206}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   796
		{ 1, {0x0d12}, { {0, 1, 1, {0x1207}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   797
		{ 1, {0x0d13}, { {0, 1, 1, {0x1208}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   798
		{ 1, {0x0d14}, { {0, 1, 1, {0x1209}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   799
		//	Vowel + modifer 
662fa7de7023 201024_05
hgs
parents:
diff changeset
   800
		{ 2, {0x0d05, 0x0d02}, { {0, 2, 2, {0x11fc, 0x11fa}}, {1, 2, 1, {0x11fa}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   801
		{ 2, {0x0d06, 0x0d02}, { {0, 2, 2, {0x11fd, 0x11fa}}, {1, 2, 1, {0x11fa}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   802
		{ 2, {0x0d07, 0x0d02}, { {0, 2, 2, {0x11fe, 0x11fa}}, {1, 2, 1, {0x11fa}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   803
		{ 2, {0x0d08, 0x0d02}, { {0, 2, 2, {0x11ff, 0x11fa}}, {1, 2, 1, {0x11fa}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   804
		{ 2, {0x0d09, 0x0d02}, { {0, 2, 2, {0x1200, 0x11fa}}, {1, 2, 1, {0x11fa}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   805
		{ 2, {0x0d0a, 0x0d02}, { {0, 2, 2, {0x1201, 0x11fa}}, {1, 2, 1, {0x11fa}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   806
		{ 2, {0x0d0b, 0x0d02}, { {0, 2, 2, {0x1202, 0x11fa}}, {1, 2, 1, {0x11fa}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   807
		{ 2, {0x0d60, 0x0d02}, { {0, 2, 2, {0x123c, 0x11fa}}, {1, 2, 1, {0x11fa}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   808
		{ 2, {0x0d0c, 0x0d03}, { {0, 2, 2, {0x1203, 0x11fb}}, {1, 2, 1, {0x11fb}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   809
		{ 2, {0x0d61, 0x0d03}, { {0, 2, 2, {0x123d, 0x11fb}}, {1, 2, 1, {0x11fb}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   810
		{ 2, {0x0d0e, 0x0d03}, { {0, 2, 2, {0x1204, 0x11fb}}, {1, 2, 1, {0x11fb}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   811
		{ 2, {0x0d0f, 0x0d03}, { {0, 2, 2, {0x1205, 0x11fb}}, {1, 2, 1, {0x11fb}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   812
		{ 2, {0x0d10, 0x0d03}, { {0, 2, 2, {0x1206, 0x11fb}}, {1, 2, 1, {0x11fb}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   813
		{ 2, {0x0d12, 0x0d03}, { {0, 2, 2, {0x1207, 0x11fb}}, {1, 2, 1, {0x11fb}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   814
		{ 2, {0x0d13, 0x0d03}, { {0, 2, 2, {0x1208, 0x11fb}}, {1, 2, 1, {0x11fb}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   815
		{ 2, {0x0d14, 0x0d03}, { {0, 2, 2, {0x1209, 0x11fb}}, {1, 2, 1, {0x11fb}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   816
		//	Vowel, Modifier, Matra
662fa7de7023 201024_05
hgs
parents:
diff changeset
   817
		{ 3, {0x0d05, 0x0d02, 0x0d3e}, { {0, 2, 2, {0x11fc, 0x11fa}}, {1, 2, 1, {0x11fa}}, {2, 3, 2, {0x058f, 0x122e}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   818
		{ 3, {0x0d06, 0x0d02, 0x0d3f}, { {0, 2, 2, {0x11fd, 0x11fa}}, {1, 2, 1, {0x11fa}}, {2, 3, 2, {0x058f, 0x122f}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   819
		{ 3, {0x0d07, 0x0d02, 0x0d40}, { {0, 2, 2, {0x11fe, 0x11fa}}, {1, 2, 1, {0x11fa}}, {2, 3, 2, {0x058f, 0x1230}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   820
		{ 3, {0x0d08, 0x0d02, 0x0d41}, { {0, 2, 2, {0x11ff, 0x11fa}}, {1, 2, 1, {0x11fa}}, {2, 3, 2, {0x058f, 0x1231}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   821
		{ 3, {0x0d09, 0x0d02, 0x0d42}, { {0, 2, 2, {0x1200, 0x11fa}}, {1, 2, 1, {0x11fa}}, {2, 3, 2, {0x058f, 0x1232}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   822
		{ 3, {0x0d0a, 0x0d02, 0x0d43}, { {0, 2, 2, {0x1201, 0x11fa}}, {1, 2, 1, {0x11fa}}, {2, 3, 2, {0x058f, 0x1233}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   823
		{ 3, {0x0d0b, 0x0d02, 0x0d46}, { {0, 2, 2, {0x1202, 0x11fa}}, {1, 2, 1, {0x11fa}}, {2, 3, 2, {0x1234, 0x058f}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   824
		{ 3, {0x0d60, 0x0d02, 0x0d47}, { {0, 2, 2, {0x123c, 0x11fa}}, {1, 2, 1, {0x11fa}}, {2, 3, 2, {0x1235, 0x058f}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   825
		{ 3, {0x0d0c, 0x0d03, 0x0d48}, { {0, 2, 2, {0x1203, 0x11fb}}, {1, 2, 1, {0x11fb}}, {2, 3, 2, {0x1236, 0x058f}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   826
		{ 3, {0x0d61, 0x0d03, 0x0d4a}, { {0, 2, 2, {0x123d, 0x11fb}}, {1, 2, 1, {0x11fb}}, {2, 3, 3, {0x1234, 0x058f, 0x122e}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   827
		{ 3, {0x0d0e, 0x0d03, 0x0d4b}, { {0, 2, 2, {0x1204, 0x11fb}}, {1, 2, 1, {0x11fb}}, {2, 3, 3, {0x1235, 0x058f, 0x122e}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   828
		{ 3, {0x0d0f, 0x0d03, 0x0d4c}, { {0, 2, 2, {0x1205, 0x11fb}}, {1, 2, 1, {0x11fb}}, {2, 3, 2, {0x058f, 0x123b}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   829
		{ 3, {0x0d10, 0x0d03, 0x0d3e}, { {0, 2, 2, {0x1206, 0x11fb}}, {1, 2, 1, {0x11fb}}, {2, 3, 2, {0x058f, 0x122e}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   830
		{ 3, {0x0d12, 0x0d03, 0x0d3f}, { {0, 2, 2, {0x1207, 0x11fb}}, {1, 2, 1, {0x11fb}}, {2, 3, 2, {0x058f, 0x122f}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   831
		{ 3, {0x0d13, 0x0d03, 0x0d40}, { {0, 2, 2, {0x1208, 0x11fb}}, {1, 2, 1, {0x11fb}}, {2, 3, 2, {0x058f, 0x1230}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   832
		{ 3, {0x0d14, 0x0d03, 0x0d4c}, { {0, 2, 2, {0x1209, 0x11fb}}, {1, 2, 1, {0x11fb}}, {2, 3, 2, {0x058f, 0x123b}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   833
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
   834
		//	Vowel, Virama,
662fa7de7023 201024_05
hgs
parents:
diff changeset
   835
		{ 2, {0x0d05, 0x0d4d}, { {0, 1, 1, {0x11fc}}, {1, 2, 2, {0x058f, 0x123a}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   836
		{ 2, {0x0d06, 0x0d4d}, { {0, 1, 1, {0x11fd}}, {1, 2, 2, {0x058f, 0x123a}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   837
		{ 2, {0x0d07, 0x0d4d}, { {0, 1, 1, {0x11fe}}, {1, 2, 2, {0x058f, 0x123a}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   838
		{ 2, {0x0d08, 0x0d4d}, { {0, 1, 1, {0x11ff}}, {1, 2, 2, {0x058f, 0x123a}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   839
		{ 2, {0x0d09, 0x0d4d}, { {0, 1, 1, {0x1200}}, {1, 2, 2, {0x058f, 0x123a}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   840
		{ 2, {0x0d0a, 0x0d4d}, { {0, 1, 1, {0x1201}}, {1, 2, 2, {0x058f, 0x123a}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   841
		{ 2, {0x0d0b, 0x0d4d}, { {0, 1, 1, {0x1202}}, {1, 2, 2, {0x058f, 0x123a}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   842
		{ 2, {0x0d60, 0x0d4d}, { {0, 1, 1, {0x123c}}, {1, 2, 2, {0x058f, 0x123a}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   843
		{ 2, {0x0d0c, 0x0d4d}, { {0, 1, 1, {0x1203}}, {1, 2, 2, {0x058f, 0x123a}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   844
		{ 2, {0x0d61, 0x0d4d}, { {0, 1, 1, {0x123d}}, {1, 2, 2, {0x058f, 0x123a}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   845
		{ 2, {0x0d0e, 0x0d4d}, { {0, 1, 1, {0x1204}}, {1, 2, 2, {0x058f, 0x123a}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   846
		{ 2, {0x0d0f, 0x0d4d}, { {0, 1, 1, {0x1205}}, {1, 2, 2, {0x058f, 0x123a}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   847
		{ 2, {0x0d10, 0x0d4d}, { {0, 1, 1, {0x1206}}, {1, 2, 2, {0x058f, 0x123a}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   848
		{ 2, {0x0d12, 0x0d4d}, { {0, 1, 1, {0x1207}}, {1, 2, 2, {0x058f, 0x123a}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   849
		{ 2, {0x0d13, 0x0d4d}, { {0, 1, 1, {0x1208}}, {1, 2, 2, {0x058f, 0x123a}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   850
		{ 2, {0x0d14, 0x0d4d}, { {0, 1, 1, {0x1209}}, {1, 2, 2, {0x058f, 0x123a}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   851
662fa7de7023 201024_05
hgs
parents:
diff changeset
   852
		//	Vowel, Matra,
662fa7de7023 201024_05
hgs
parents:
diff changeset
   853
		{ 2, {0x0d05, 0x0d3e}, { {0, 1, 1, {0x11fc}}, {1, 2, 2, {0x058f, 0x122e}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   854
		{ 2, {0x0d06, 0x0d3f}, { {0, 1, 1, {0x11fd}}, {1, 2, 2, {0x058f, 0x122f}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   855
		{ 2, {0x0d07, 0x0d40}, { {0, 1, 1, {0x11fe}}, {1, 2, 2, {0x058f, 0x1230}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   856
		{ 2, {0x0d08, 0x0d41}, { {0, 1, 1, {0x11ff}}, {1, 2, 2, {0x058f, 0x1231}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   857
		{ 2, {0x0d09, 0x0d42}, { {0, 1, 1, {0x1200}}, {1, 2, 2, {0x058f, 0x1232}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   858
		{ 2, {0x0d0a, 0x0d43}, { {0, 1, 1, {0x1201}}, {1, 2, 2, {0x058f, 0x1233}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   859
		{ 2, {0x0d0b, 0x0d46}, { {0, 1, 1, {0x1202}}, {1, 2, 2, {0x1234, 0x058f}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   860
		{ 2, {0x0d60, 0x0d47}, { {0, 1, 1, {0x123c}}, {1, 2, 2, {0x1235, 0x058f}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   861
		{ 2, {0x0d0c, 0x0d48}, { {0, 1, 1, {0x1203}}, {1, 2, 2, {0x1236, 0x058f}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   862
		{ 2, {0x0d61, 0x0d4a}, { {0, 1, 1, {0x123d}}, {1, 2, 3, {0x1234, 0x058f, 0x122e}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   863
		{ 2, {0x0d0e, 0x0d4b}, { {0, 1, 1, {0x1204}}, {1, 2, 3, {0x1235, 0x058f, 0x122e}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   864
		{ 2, {0x0d0f, 0x0d4c}, { {0, 1, 1, {0x1205}}, {1, 2, 2, {0x058f, 0x123b}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   865
		{ 2, {0x0d10, 0x0d3e}, { {0, 1, 1, {0x1206}}, {1, 2, 2, {0x058f, 0x122e}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   866
		{ 2, {0x0d12, 0x0d3f}, { {0, 1, 1, {0x1207}}, {1, 2, 2, {0x058f, 0x122f}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   867
		{ 2, {0x0d13, 0x0d40}, { {0, 1, 1, {0x1208}}, {1, 2, 2, {0x058f, 0x1230}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   868
		{ 2, {0x0d14, 0x0d4c}, { {0, 1, 1, {0x1209}}, {1, 2, 2, {0x058f, 0x123b}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   869
		//	Vowel Virma, Matra
662fa7de7023 201024_05
hgs
parents:
diff changeset
   870
		{ 3, {0x0d05, 0x0d4d, 0x0d3e}, { {0, 1, 1, {0x11fc}}, {1, 2, 2, {0x058f, 0x123a}}, {2, 3, 2, {0x058f, 0x122e}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   871
		{ 3, {0x0d06, 0x0d4d, 0x0d3f}, { {0, 1, 1, {0x11fd}}, {1, 2, 2, {0x058f, 0x123a}}, {2, 3, 2, {0x058f, 0x122f}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   872
		{ 3, {0x0d07, 0x0d4d, 0x0d40}, { {0, 1, 1, {0x11fe}}, {1, 2, 2, {0x058f, 0x123a}}, {2, 3, 2, {0x058f, 0x1230}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   873
		{ 3, {0x0d08, 0x0d4d, 0x0d41}, { {0, 1, 1, {0x11ff}}, {1, 2, 2, {0x058f, 0x123a}}, {2, 3, 2, {0x058f, 0x1231}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   874
		{ 3, {0x0d09, 0x0d4d, 0x0d42}, { {0, 1, 1, {0x1200}}, {1, 2, 2, {0x058f, 0x123a}}, {2, 3, 2, {0x058f, 0x1232}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   875
		{ 3, {0x0d0a, 0x0d4d, 0x0d43}, { {0, 1, 1, {0x1201}}, {1, 2, 2, {0x058f, 0x123a}}, {2, 3, 2, {0x058f, 0x1233}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   876
		{ 3, {0x0d0b, 0x0d4d, 0x0d46}, { {0, 1, 1, {0x1202}}, {1, 2, 2, {0x058f, 0x123a}}, {2, 3, 2, {0x1234, 0x058f}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   877
		{ 3, {0x0d60, 0x0d4d, 0x0d47}, { {0, 1, 1, {0x123c}}, {1, 2, 2, {0x058f, 0x123a}}, {2, 3, 2, {0x1235, 0x058f}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   878
		{ 3, {0x0d0c, 0x0d4d, 0x0d48}, { {0, 1, 1, {0x1203}}, {1, 2, 2, {0x058f, 0x123a}}, {2, 3, 2, {0x1236, 0x058f}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   879
		{ 3, {0x0d61, 0x0d4d, 0x0d4a}, { {0, 1, 1, {0x123d}}, {1, 2, 2, {0x058f, 0x123a}}, {2, 3, 3, {0x1234, 0x058f, 0x122e}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   880
		{ 3, {0x0d0e, 0x0d4d, 0x0d4b}, { {0, 1, 1, {0x1204}}, {1, 2, 2, {0x058f, 0x123a}}, {2, 3, 3, {0x1235, 0x058f, 0x122e}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   881
		{ 3, {0x0d0f, 0x0d4d, 0x0d4c}, { {0, 1, 1, {0x1205}}, {1, 2, 2, {0x058f, 0x123a}}, {2, 3, 2, {0x058f, 0x123b}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   882
		{ 3, {0x0d10, 0x0d4d, 0x0d3e}, { {0, 1, 1, {0x1206}}, {1, 2, 2, {0x058f, 0x123a}}, {2, 3, 2, {0x058f, 0x122e}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   883
		{ 3, {0x0d12, 0x0d4d, 0x0d3f}, { {0, 1, 1, {0x1207}}, {1, 2, 2, {0x058f, 0x123a}}, {2, 3, 2, {0x058f, 0x122f}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   884
		{ 3, {0x0d13, 0x0d4d, 0x0d40}, { {0, 1, 1, {0x1208}}, {1, 2, 2, {0x058f, 0x123a}}, {2, 3, 2, {0x058f, 0x1230}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   885
		{ 3, {0x0d14, 0x0d4d, 0x0d4c}, { {0, 1, 1, {0x1209}}, {1, 2, 2, {0x058f, 0x123a}}, {2, 3, 2, {0x058f, 0x123b}}, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
   886
		{ -1, {0}, -1,						-1, 0, {0}}
662fa7de7023 201024_05
hgs
parents:
diff changeset
   887
};
662fa7de7023 201024_05
hgs
parents:
diff changeset
   888
662fa7de7023 201024_05
hgs
parents:
diff changeset
   889
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
   890
 This array of structs is used in the test routine 
662fa7de7023 201024_05
hgs
parents:
diff changeset
   891
 CTGlyphSelection::TestThai_InvalidGlyphClusters() to verify that
662fa7de7023 201024_05
hgs
parents:
diff changeset
   892
 GetCharacterPosition() correctly uses the dotted circle character
662fa7de7023 201024_05
hgs
parents:
diff changeset
   893
 when it crosses a glyph cluster boundary and finds invalid combining
662fa7de7023 201024_05
hgs
parents:
diff changeset
   894
 characters.
662fa7de7023 201024_05
hgs
parents:
diff changeset
   895
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
   896
LOCAL_D const TTestInput_PositionParam2 Thai_GlyphClusterBoundaries[] = {
662fa7de7023 201024_05
hgs
parents:
diff changeset
   897
//    --TEXT----------------	--INVOKE 1---------------		--INVOKE 2----------------
662fa7de7023 201024_05
hgs
parents:
diff changeset
   898
662fa7de7023 201024_05
hgs
parents:
diff changeset
   899
//0.TEST D1 - Control character - skipped
662fa7de7023 201024_05
hgs
parents:
diff changeset
   900
662fa7de7023 201024_05
hgs
parents:
diff changeset
   901
//0.TEST D2 - Non Thai letter
662fa7de7023 201024_05
hgs
parents:
diff changeset
   902
	{ 2, {0x0E3F, 0x0E5B}, 	 	{{0, 1, 1, {0x0E3F}},			{1, 2, 1, {0x0E5B}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   903
	{ 2, {0x0041, 0x0E03}, 	 	{{0, 1, 1, {0x0041}},			{1, 2, 1, {0x0E03}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   904
	{ 2, {0x0E2F, 0x0E40}, 	 	{{0, 1, 1, {0x0E2F}},			{1, 2, 1, {0x0E40}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   905
	{ 2, {0x0E3F, 0x0E30}, 	 	{{0, 1, 1, {0x0E3F}},			{1, 2, 1, {0x0E30}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   906
	{ 2, {0x0E46, 0x0E45}, 	 	{{0, 1, 1, {0x0E46}},			{1, 2, 1, {0x0E45}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   907
	{ 2, {0x0E4F, 0x0E24}, 	 	{{0, 1, 1, {0x0E4F}},			{1, 2, 1, {0x0E24}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   908
662fa7de7023 201024_05
hgs
parents:
diff changeset
   909
	{ 2, {0x0E50, 0x0E38}, 	 	{{0, 1, 1, {0x0E50}},			{1, 2, 2, {KUnicodeDottedCircle, 0x0E38}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   910
	{ 2, {0x0E51, 0x0E39}, 	 	{{0, 1, 1, {0x0E51}},			{1, 2, 2, {KUnicodeDottedCircle, 0x0E39}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   911
	{ 2, {0x0E52, 0x0E3A}, 	 	{{0, 1, 1, {0x0E52}},			{1, 2, 2, {KUnicodeDottedCircle, 0x0E3A}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   912
	{ 2, {0x0E55, 0x0E49}, 	 	{{0, 1, 1, {0x0E55}},			{1, 2, 2, {KUnicodeDottedCircle, 0xF70B}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   913
	{ 2, {0x0E56, 0x0E4C}, 	 	{{0, 1, 1, {0x0E56}},			{1, 2, 2, {KUnicodeDottedCircle, 0xF70E}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   914
	{ 2, {0x0E58, 0x0E47}, 	 	{{0, 1, 1, {0x0E58}},			{1, 2, 2, {KUnicodeDottedCircle, 0x0E47}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   915
	{ 2, {0x0E59, 0x0E4E}, 	 	{{0, 1, 1, {0x0E59}},			{1, 2, 2, {KUnicodeDottedCircle, 0x0E4E}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   916
	{ 2, {0x0E5A, 0x0E34}, 	 	{{0, 1, 1, {0x0E5A}},			{1, 2, 2, {KUnicodeDottedCircle, 0x0E34}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   917
	{ 2, {0x0E5B, 0x0E31}, 	 	{{0, 1, 1, {0x0E5B}},			{1, 2, 2, {KUnicodeDottedCircle, 0x0E31}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   918
	{ 2, {0x005A, 0x0E37}, 	 	{{0, 1, 1, {0x005A}},			{1, 2, 2, {KUnicodeDottedCircle, 0x0E37}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   919
662fa7de7023 201024_05
hgs
parents:
diff changeset
   920
//16.TEST D3 - Thai consonant
662fa7de7023 201024_05
hgs
parents:
diff changeset
   921
	{ 2, {0x0E01, 0x0E3F},	 	{{0, 1, 1, {0x0E01}},			{1, 2, 1, {0x0E3F}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   922
	{ 2, {0x0E01, 0x0E03}, 	 	{{0, 1, 1, {0x0E01}},			{1, 2, 1, {0x0E03}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   923
	{ 2, {0x0E02, 0x0E40}, 	 	{{0, 1, 1, {0x0E02}},			{1, 2, 1, {0x0E40}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   924
	{ 2, {0x0E03, 0x0E30}, 	 	{{0, 1, 1, {0x0E03}},			{1, 2, 1, {0x0E30}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   925
	{ 2, {0x0E04, 0x0E45}, 	 	{{0, 1, 1, {0x0E04}},			{1, 2, 1, {0x0E45}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   926
	{ 2, {0x0E05, 0x0E24}, 	 	{{0, 1, 1, {0x0E05}},			{1, 2, 1, {0x0E24}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   927
662fa7de7023 201024_05
hgs
parents:
diff changeset
   928
	{ 2, {0x0E06, 0x0E38}, 	 	{{0, 2, 2, {0x0E06, 0x0E38}},	{-1, -1, 0, {0}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   929
	{ 2, {0x0E07, 0x0E39}, 	 	{{0, 2, 2, {0x0E07, 0x0E39}},	{-1, -1, 0, {0}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   930
	{ 2, {0x0E23, 0x0E3A}, 	 	{{0, 2, 2, {0x0E23, 0x0E3A}},	{-1, -1, 0, {0}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   931
	{ 2, {0x0E25, 0x0E49}, 	 	{{0, 2, 2, {0x0E25, 0xF70B}},	{-1, -1, 0, {0}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   932
	{ 2, {0x0E27, 0x0E4C}, 	 	{{0, 2, 2, {0x0E27, 0xF70E}},	{-1, -1, 0, {0}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   933
	{ 2, {0x0E28, 0x0E47}, 	 	{{0, 2, 2, {0x0E28, 0x0E47}},	{-1, -1, 0, {0}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   934
	{ 2, {0x0E29, 0x0E4E}, 	 	{{0, 2, 2, {0x0E29, 0x0E4E}},	{-1, -1, 0, {0}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   935
	{ 2, {0x0E2A, 0x0E34}, 	 	{{0, 2, 2, {0x0E2A, 0x0E34}},	{-1, -1, 0, {0}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   936
	{ 2, {0x0E2D, 0x0E31}, 	 	{{0, 2, 2, {0x0E2D, 0x0E31}},	{-1, -1, 0, {0}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   937
	{ 2, {0x0E2E, 0x0E37}, 	 	{{0, 2, 2, {0x0E2E, 0x0E37}},	{-1, -1, 0, {0}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   938
662fa7de7023 201024_05
hgs
parents:
diff changeset
   939
//32.TEST D4 - Thai leading vowel
662fa7de7023 201024_05
hgs
parents:
diff changeset
   940
	{ 2, {0x0E40, 0x0E3F}, 	 	{{0, 1, 1, {0x0E40}},			{1, 2, 1, {0x0E3F}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   941
	{ 2, {0x0E41, 0x0E03}, 	 	{{0, 1, 1, {0x0E41}},			{1, 2, 1, {0x0E03}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   942
	{ 2, {0x0E42, 0x0E40}, 	 	{{0, 1, 1, {0x0E42}},			{1, 2, 1, {0x0E40}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   943
	{ 2, {0x0E43, 0x0E30}, 	 	{{0, 1, 1, {0x0E43}},			{1, 2, 1, {0x0E30}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   944
	{ 2, {0x0E44, 0x0E45}, 	 	{{0, 1, 1, {0x0E44}},			{1, 2, 1, {0x0E45}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   945
	{ 2, {0x0E44, 0x0E24}, 	 	{{0, 1, 1, {0x0E44}},			{1, 2, 1, {0x0E24}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   946
662fa7de7023 201024_05
hgs
parents:
diff changeset
   947
	{ 2, {0x0E40, 0x0E38},		{{0, 1, 1, {0x0E40}},			{1, 2, 2, {KUnicodeDottedCircle, 0x0E38}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   948
	{ 2, {0x0E41, 0x0E39}, 	 	{{0, 1, 1, {0x0E41}},			{1, 2, 2, {KUnicodeDottedCircle, 0x0E39}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   949
	{ 2, {0x0E42, 0x0E3A}, 	 	{{0, 1, 1, {0x0E42}},			{1, 2, 2, {KUnicodeDottedCircle, 0x0E3A}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   950
	{ 2, {0x0E43, 0x0E49}, 	 	{{0, 1, 1, {0x0E43}},			{1, 2, 2, {KUnicodeDottedCircle, 0xF70B}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   951
	{ 2, {0x0E44, 0x0E4C}, 	 	{{0, 1, 1, {0x0E44}},			{1, 2, 2, {KUnicodeDottedCircle, 0xF70E}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   952
	{ 2, {0x0E40, 0x0E47}, 	 	{{0, 1, 1, {0x0E40}},			{1, 2, 2, {KUnicodeDottedCircle, 0x0E47}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   953
	{ 2, {0x0E41, 0x0E4E}, 	 	{{0, 1, 1, {0x0E41}},			{1, 2, 2, {KUnicodeDottedCircle, 0x0E4E}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   954
	{ 2, {0x0E42, 0x0E34}, 	 	{{0, 1, 1, {0x0E42}},			{1, 2, 2, {KUnicodeDottedCircle, 0x0E34}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   955
	{ 2, {0x0E43, 0x0E31}, 	 	{{0, 1, 1, {0x0E43}},			{1, 2, 2, {KUnicodeDottedCircle, 0x0E31}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   956
	{ 2, {0x0E44, 0x0E37}, 	 	{{0, 1, 1, {0x0E44}},			{1, 2, 2, {KUnicodeDottedCircle, 0x0E37}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   957
662fa7de7023 201024_05
hgs
parents:
diff changeset
   958
//48.TEST D5 - Thai following vowel 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
   959
	{ 2, {0x0E30, 0x0E3F}, 	 	{{0, 1, 1, {0x0E30}},				{1, 2, 1, {0x0E3F}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   960
	{ 2, {0x0E32, 0x0E03}, 	 	{{0, 1, 1, {0x0E32}},				{1, 2, 1, {0x0E03}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   961
	{ 2, {0x0E33, 0x0E40}, 	 	{{0, 1, 2, {KUnicodeDottedCircle, 0x0E33}},{1, 2, 1, {0x0E40}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   962
	{ 2, {0x0E30, 0x0E30}, 	 	{{0, 1, 1, {0x0E30}},				{1, 2, 1, {0x0E30}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   963
	{ 2, {0x0E32, 0x0E45}, 	 	{{0, 1, 1, {0x0E32}},				{1, 2, 1, {0x0E45}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   964
	{ 2, {0x0E33, 0x0E24}, 	 	{{0, 1, 2, {KUnicodeDottedCircle, 0x0E33}},{1, 2, 1, {0x0E24}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   965
662fa7de7023 201024_05
hgs
parents:
diff changeset
   966
	{ 2, {0x0E30, 0x0E38},		{{0, 1, 1, {0x0E30}},				{1, 2, 2, {KUnicodeDottedCircle, 0x0E38}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   967
	{ 2, {0x0E32, 0x0E39}, 	 	{{0, 1, 1, {0x0E32}},				{1, 2, 2, {KUnicodeDottedCircle, 0x0E39}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   968
	{ 2, {0x0E33, 0x0E3A}, 	 	{{0, 1, 2, {KUnicodeDottedCircle, 0x0E33}},{1, 2, 2, {KUnicodeDottedCircle, 0x0E3A}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   969
	{ 2, {0x0E30, 0x0E49}, 	 	{{0, 1, 1, {0x0E30}},				{1, 2, 2, {KUnicodeDottedCircle, 0xF70B}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   970
	{ 2, {0x0E32, 0x0E4C}, 	 	{{0, 1, 1, {0x0E32}},				{1, 2, 2, {KUnicodeDottedCircle, 0xF70E}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   971
	{ 2, {0x0E33, 0x0E47}, 	 	{{0, 1, 2, {KUnicodeDottedCircle, 0x0E33}},{1, 2, 2, {KUnicodeDottedCircle, 0x0E47}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   972
	{ 2, {0x0E30, 0x0E4E}, 	 	{{0, 1, 1, {0x0E30}},				{1, 2, 2, {KUnicodeDottedCircle, 0x0E4E}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   973
	{ 2, {0x0E32, 0x0E34}, 	 	{{0, 1, 1, {0x0E32}},				{1, 2, 2, {KUnicodeDottedCircle, 0x0E34}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   974
	{ 2, {0x0E33, 0x0E31}, 	 	{{0, 1, 2, {KUnicodeDottedCircle, 0x0E33}},{1, 2, 2, {KUnicodeDottedCircle, 0x0E31}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   975
	{ 2, {0x0E30, 0x0E37}, 	 	{{0, 1, 1, {0x0E30}},				{1, 2, 2, {KUnicodeDottedCircle, 0x0E37}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   976
662fa7de7023 201024_05
hgs
parents:
diff changeset
   977
//64.TEST D6 - Thai following vowel 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
   978
	{ 2, {0x0E45, 0x0E3F}, 	 	{{0, 1, 1, {0x0E45}},			{1, 2, 1, {0x0E3F}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   979
	{ 2, {0x0E45, 0x0E03}, 	 	{{0, 1, 1, {0x0E45}},			{1, 2, 1, {0x0E03}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   980
	{ 2, {0x0E45, 0x0E40}, 	 	{{0, 1, 1, {0x0E45}},			{1, 2, 1, {0x0E40}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   981
	{ 2, {0x0E45, 0x0E30}, 	 	{{0, 1, 1, {0x0E45}},			{1, 2, 1, {0x0E30}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   982
	{ 2, {0x0E45, 0x0E45}, 	 	{{0, 1, 1, {0x0E45}},			{1, 2, 1, {0x0E45}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   983
	{ 2, {0x0E45, 0x0E24}, 	 	{{0, 1, 1, {0x0E45}},			{1, 2, 1, {0x0E24}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   984
662fa7de7023 201024_05
hgs
parents:
diff changeset
   985
	{ 2, {0x0E45, 0x0E38},		{{0, 1, 1, {0x0E45}},			{1, 2, 2, {KUnicodeDottedCircle, 0x0E38}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   986
	{ 2, {0x0E45, 0x0E39}, 	 	{{0, 1, 1, {0x0E45}},			{1, 2, 2, {KUnicodeDottedCircle, 0x0E39}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   987
	{ 2, {0x0E45, 0x0E3A}, 	 	{{0, 1, 1, {0x0E45}},			{1, 2, 2, {KUnicodeDottedCircle, 0x0E3A}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   988
	{ 2, {0x0E45, 0x0E49}, 	 	{{0, 1, 1, {0x0E45}},			{1, 2, 2, {KUnicodeDottedCircle, 0xF70B}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   989
	{ 2, {0x0E45, 0x0E4C}, 	 	{{0, 1, 1, {0x0E45}},			{1, 2, 2, {KUnicodeDottedCircle, 0xF70E}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   990
	{ 2, {0x0E45, 0x0E47}, 	 	{{0, 1, 1, {0x0E45}},			{1, 2, 2, {KUnicodeDottedCircle, 0x0E47}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   991
	{ 2, {0x0E45, 0x0E4E}, 	 	{{0, 1, 1, {0x0E45}},			{1, 2, 2, {KUnicodeDottedCircle, 0x0E4E}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   992
	{ 2, {0x0E45, 0x0E34}, 	 	{{0, 1, 1, {0x0E45}},			{1, 2, 2, {KUnicodeDottedCircle, 0x0E34}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   993
	{ 2, {0x0E45, 0x0E31}, 	 	{{0, 1, 1, {0x0E45}},			{1, 2, 2, {KUnicodeDottedCircle, 0x0E31}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   994
	{ 2, {0x0E45, 0x0E37}, 	 	{{0, 1, 1, {0x0E45}},			{1, 2, 2, {KUnicodeDottedCircle, 0x0E37}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   995
662fa7de7023 201024_05
hgs
parents:
diff changeset
   996
//80.TEST D7 - Thai following vowel 3
662fa7de7023 201024_05
hgs
parents:
diff changeset
   997
	{ 2, {0x0E24, 0x0E3F}, 	 	{{0, 1, 1, {0x0E24}},			{1, 2, 1, {0x0E3F}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   998
	{ 2, {0x0E26, 0x0E03}, 	 	{{0, 1, 1, {0x0E26}},			{1, 2, 1, {0x0E03}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
   999
	{ 2, {0x0E24, 0x0E40}, 	 	{{0, 1, 1, {0x0E24}},			{1, 2, 1, {0x0E40}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1000
	{ 2, {0x0E26, 0x0E30}, 	 	{{0, 1, 1, {0x0E26}},			{1, 2, 1, {0x0E30}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1001
	{ 2, {0x0E24, 0x0E45}, 	 	{{0, 1, 1, {0x0E24}},			{1, 2, 1, {0x0E45}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1002
	{ 2, {0x0E26, 0x0E24}, 	 	{{0, 1, 1, {0x0E26}},			{1, 2, 1, {0x0E24}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1003
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1004
	{ 2, {0x0E24, 0x0E38},		{{0, 2, 2, {0x0E24, 0xF718}},	{-1, -1, 0, {0}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1005
	{ 2, {0x0E26, 0x0E39}, 	 	{{0, 2, 2, {0x0E26, 0xF719}},	{-1, -1, 0, {0}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1006
	{ 2, {0x0E24, 0x0E3A}, 	 	{{0, 2, 2, {0x0E24, 0xF71A}},	{-1, -1, 0, {0}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1007
	{ 2, {0x0E26, 0x0E49}, 	 	{{0, 2, 2, {0x0E26, 0xF70B}},	{-1, -1, 0, {0}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1008
	{ 2, {0x0E24, 0x0E4C}, 	 	{{0, 2, 2, {0x0E24, 0xF70E}},	{-1, -1, 0, {0}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1009
	{ 2, {0x0E26, 0x0E47}, 	 	{{0, 2, 2, {0x0E26, 0x0E47}},	{-1, -1, 0, {0}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1010
	{ 2, {0x0E24, 0x0E4E}, 	 	{{0, 2, 2, {0x0E24, 0x0E4E}},	{-1, -1, 0, {0}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1011
	{ 2, {0x0E26, 0x0E34}, 	 	{{0, 2, 2, {0x0E26, 0x0E34}},	{-1, -1, 0, {0}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1012
	{ 2, {0x0E24, 0x0E31}, 	 	{{0, 2, 2, {0x0E24, 0x0E31}},	{-1, -1, 0, {0}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1013
	{ 2, {0x0E26, 0x0E37}, 	 	{{0, 2, 2, {0x0E26, 0x0E37}},	{-1, -1, 0, {0}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1014
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1015
//96.TEST D8 - Thai NO NU & Below Vowel 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1016
	{ 3, {0x0E19, 0x0E38, 0x0E3F}, 	 	{{0, 2, 2, {0x0E19, 0x0E38}},			{2, 3, 1, {0x0E3F}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1017
	{ 3, {0x0E19, 0x0E38, 0x0E03}, 	 	{{0, 2, 2, {0x0E19, 0x0E38}},			{2, 3, 1, {0x0E03}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1018
	{ 3, {0x0E19, 0x0E38, 0x0E40}, 	 	{{0, 2, 2, {0x0E19, 0x0E38}},			{2, 3, 1, {0x0E40}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1019
	{ 3, {0x0E19, 0x0E38, 0x0E30}, 	 	{{0, 2, 2, {0x0E19, 0x0E38}},			{2, 3, 1, {0x0E30}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1020
	{ 3, {0x0E19, 0x0E38, 0x0E45}, 	 	{{0, 2, 2, {0x0E19, 0x0E38}},			{2, 3, 1, {0x0E45}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1021
	{ 3, {0x0E19, 0x0E38, 0x0E24}, 	 	{{0, 2, 2, {0x0E19, 0x0E38}},			{2, 3, 1, {0x0E24}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1022
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1023
	{ 3, {0x0E19, 0x0E38, 0x0E38},		{{0, 2, 2, {0x0E19, 0x0E38}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E38}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1024
	{ 3, {0x0E19, 0x0E38, 0x0E39}, 	 	{{0, 2, 2, {0x0E19, 0x0E38}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E39}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1025
	{ 3, {0x0E19, 0x0E38, 0x0E3A}, 	 	{{0, 2, 2, {0x0E19, 0x0E38}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E3A}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1026
	{ 3, {0x0E19, 0x0E38, 0x0E49}, 	 	{{0, 3, 3, {0x0E19, 0x0E38, 0xF70B}},	{-1, -1, 0, {0}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1027
	{ 3, {0x0E19, 0x0E38, 0x0E4C}, 	 	{{0, 3, 3, {0x0E19, 0x0E38, 0xF70E}},	{-1, -1, 0, {0}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1028
	{ 3, {0x0E19, 0x0E38, 0x0E47}, 	 	{{0, 2, 2, {0x0E19, 0x0E38}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E47}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1029
	{ 3, {0x0E19, 0x0E38, 0x0E4E}, 	 	{{0, 2, 2, {0x0E19, 0x0E38}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E4E}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1030
	{ 3, {0x0E19, 0x0E38, 0x0E34}, 	 	{{0, 2, 2, {0x0E19, 0x0E38}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E34}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1031
	{ 3, {0x0E19, 0x0E38, 0x0E31}, 	 	{{0, 2, 2, {0x0E19, 0x0E38}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E31}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1032
	{ 3, {0x0E19, 0x0E38, 0x0E37}, 	 	{{0, 2, 2, {0x0E19, 0x0E38}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E37}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1033
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1034
//112.TEST D9 - Thai NO NU & Below Vowel 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1035
	{ 3, {0x0E19, 0x0E39, 0x0E3F}, 	 	{{0, 2, 2, {0x0E19, 0x0E39}},			{2, 3, 1, {0x0E3F}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1036
	{ 3, {0x0E19, 0x0E39, 0x0E03}, 	 	{{0, 2, 2, {0x0E19, 0x0E39}},			{2, 3, 1, {0x0E03}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1037
	{ 3, {0x0E19, 0x0E39, 0x0E40}, 	 	{{0, 2, 2, {0x0E19, 0x0E39}},			{2, 3, 1, {0x0E40}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1038
	{ 3, {0x0E19, 0x0E39, 0x0E30}, 	 	{{0, 2, 2, {0x0E19, 0x0E39}},			{2, 3, 1, {0x0E30}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1039
	{ 3, {0x0E19, 0x0E39, 0x0E45}, 	 	{{0, 2, 2, {0x0E19, 0x0E39}},			{2, 3, 1, {0x0E45}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1040
	{ 3, {0x0E19, 0x0E39, 0x0E24}, 	 	{{0, 2, 2, {0x0E19, 0x0E39}},			{2, 3, 1, {0x0E24}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1041
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1042
	{ 3, {0x0E19, 0x0E39, 0x0E38},		{{0, 2, 2, {0x0E19, 0x0E39}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E38}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1043
	{ 3, {0x0E19, 0x0E39, 0x0E39}, 	 	{{0, 2, 2, {0x0E19, 0x0E39}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E39}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1044
	{ 3, {0x0E19, 0x0E39, 0x0E3A}, 	 	{{0, 2, 2, {0x0E19, 0x0E39}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E3A}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1045
	{ 3, {0x0E19, 0x0E39, 0x0E49}, 	 	{{0, 3, 3, {0x0E19, 0x0E39, 0xF70B}},	{-1, -1, 0, {0}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1046
	{ 3, {0x0E19, 0x0E39, 0x0E4C}, 	 	{{0, 2, 2, {0x0E19, 0x0E39}},			{2, 3, 2, {KUnicodeDottedCircle, 0xF70E}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1047
	{ 3, {0x0E19, 0x0E39, 0x0E47}, 	 	{{0, 2, 2, {0x0E19, 0x0E39}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E47}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1048
	{ 3, {0x0E19, 0x0E39, 0x0E4E}, 	 	{{0, 2, 2, {0x0E19, 0x0E39}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E4E}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1049
	{ 3, {0x0E19, 0x0E39, 0x0E34}, 	 	{{0, 2, 2, {0x0E19, 0x0E39}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E34}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1050
	{ 3, {0x0E19, 0x0E39, 0x0E31}, 	 	{{0, 2, 2, {0x0E19, 0x0E39}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E31}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1051
	{ 3, {0x0E19, 0x0E39, 0x0E37}, 	 	{{0, 2, 2, {0x0E19, 0x0E39}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E37}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1052
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1053
//128.TEST D10 - Thai NO NU & Below Diacritic
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1054
	{ 3, {0x0E19, 0x0E3A, 0x0E3F}, 	 	{{0, 2, 2, {0x0E19, 0x0E3A}},			{2, 3, 1, {0x0E3F}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1055
	{ 3, {0x0E19, 0x0E3A, 0x0E03}, 	 	{{0, 2, 2, {0x0E19, 0x0E3A}},			{2, 3, 1, {0x0E03}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1056
	{ 3, {0x0E19, 0x0E3A, 0x0E40}, 	 	{{0, 2, 2, {0x0E19, 0x0E3A}},			{2, 3, 1, {0x0E40}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1057
	{ 3, {0x0E19, 0x0E3A, 0x0E30}, 	 	{{0, 2, 2, {0x0E19, 0x0E3A}},			{2, 3, 1, {0x0E30}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1058
	{ 3, {0x0E19, 0x0E3A, 0x0E45}, 	 	{{0, 2, 2, {0x0E19, 0x0E3A}},			{2, 3, 1, {0x0E45}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1059
	{ 3, {0x0E19, 0x0E3A, 0x0E24}, 	 	{{0, 2, 2, {0x0E19, 0x0E3A}},			{2, 3, 1, {0x0E24}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1060
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1061
	{ 3, {0x0E19, 0x0E3A, 0x0E38},		{{0, 2, 2, {0x0E19, 0x0E3A}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E38}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1062
	{ 3, {0x0E19, 0x0E3A, 0x0E39}, 	 	{{0, 2, 2, {0x0E19, 0x0E3A}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E39}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1063
	{ 3, {0x0E19, 0x0E3A, 0x0E3A}, 	 	{{0, 2, 2, {0x0E19, 0x0E3A}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E3A}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1064
	{ 3, {0x0E19, 0x0E3A, 0x0E49}, 	 	{{0, 2, 2, {0x0E19, 0x0E3A}},			{2, 3, 2, {KUnicodeDottedCircle, 0xF70B}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1065
	{ 3, {0x0E19, 0x0E3A, 0x0E4C}, 	 	{{0, 2, 2, {0x0E19, 0x0E3A}},			{2, 3, 2, {KUnicodeDottedCircle, 0xF70E}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1066
	{ 3, {0x0E19, 0x0E3A, 0x0E47}, 	 	{{0, 2, 2, {0x0E19, 0x0E3A}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E47}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1067
	{ 3, {0x0E19, 0x0E3A, 0x0E4E}, 	 	{{0, 2, 2, {0x0E19, 0x0E3A}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E4E}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1068
	{ 3, {0x0E19, 0x0E3A, 0x0E34}, 	 	{{0, 2, 2, {0x0E19, 0x0E3A}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E34}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1069
	{ 3, {0x0E19, 0x0E3A, 0x0E31}, 	 	{{0, 2, 2, {0x0E19, 0x0E3A}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E31}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1070
	{ 3, {0x0E19, 0x0E3A, 0x0E37}, 	 	{{0, 2, 2, {0x0E19, 0x0E3A}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E37}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1071
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1072
//144.TEST D11 - Thai NO NU & Tone mark
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1073
	{ 3, {0x0E19, 0x0E48, 0x0E3F}, 	 	{{0, 2, 2, {0x0E19, 0xF70A}},			{2, 3, 1, {0x0E3F}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1074
	{ 3, {0x0E19, 0x0E49, 0x0E03}, 	 	{{0, 2, 2, {0x0E19, 0xF70B}},			{2, 3, 1, {0x0E03}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1075
	{ 3, {0x0E19, 0x0E4A, 0x0E40}, 	 	{{0, 2, 2, {0x0E19, 0xF70C}},			{2, 3, 1, {0x0E40}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1076
	{ 3, {0x0E19, 0x0E4B, 0x0E30}, 	 	{{0, 2, 2, {0x0E19, 0xF70D}},			{2, 3, 1, {0x0E30}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1077
	{ 3, {0x0E19, 0x0E48, 0x0E45}, 	 	{{0, 2, 2, {0x0E19, 0xF70A}},			{2, 3, 1, {0x0E45}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1078
	{ 3, {0x0E19, 0x0E49, 0x0E24}, 	 	{{0, 2, 2, {0x0E19, 0xF70B}},			{2, 3, 1, {0x0E24}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1079
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1080
	{ 3, {0x0E19, 0x0E4A, 0x0E38},		{{0, 2, 2, {0x0E19, 0xF70C}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E38}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1081
	{ 3, {0x0E19, 0x0E4B, 0x0E39}, 	 	{{0, 2, 2, {0x0E19, 0xF70D}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E39}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1082
	{ 3, {0x0E19, 0x0E48, 0x0E3A}, 	 	{{0, 2, 2, {0x0E19, 0xF70A}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E3A}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1083
	{ 3, {0x0E19, 0x0E49, 0x0E49}, 	 	{{0, 2, 2, {0x0E19, 0xF70B}},			{2, 3, 2, {KUnicodeDottedCircle, 0xF70B}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1084
	{ 3, {0x0E19, 0x0E4A, 0x0E4C}, 	 	{{0, 2, 2, {0x0E19, 0xF70C}},			{2, 3, 2, {KUnicodeDottedCircle, 0xF70E}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1085
	{ 3, {0x0E19, 0x0E4B, 0x0E47}, 	 	{{0, 2, 2, {0x0E19, 0xF70D}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E47}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1086
	{ 3, {0x0E19, 0x0E48, 0x0E4E}, 	 	{{0, 2, 2, {0x0E19, 0xF70A}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E4E}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1087
	{ 3, {0x0E19, 0x0E49, 0x0E34}, 	 	{{0, 2, 2, {0x0E19, 0xF70B}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E34}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1088
	{ 3, {0x0E19, 0x0E4A, 0x0E31}, 	 	{{0, 2, 2, {0x0E19, 0xF70C}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E31}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1089
	{ 3, {0x0E19, 0x0E4B, 0x0E37}, 	 	{{0, 2, 2, {0x0E19, 0xF70D}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E37}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1090
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1091
//160.TEST D12 - Thai NO NU & Above Diacritic 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1092
	{ 3, {0x0E19, 0x0E4C, 0x0E3F}, 	 	{{0, 2, 2, {0x0E19, 0xF70E}},			{2, 3, 1, {0x0E3F}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1093
	{ 3, {0x0E19, 0x0E4D, 0x0E03}, 	 	{{0, 2, 2, {0x0E19, 0x0E4D}},			{2, 3, 1, {0x0E03}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1094
	{ 3, {0x0E19, 0x0E4C, 0x0E40}, 	 	{{0, 2, 2, {0x0E19, 0xF70E}},			{2, 3, 1, {0x0E40}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1095
	{ 3, {0x0E19, 0x0E4D, 0x0E30}, 	 	{{0, 2, 2, {0x0E19, 0x0E4D}},			{2, 3, 1, {0x0E30}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1096
	{ 3, {0x0E19, 0x0E4C, 0x0E45}, 	 	{{0, 2, 2, {0x0E19, 0xF70E}},			{2, 3, 1, {0x0E45}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1097
	{ 3, {0x0E19, 0x0E4D, 0x0E24}, 	 	{{0, 2, 2, {0x0E19, 0x0E4D}},			{2, 3, 1, {0x0E24}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1098
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1099
	{ 3, {0x0E19, 0x0E4C, 0x0E38},		{{0, 2, 2, {0x0E19, 0xF70E}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E38}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1100
	{ 3, {0x0E19, 0x0E4D, 0x0E39}, 	 	{{0, 2, 2, {0x0E19, 0x0E4D}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E39}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1101
	{ 3, {0x0E19, 0x0E4C, 0x0E3A}, 	 	{{0, 2, 2, {0x0E19, 0xF70E}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E3A}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1102
	{ 3, {0x0E19, 0x0E4D, 0x0E49}, 	 	{{0, 2, 2, {0x0E19, 0x0E4D}},			{2, 3, 2, {KUnicodeDottedCircle, 0xF70B}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1103
	{ 3, {0x0E19, 0x0E4C, 0x0E4C}, 	 	{{0, 2, 2, {0x0E19, 0xF70E}},			{2, 3, 2, {KUnicodeDottedCircle, 0xF70E}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1104
	{ 3, {0x0E19, 0x0E4D, 0x0E47}, 	 	{{0, 2, 2, {0x0E19, 0x0E4D}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E47}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1105
	{ 3, {0x0E19, 0x0E4C, 0x0E4E}, 	 	{{0, 2, 2, {0x0E19, 0xF70E}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E4E}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1106
	{ 3, {0x0E19, 0x0E4D, 0x0E34}, 	 	{{0, 2, 2, {0x0E19, 0x0E4D}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E34}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1107
	{ 3, {0x0E19, 0x0E4C, 0x0E31}, 	 	{{0, 2, 2, {0x0E19, 0xF70E}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E31}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1108
	{ 3, {0x0E19, 0x0E4D, 0x0E37}, 	 	{{0, 2, 2, {0x0E19, 0x0E4D}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E37}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1109
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1110
//176.TEST D13 - Thai NO NU & Above Diacritic 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1111
	{ 3, {0x0E19, 0x0E47, 0x0E3F}, 	 	{{0, 2, 2, {0x0E19, 0x0E47}},			{2, 3, 1, {0x0E3F}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1112
	{ 3, {0x0E19, 0x0E47, 0x0E03}, 	 	{{0, 2, 2, {0x0E19, 0x0E47}},			{2, 3, 1, {0x0E03}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1113
	{ 3, {0x0E19, 0x0E47, 0x0E40}, 	 	{{0, 2, 2, {0x0E19, 0x0E47}},			{2, 3, 1, {0x0E40}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1114
	{ 3, {0x0E19, 0x0E47, 0x0E30}, 	 	{{0, 2, 2, {0x0E19, 0x0E47}},			{2, 3, 1, {0x0E30}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1115
	{ 3, {0x0E19, 0x0E47, 0x0E45}, 	 	{{0, 2, 2, {0x0E19, 0x0E47}},			{2, 3, 1, {0x0E45}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1116
	{ 3, {0x0E19, 0x0E47, 0x0E24}, 	 	{{0, 2, 2, {0x0E19, 0x0E47}},			{2, 3, 1, {0x0E24}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1117
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1118
	{ 3, {0x0E19, 0x0E47, 0x0E38},		{{0, 2, 2, {0x0E19, 0x0E47}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E38}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1119
	{ 3, {0x0E19, 0x0E47, 0x0E39}, 	 	{{0, 2, 2, {0x0E19, 0x0E47}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E39}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1120
	{ 3, {0x0E19, 0x0E47, 0x0E3A}, 	 	{{0, 2, 2, {0x0E19, 0x0E47}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E3A}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1121
	{ 3, {0x0E19, 0x0E47, 0x0E49}, 	 	{{0, 2, 2, {0x0E19, 0x0E47}},			{2, 3, 2, {KUnicodeDottedCircle, 0xF70B}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1122
	{ 3, {0x0E19, 0x0E47, 0x0E4C}, 	 	{{0, 2, 2, {0x0E19, 0x0E47}},			{2, 3, 2, {KUnicodeDottedCircle, 0xF70E}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1123
	{ 3, {0x0E19, 0x0E47, 0x0E47}, 	 	{{0, 2, 2, {0x0E19, 0x0E47}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E47}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1124
	{ 3, {0x0E19, 0x0E47, 0x0E4E}, 	 	{{0, 2, 2, {0x0E19, 0x0E47}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E4E}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1125
	{ 3, {0x0E19, 0x0E47, 0x0E34}, 	 	{{0, 2, 2, {0x0E19, 0x0E47}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E34}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1126
	{ 3, {0x0E19, 0x0E47, 0x0E31}, 	 	{{0, 2, 2, {0x0E19, 0x0E47}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E31}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1127
	{ 3, {0x0E19, 0x0E47, 0x0E37}, 	 	{{0, 2, 2, {0x0E19, 0x0E47}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E37}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1128
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1129
//176.TEST D14 - Thai NO NU & Above Diacritic 3
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1130
	{ 3, {0x0E19, 0x0E4E, 0x0E3F}, 	 	{{0, 2, 2, {0x0E19, 0x0E4E}},			{2, 3, 1, {0x0E3F}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1131
	{ 3, {0x0E19, 0x0E4E, 0x0E03}, 	 	{{0, 2, 2, {0x0E19, 0x0E4E}},			{2, 3, 1, {0x0E03}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1132
	{ 3, {0x0E19, 0x0E4E, 0x0E40}, 	 	{{0, 2, 2, {0x0E19, 0x0E4E}},			{2, 3, 1, {0x0E40}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1133
	{ 3, {0x0E19, 0x0E4E, 0x0E30}, 	 	{{0, 2, 2, {0x0E19, 0x0E4E}},			{2, 3, 1, {0x0E30}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1134
	{ 3, {0x0E19, 0x0E4E, 0x0E45}, 	 	{{0, 2, 2, {0x0E19, 0x0E4E}},			{2, 3, 1, {0x0E45}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1135
	{ 3, {0x0E19, 0x0E4E, 0x0E24}, 	 	{{0, 2, 2, {0x0E19, 0x0E4E}},			{2, 3, 1, {0x0E24}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1136
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1137
	{ 3, {0x0E19, 0x0E4E, 0x0E38},		{{0, 2, 2, {0x0E19, 0x0E4E}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E38}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1138
	{ 3, {0x0E19, 0x0E4E, 0x0E39}, 	 	{{0, 2, 2, {0x0E19, 0x0E4E}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E39}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1139
	{ 3, {0x0E19, 0x0E4E, 0x0E3A}, 	 	{{0, 2, 2, {0x0E19, 0x0E4E}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E3A}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1140
	{ 3, {0x0E19, 0x0E4E, 0x0E49}, 	 	{{0, 2, 2, {0x0E19, 0x0E4E}},			{2, 3, 2, {KUnicodeDottedCircle, 0xF70B}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1141
	{ 3, {0x0E19, 0x0E4E, 0x0E4C}, 	 	{{0, 2, 2, {0x0E19, 0x0E4E}},			{2, 3, 2, {KUnicodeDottedCircle, 0xF70E}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1142
	{ 3, {0x0E19, 0x0E4E, 0x0E47}, 	 	{{0, 2, 2, {0x0E19, 0x0E4E}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E47}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1143
	{ 3, {0x0E19, 0x0E4E, 0x0E4E}, 	 	{{0, 2, 2, {0x0E19, 0x0E4E}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E4E}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1144
	{ 3, {0x0E19, 0x0E4E, 0x0E34}, 	 	{{0, 2, 2, {0x0E19, 0x0E4E}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E34}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1145
	{ 3, {0x0E19, 0x0E4E, 0x0E31}, 	 	{{0, 2, 2, {0x0E19, 0x0E4E}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E31}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1146
	{ 3, {0x0E19, 0x0E4E, 0x0E37}, 	 	{{0, 2, 2, {0x0E19, 0x0E4E}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E37}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1147
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1148
//192.TEST D15 - Thai NO NU & Above Vowel 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1149
	{ 3, {0x0E19, 0x0E34, 0x0E3F}, 	 	{{0, 2, 2, {0x0E19, 0x0E34}},			{2, 3, 1, {0x0E3F}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1150
	{ 3, {0x0E19, 0x0E34, 0x0E03}, 	 	{{0, 2, 2, {0x0E19, 0x0E34}},			{2, 3, 1, {0x0E03}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1151
	{ 3, {0x0E19, 0x0E34, 0x0E40}, 	 	{{0, 2, 2, {0x0E19, 0x0E34}},			{2, 3, 1, {0x0E40}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1152
	{ 3, {0x0E19, 0x0E34, 0x0E30}, 	 	{{0, 2, 2, {0x0E19, 0x0E34}},			{2, 3, 1, {0x0E30}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1153
	{ 3, {0x0E19, 0x0E34, 0x0E45}, 	 	{{0, 2, 2, {0x0E19, 0x0E34}},			{2, 3, 1, {0x0E45}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1154
	{ 3, {0x0E19, 0x0E34, 0x0E24}, 	 	{{0, 2, 2, {0x0E19, 0x0E34}},			{2, 3, 1, {0x0E24}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1155
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1156
	{ 3, {0x0E19, 0x0E34, 0x0E38},		{{0, 2, 2, {0x0E19, 0x0E34}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E38}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1157
	{ 3, {0x0E19, 0x0E34, 0x0E39}, 	 	{{0, 2, 2, {0x0E19, 0x0E34}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E39}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1158
	{ 3, {0x0E19, 0x0E34, 0x0E3A}, 	 	{{0, 2, 2, {0x0E19, 0x0E34}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E3A}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1159
	{ 3, {0x0E19, 0x0E34, 0x0E49}, 	 	{{0, 3, 3, {0x0E19, 0x0E34, 0x0E49}},	{-1, -1, 0, {0}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1160
	{ 3, {0x0E19, 0x0E34, 0x0E4C}, 	 	{{0, 3, 3, {0x0E19, 0x0E34, 0x0E4C}},	{-1, -1, 0, {0}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1161
	{ 3, {0x0E19, 0x0E34, 0x0E47}, 	 	{{0, 2, 2, {0x0E19, 0x0E34}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E47}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1162
	{ 3, {0x0E19, 0x0E34, 0x0E4E}, 	 	{{0, 2, 2, {0x0E19, 0x0E34}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E4E}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1163
	{ 3, {0x0E19, 0x0E34, 0x0E34}, 	 	{{0, 2, 2, {0x0E19, 0x0E34}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E34}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1164
	{ 3, {0x0E19, 0x0E34, 0x0E31}, 	 	{{0, 2, 2, {0x0E19, 0x0E34}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E31}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1165
	{ 3, {0x0E19, 0x0E34, 0x0E37}, 	 	{{0, 2, 2, {0x0E19, 0x0E34}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E37}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1166
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1167
//208.TEST D16 - Thai NO NU & Above Vowel 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1168
	{ 3, {0x0E19, 0x0E31, 0x0E3F}, 	 	{{0, 2, 2, {0x0E19, 0x0E31}},			{2, 3, 1, {0x0E3F}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1169
	{ 3, {0x0E19, 0x0E36, 0x0E03}, 	 	{{0, 2, 2, {0x0E19, 0x0E36}},			{2, 3, 1, {0x0E03}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1170
	{ 3, {0x0E19, 0x0E31, 0x0E40}, 	 	{{0, 2, 2, {0x0E19, 0x0E31}},			{2, 3, 1, {0x0E40}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1171
	{ 3, {0x0E19, 0x0E36, 0x0E30}, 	 	{{0, 2, 2, {0x0E19, 0x0E36}},			{2, 3, 1, {0x0E30}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1172
	{ 3, {0x0E19, 0x0E31, 0x0E45}, 	 	{{0, 2, 2, {0x0E19, 0x0E31}},			{2, 3, 1, {0x0E45}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1173
	{ 3, {0x0E19, 0x0E36, 0x0E24}, 	 	{{0, 2, 2, {0x0E19, 0x0E36}},			{2, 3, 1, {0x0E24}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1174
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1175
	{ 3, {0x0E19, 0x0E31, 0x0E38},		{{0, 2, 2, {0x0E19, 0x0E31}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E38}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1176
	{ 3, {0x0E19, 0x0E36, 0x0E39}, 	 	{{0, 2, 2, {0x0E19, 0x0E36}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E39}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1177
	{ 3, {0x0E19, 0x0E31, 0x0E3A}, 	 	{{0, 2, 2, {0x0E19, 0x0E31}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E3A}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1178
	{ 3, {0x0E19, 0x0E36, 0x0E49}, 	 	{{0, 3, 3, {0x0E19, 0x0E36, 0x0E49}},	{-1, -1, 0, {0}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1179
	{ 3, {0x0E19, 0x0E31, 0x0E4C}, 	 	{{0, 2, 2, {0x0E19, 0x0E31}},			{2, 3, 2, {KUnicodeDottedCircle, 0xF70E}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1180
	{ 3, {0x0E19, 0x0E36, 0x0E47}, 	 	{{0, 2, 2, {0x0E19, 0x0E36}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E47}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1181
	{ 3, {0x0E19, 0x0E31, 0x0E4E}, 	 	{{0, 2, 2, {0x0E19, 0x0E31}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E4E}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1182
	{ 3, {0x0E19, 0x0E36, 0x0E34}, 	 	{{0, 2, 2, {0x0E19, 0x0E36}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E34}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1183
	{ 3, {0x0E19, 0x0E31, 0x0E31}, 	 	{{0, 2, 2, {0x0E19, 0x0E31}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E31}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1184
	{ 3, {0x0E19, 0x0E36, 0x0E37}, 	 	{{0, 2, 2, {0x0E19, 0x0E36}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E37}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1185
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1186
//240.TEST D17 - Thai NO NU & Above Vowel 3
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1187
	{ 3, {0x0E19, 0x0E35, 0x0E3F}, 	 	{{0, 2, 2, {0x0E19, 0x0E35}},			{2, 3, 1, {0x0E3F}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1188
	{ 3, {0x0E19, 0x0E37, 0x0E03}, 	 	{{0, 2, 2, {0x0E19, 0x0E37}},			{2, 3, 1, {0x0E03}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1189
	{ 3, {0x0E19, 0x0E35, 0x0E40}, 	 	{{0, 2, 2, {0x0E19, 0x0E35}},			{2, 3, 1, {0x0E40}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1190
	{ 3, {0x0E19, 0x0E37, 0x0E30}, 	 	{{0, 2, 2, {0x0E19, 0x0E37}},			{2, 3, 1, {0x0E30}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1191
	{ 3, {0x0E19, 0x0E35, 0x0E45}, 	 	{{0, 2, 2, {0x0E19, 0x0E35}},			{2, 3, 1, {0x0E45}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1192
	{ 3, {0x0E19, 0x0E37, 0x0E24}, 	 	{{0, 2, 2, {0x0E19, 0x0E37}},			{2, 3, 1, {0x0E24}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1193
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1194
	{ 3, {0x0E19, 0x0E35, 0x0E38},		{{0, 2, 2, {0x0E19, 0x0E35}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E38}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1195
	{ 3, {0x0E19, 0x0E37, 0x0E39}, 	 	{{0, 2, 2, {0x0E19, 0x0E37}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E39}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1196
	{ 3, {0x0E19, 0x0E35, 0x0E3A}, 	 	{{0, 2, 2, {0x0E19, 0x0E35}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E3A}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1197
	{ 3, {0x0E19, 0x0E37, 0x0E49}, 	 	{{0, 3, 3, {0x0E19, 0x0E37, 0x0E49}},	{-1, -1, 0, {0}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1198
	{ 3, {0x0E19, 0x0E35, 0x0E4C}, 	 	{{0, 2, 2, {0x0E19, 0x0E35}},			{2, 3, 2, {KUnicodeDottedCircle, 0xF70E}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1199
	{ 3, {0x0E19, 0x0E37, 0x0E47},		{{0, 2, 2, {0x0E19, 0x0E37}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E47}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1200
	{ 3, {0x0E19, 0x0E35, 0x0E4E}, 	 	{{0, 2, 2, {0x0E19, 0x0E35}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E4E}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1201
	{ 3, {0x0E19, 0x0E37, 0x0E34}, 	 	{{0, 2, 2, {0x0E19, 0x0E37}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E34}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1202
	{ 3, {0x0E19, 0x0E35, 0x0E31}, 	 	{{0, 2, 2, {0x0E19, 0x0E35}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E31}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1203
	{ 3, {0x0E19, 0x0E37, 0x0E37}, 	 	{{0, 2, 2, {0x0E19, 0x0E37}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E37}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1204
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1205
//256.TEST D18a - Test Thai combining marks stack over a dotted circle.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1206
	{ 2, {0x0E36, 0x0E48}, 	 			{{0, 2, 3, {KUnicodeDottedCircle, 0x0E36, 0x0E48}},	{-1, -1, 0, {0}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1207
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1208
//257.TEST D18b - Test non-thai consonant preceding two tone/signs in a row
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1209
	{ 2, {0x0041, 0x0E48, 0x0E49},		{{1, 2, 2, {KUnicodeDottedCircle, 0xF70A}},	{2, 3, 2, {KUnicodeDottedCircle, 0xF70B}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1210
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1211
//258. TEST DEF038524 - Test WTT2.0 Rare 4 optional combinations 0xBE, 0xDE, 0xE7, 0xF7
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1212
//3 Not supported, but render should degrade display to not overstrike at a minimum. 1 is supported.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1213
	{ 3, {0x0E01, 0x0E35, 0x0E47},		{{0, 2, 2, {0x0E01, 0x0E35}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E47}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1214
	{ 3, {0x0E01, 0x0E37, 0x0E47},		{{0, 2, 2, {0x0E01, 0x0E37}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E47}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1215
	{ 3, {0x0E01, 0x0E38, 0x0E4D},		{{0, 3, 3, {0x0E01, 0x0E38, 0x0E4D}},	{-1, -1, 0, {0}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1216
	{ 3, {0x0E01, 0x0E34, 0x0E4D},		{{0, 2, 2, {0x0E01, 0x0E34}},			{2, 3, 2, {KUnicodeDottedCircle, 0x0E4D}}}},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1217
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1218
//246.TABLE END
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1219
	{ -1, {0}, 	 				{{-1, -1, 0, {0}},				{-1, -1, 0, {0}}}}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1220
	};
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1221
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1222
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1223
//
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1224
// --- CLASS CTGlyphSelection --------------------------------------------
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1225
//
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1226
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1227
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1228
CTGlyphSelection::CTGlyphSelection(CTestStep* aStep) :
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1229
	CTGraphicsBase(aStep),
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1230
	iTestFont(NULL),
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1231
	iTestGraphicsDevice(NULL),
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1232
	iTestGraphicsContext(NULL)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1233
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1234
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1235
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1236
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1237
CTGlyphSelection::~CTGlyphSelection()
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1238
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1239
 This method cleans up after testing is finished. It releases memory
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1240
 allocated by the test obejct at a point before object destruction.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1241
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1242
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1243
	delete iTestGraphicsContext;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1244
	delete iTestGraphicsDevice;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1245
	delete iTestFont;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1246
	iFs.Close();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1247
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1248
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1249
void CTGlyphSelection::ConstructL()
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1250
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1251
	CreateTestGraphicsContextL();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1252
	User::LeaveIfError(iFs.Connect());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1253
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1254
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1255
void CTGlyphSelection::CreateTestGraphicsContextL()
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1256
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1257
 This method sets-up the context data for the proceeding test cases.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1258
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1259
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1260
	// Setup 400 pixel dummy graphics test device.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1261
	TSize windowSize(400, 400);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1262
	iTestGraphicsDevice = CTestGraphicsDevice::NewL(windowSize);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1263
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1264
	// Create a dummy graphics test context.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1265
	CGraphicsContext* tContext = NULL;	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1266
	TEST(iTestGraphicsDevice->CreateContext(tContext) == KErrNone);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1267
	iTestGraphicsContext = static_cast<CTestGraphicsContext*>(tContext);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1268
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1269
	// Allocate the dummy test font to be used.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1270
	iTestFont = new (ELeave) CTestFont;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1271
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1272
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1273
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1274
LOCAL_C TInt TestApiBoundaries_TC2(TAny* aData)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1275
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1276
 This is a root thread function which runs as part of the test case
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1277
 CTGlyphSelection::TestApiBoundaries(). It tests a panic
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1278
 is produced when an invalid text descriptor is supplied in the
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1279
 TPositionParam argument.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1280
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1281
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1282
	CTGlyphSelection* testPtr = (CTGlyphSelection*)aData;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1283
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1284
	CFont::TPositionParam param;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1285
	param.iDirection = CFont::EHorizontal;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1286
	param.iFlags = CFont::TPositionParam::EFLogicalOrder;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1287
	param.iPosInText = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1288
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1289
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1290
	testPtr->iTestFont->GetCharacterPosition(param);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1291
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1292
	// Line above panics if component in UDEB is working OK; 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1293
	// should never get here if component is in UDEB.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1294
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1295
	// If component is in UREL, then could reach here.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1296
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1297
	return (0);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1298
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1299
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1300
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1301
LOCAL_C TInt TestApiBoundaries_TC5(TAny* aData)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1302
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1303
 This is a root thread function which runs as part of the test case
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1304
 CTGlyphSelection::TestApiBoundaries(). It tests a panic
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1305
 is produced when a negative text position is supplied in the
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1306
 TPositionParam argument.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1307
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1308
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1309
	CTGlyphSelection* testPtr = (CTGlyphSelection*)aData;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1310
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1311
	CFont::TPositionParam param;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1312
	param.iDirection = CFont::EHorizontal;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1313
	param.iFlags = CFont::TPositionParam::EFLogicalOrder;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1314
	_LIT16(KText_aaaa, "aaaa");
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1315
	param.iText.Set(KText_aaaa);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1316
	param.iPosInText = -10;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1317
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1318
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1319
	testPtr->iTestFont->GetCharacterPosition(param);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1320
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1321
	// Line above panics if component in UDEB is working OK; 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1322
	// should never get here if component is in UDEB.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1323
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1324
	// If component is in UREL, then could reach here.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1325
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1326
	return (0);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1327
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1328
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1329
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1330
void CTGlyphSelection::TestApiBoundaries()
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1331
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1332
 This method is a test case to exercise GetCharacterPosition() with
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1333
 parameter values at range boundaries and in some cases out-or-raange.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1334
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1335
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1336
	TBool r;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1337
	TBuf<20> testText(0);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1338
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1339
	CFont::TPositionParam param;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1340
	param.iDirection = CFont::EHorizontal;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1341
	param.iFlags = CFont::TPositionParam::EFLogicalOrder;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1342
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1343
	// 1: Check input arguments in paramter not modified
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1344
	testText = _L16("a");
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1345
	param.iText.Set(testText);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1346
	param.iPosInText = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1347
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1348
	r = iTestFont->GetCharacterPosition(param);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1349
	TEST(r && param.iDirection == CFont::EHorizontal
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1350
		   && param.iFlags == CFont::TPositionParam::EFLogicalOrder
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1351
		   && param.iText.Ptr() == testText.Ptr());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1352
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1353
	// 2: Check invalid iText descriptor panics (when component in UDEB)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1354
	//    When component built in UREL, behaviour is undefined, so do not test.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1355
	TRequestStatus threadStatus;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1356
	RThread thread;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1357
	TInt rc;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1358
	TBool jit;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1359
	jit = User::JustInTime();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1360
	User::SetJustInTime(EFalse);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1361
	rc = thread.Create(KThread2NameFirst, TestApiBoundaries_TC2, 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1362
		KDefaultStackSize, KMinHeapSize, KMinHeapSize*4, this);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1363
	TEST(KErrNone == rc);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1364
	thread.Logon(threadStatus);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1365
	thread.Resume();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1366
	User::WaitForRequest(threadStatus);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1367
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1368
	if (thread.ExitType() == EExitPanic)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1369
		{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1370
		TEST (thread.ExitReason() == ETextBasePanic_InvalidInputParam);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1371
		INFO_PRINTF2(_L("Exit reason %d"), thread.ExitReason());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1372
		TExitCategoryName exitCategory = thread.ExitCategory();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1373
		INFO_PRINTF2(_L("Exit category %S"), &exitCategory);			
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1374
		}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1375
	else
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1376
		{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1377
		// Function does not panic on invalid input; 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1378
		// Warn that this is only valid behaviour if the GDI component being tested is built in UREL mode
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1379
		// and there is a problem if the function has not panicked if the GDI component is build in UDEB mode
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1380
		INFO_PRINTF1(_L("Warning: GetCharacterPosition() when given invalid iText descriptor has not panicked - this is only ok if the GDI component is built in UREL mode. If the GDI component is built in UDEB mode, then there is a problem."));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1381
		}	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1382
	thread.Close();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1383
	User::SetJustInTime(jit);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1384
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1385
	// 3: Zero length text descriptor
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1386
	testText = _L("");
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1387
	param.iText.Set(testText);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1388
	param.iPosInText = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1389
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1390
	r = iTestFont->GetCharacterPosition(param);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1391
	TEST(!r && param.iPen.iX == 0 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1392
		    && param.iOutputGlyphs == 0);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1393
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1394
	// 4: Position in text beyond descriptor length
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1395
	testText = _L16("a");
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1396
	param.iText.Set(testText);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1397
	param.iPosInText = 5;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1398
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1399
	r = iTestFont->GetCharacterPosition(param);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1400
	TEST(!r && param.iPen.iX == 0 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1401
		   && param.iOutputGlyphs == 0);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1402
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1403
	// 5: Position in text is negative, should panic (when component in UDEB)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1404
	//    When component built in UREL, behaviour is undefined, so do not test.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1405
	jit = User::JustInTime();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1406
	User::SetJustInTime(EFalse);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1407
	rc = thread.Create(KThread2NameSecond, TestApiBoundaries_TC5, 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1408
		KDefaultStackSize, KMinHeapSize, KMinHeapSize*4, this);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1409
	TEST(KErrNone == rc);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1410
	thread.Logon(threadStatus);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1411
	thread.Resume();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1412
	User::WaitForRequest(threadStatus);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1413
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1414
	if (thread.ExitType() == EExitPanic)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1415
		{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1416
		TEST (thread.ExitReason() == ETextBasePanic_InvalidInputParam);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1417
		INFO_PRINTF2(_L("Exit reason %d"), thread.ExitReason());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1418
		TExitCategoryName exitCategory = thread.ExitCategory();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1419
		INFO_PRINTF2(_L("Exit category %S"), &exitCategory);			
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1420
		}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1421
	else
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1422
		{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1423
		// Function does not panic on invalid input; 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1424
		// Warn that this is only valid behaviour if the GDI component being tested is built in UREL mode
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1425
		// and there is a problem if the function has not panicked if the GDI component is build in UDEB mode
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1426
		INFO_PRINTF1(_L("Warning: GetCharacterPosition() when given negative iPosInText has not panicked - this is only ok if the GDI component is built in UREL mode. If the GDI component is built in UDEB mode, then there is a problem."));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1427
		}	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1428
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1429
	thread.Close();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1430
	User::SetJustInTime(jit);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1431
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1432
	// 6: Check 'No-char-data' condition handled
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1433
	testText = _L16("A\033C");
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1434
	param.iText.Set(testText);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1435
	param.iPosInText = 1;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1436
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1437
	r = iTestFont->GetCharacterPosition(param);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1438
	TEST( !r
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1439
		   && param.iPosInText == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1440
		   && param.iPen.iX == 0 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1441
		   && param.iOutputGlyphs == 0);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1442
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1443
	// 7: Check "Not-a-Char" condition handled
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1444
	testText = _L16("\xFFFF\xFFFE\xFFFF\xFFFF\xFFFF\xFFFE\xFFFF\xFFFF\xFFFF\xFFFE\xFFFF\xFFFF");
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1445
	param.iText.Set(testText);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1446
	param.iPosInText = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1447
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1448
	r = iTestFont->GetCharacterPosition(param);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1449
	TEST(  r
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1450
		   && param.iPosInText == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1451
		   && param.iPen.iX == 0 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1452
		   && param.iOutputGlyphs == 0);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1453
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1454
	param.iPosInText = 5;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1455
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1456
	r = iTestFont->GetCharacterPosition(param);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1457
	TEST(  r
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1458
		   && param.iPosInText == 6
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1459
		   && param.iPen.iX == 0 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1460
		   && param.iOutputGlyphs == 0);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1461
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1462
	// 8. Check that a cluster cannot be made from heterogeneous elements
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1463
	// (in this case a 6 with a Hindi virama)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1464
	testText = _L16("6\x94D");
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1465
	param.iText.Set(testText);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1466
	param.iPosInText = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1467
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1468
	r = iTestFont->GetCharacterPosition(param);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1469
	TEST(r && param.iOutputGlyphs == 1);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1470
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1471
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1472
inline TBool IsSupplementary(TUint aChar)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1473
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1474
@param aChar The 32-bit code point value of a Unicode character.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1475
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1476
@return True, if aChar is supplementary character; false, otherwise.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1477
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1478
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1479
	return (aChar > 0xFFFF);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1480
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1481
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1482
inline TBool IsSurrogate(TText16 aInt16)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1483
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1484
@return True, if aText16 is high surrogate or low surrogate; false, otherwise.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1485
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1486
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1487
	return (aInt16 & 0xF800) == 0xD800;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1488
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1489
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1490
inline TText16 GetHighSurrogate(TUint aChar)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1491
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1492
Retrieve the high surrogate of a supplementary character.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1493
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1494
@param aChar The 32-bit code point value of a Unicode character.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1495
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1496
@return High surrogate of aChar, if aChar is a supplementary character; 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1497
        aChar itself, if aChar is not a supplementary character.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1498
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1499
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1500
	return STATIC_CAST(TText16, 0xD7C0 + (aChar >> 10));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1501
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1502
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1503
inline TText16 GetLowSurrogate(TUint aChar)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1504
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1505
Retrieve the low surrogate of a supplementary character.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1506
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1507
@param aChar The 32-bit code point value of a Unicode character.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1508
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1509
@return Low surrogate of aChar, if aChar is a supplementary character; 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1510
        zero, if aChar is not a supplementary character.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1511
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1512
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1513
	return STATIC_CAST(TText16, 0xDC00 | (aChar & 0x3FF));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1514
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1515
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1516
void CTGlyphSelection::TestCodepoint(TUint aCodepoint, CFont* aFont)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1517
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1518
 This helper routine is used by the test case 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1519
 CTGlyphSelection::TestCtrlCharsIgnored().
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1520
@param aCodepoint
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1521
 The Unicode character to test.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1522
@param aFont
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1523
 The font to use in the test.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1524
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1525
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1526
	TInt expectResultPosInText;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1527
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1528
	const TInt KTestTextLen = 5;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1529
	TBuf<16> testText(KTestTextLen);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1530
	testText[0] = 'a';
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1531
	testText[1] = 'b';
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1532
	if (IsSupplementary(aCodepoint))
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1533
		{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1534
		testText[2] = GetHighSurrogate(aCodepoint);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1535
		testText[3] = GetLowSurrogate(aCodepoint);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1536
		expectResultPosInText = 4;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1537
		}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1538
	else
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1539
		{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1540
		testText[2] = aCodepoint;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1541
		testText[3] = 'c';
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1542
		expectResultPosInText = 3;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1543
		}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1544
	testText[4] = 'd';
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1545
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1546
	CFont::TPositionParam param;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1547
	param.iDirection = CFont::EHorizontal;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1548
	param.iFlags = CFont::TPositionParam::EFLogicalOrder;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1549
	param.iText.Set(testText);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1550
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1551
	param.iPosInText = 2; 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1552
	TBool r = aFont->GetCharacterPosition(param);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1553
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1554
	TEST(r && param.iPosInText == expectResultPosInText
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1555
		   && param.iPen.iX == 0 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1556
		   && param.iOutputGlyphs == 0);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1557
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1558
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1559
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1560
void CTGlyphSelection::TestCtrlCharsIgnored()
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1561
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1562
 This method is a test case to test GetCharacterPosition() copes
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1563
 with formatting and control characters in the text supplied by
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1564
 ignoring them.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1565
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1566
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1567
	static const TUint testData[] = {
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1568
		// 1: Formatting control codes Unicode3-p499&p500
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1569
		0x200C, 0x200D, 0x200E, 0x200F,
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1570
		0x202A, 0x202B, 0x202C, 0x202D, 0x202E,
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1571
		// 3: Non-character codes Unicode3-p846 U+FFFE?
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1572
		// Original:
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1573
		// 0xFFFF 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1574
		// 4: Latin Ctrl codes U+0000..U+001F, U+007F Unicode3-p???
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1575
		// 5: Latin Supplement Ctrl code U+0080..U+009F Unicode3-p???
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1576
		// 6: Supplementary characters (scripts outside BMP still not supported)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1577
		};
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1578
	static const TUint testDataLength = sizeof(testData)/sizeof(testData[0]);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1579
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1580
	for (TUint i = 0; i < testDataLength; i++)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1581
		TestCodepoint(testData[i], iTestFont);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1582
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1583
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1584
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1585
void CTGlyphSelection::TestLatinChars()
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1586
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1587
 This method is a test case to test GetCharacterPosition() correctly
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1588
 processes characters from the Latin code page returning appropriate glyphs
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1589
 codes.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1590
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1591
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1592
	TBool r;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1593
	CFont::TPositionParam param;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1594
	param.iDirection = CFont::EHorizontal;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1595
	param.iFlags = CFont::TPositionParam::EFLogicalOrder;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1596
	_LIT16(KText_aBc_1, "aBc 1");
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1597
	param.iText.Set(KText_aBc_1);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1598
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1599
	// 1: Latin glyph at start of text
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1600
	param.iPosInText = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1601
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1602
	r = iTestFont->GetCharacterPosition(param);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1603
	TEST(r && param.iPosInText == 1 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1604
		   && param.iPen.iX == 10
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1605
		   && param.iOutputGlyphs == 1 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1606
		   && param.iOutput[0].iCode == 'a');
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1607
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1608
	// 2: Latin glyph in middle of text
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1609
	param.iPosInText = 1;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1610
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1611
	r = iTestFont->GetCharacterPosition(param);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1612
	TEST(r && param.iPosInText == 2 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1613
		   && param.iPen.iX == 10
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1614
		   && param.iOutputGlyphs == 1 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1615
		   && param.iOutput[0].iCode == 'B');
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1616
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1617
	// 3: Latin glyph at end of text
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1618
	param.iPosInText = 4;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1619
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1620
	r = iTestFont->GetCharacterPosition(param);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1621
	TEST(r && param.iPosInText == 5 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1622
		   && param.iPen.iX == 10
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1623
		   && param.iOutputGlyphs == 1 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1624
		   && param.iOutput[0].iCode == '1');
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1625
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1626
	// 4: Latin space glyph 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1627
	param.iPosInText = 3;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1628
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1629
	r = iTestFont->GetCharacterPosition(param);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1630
	TEST(r && param.iPosInText == 4 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1631
		   && param.iPen.iX == 10
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1632
		   && param.iOutputGlyphs == 1 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1633
		   && param.iOutput[0].iCode == ' ');
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1634
	}	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1635
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1636
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1637
void CTGlyphSelection::TestSoftHyphen()
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1638
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1639
 This method is a test case to test GetCharacterPosition() correctly
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1640
 processes soft hyphen chars by ignoring them if they are NOT at the
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1641
 end of the text (aka end of the line).
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1642
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1643
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1644
	TBool r;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1645
	CFont::TPositionParam param;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1646
	param.iDirection = CFont::EHorizontal;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1647
	param.iFlags = CFont::TPositionParam::EFLogicalOrder;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1648
	_LIT16(KText_DKNY, "DK\xadNY\xad");
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1649
	param.iText.Set(KText_DKNY);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1650
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1651
	// 1: Invoke on char before hyphen position 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1652
	// This test returns only the glyph of the char before the hyphen
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1653
	// treating the hyphen as another base char which end scanning. 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1654
	param.iPosInText = 1;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1655
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1656
	r = iTestFont->GetCharacterPosition(param);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1657
	TEST(r && param.iPosInText == 2 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1658
		   && param.iPen.iX == 10
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1659
		   && param.iOutputGlyphs == 1 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1660
		   && param.iOutput[0].iCode == 'K');
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1661
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1662
	// 2: Invoke on hyphen position
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1663
	// This test should show it ignores and skips soft hyphens returning
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1664
	// no hyphen glyph. This is because soft hyphen are not visible when
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1665
	// in middle of lines.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1666
	param.iPosInText = 2;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1667
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1668
	r = iTestFont->GetCharacterPosition(param);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1669
	TEST(r && param.iPosInText == 3 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1670
		   && param.iPen.iX == 0
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1671
		   && param.iOutputGlyphs == 0);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1672
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1673
	// 3: Invoke on hyphen position when hyphen at end of text
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1674
	// This test should result in the hyphen glyph being returned as it
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1675
	// is expect to be visible when it is at the end of the text supplied.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1676
	param.iPosInText = 5;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1677
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1678
	r = iTestFont->GetCharacterPosition(param);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1679
	TEST(r && param.iPosInText == 6 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1680
		   && param.iPen.iX == 10
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1681
		   && param.iOutputGlyphs == 1 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1682
		   && param.iOutput[0].iCode == 0x00AD);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1683
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1684
	}	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1685
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1686
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1687
void CTGlyphSelection::TestSurrogates()
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1688
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1689
 This method is a test case to test GetCharacterPosition() correctly
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1690
 processes surrogate pairs.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1691
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1692
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1693
	static const TUint validPairs[] = {
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1694
	//  Hi		Lo		Code		Hi		Lo		Code		Hi		Lo		Code
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1695
		0xD800, 0xDC00, 0x00010000, 0xD800, 0xDE9A, 0x0001029A, 0xD800, 0xDFFF, 0x000103FF,
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1696
		0xD89A, 0xDC00, 0x00036800, 0xD89A, 0xDE9A, 0x00036A9A, 0xD89A, 0xDFFF, 0x00036BFF,
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1697
		0xDBFF, 0xDC00, 0x0010FC00, 0xDBFF, 0xDE9A, 0x0010FE9A, 0xDBFF, 0xDFFF, 0x0010FFFF
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1698
		};
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1699
	static const TUint validPairsLength = sizeof(validPairs)/sizeof(TText16);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1700
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1701
	TBool r;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1702
	TBuf<20> testText(0);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1703
	CFont::TPositionParam param;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1704
	param.iDirection = CFont::EHorizontal;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1705
	param.iFlags = CFont::TPositionParam::EFLogicalOrder;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1706
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1707
	// 1: Test valid surrogate pair chars
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1708
	testText.SetLength(5);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1709
	testText[0] = 'a';
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1710
	testText[3] = 'D';
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1711
	testText[4] = '1';
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1712
	param.iText.Set(testText);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1713
	for (TUint i = 0; i < validPairsLength/3; i+=3)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1714
		{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1715
		testText[1] = (TText16) validPairs[i];
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1716
		testText[2] = (TText16) validPairs[i+1];
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1717
		param.iPosInText = 1;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1718
		param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1719
		r = iTestFont->GetCharacterPosition(param);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1720
		TEST(r && param.iPosInText == 3
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1721
				&& param.iPen.iX == 10
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1722
				&& param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1723
				&& param.iOutput[0].iCode == validPairs[i+2]);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1724
		}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1725
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1726
	// 2: Test unpaired high surrogate chars
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1727
	testText[1] = 0xD809;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1728
	testText[2] = 'a';
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1729
	param.iPosInText = 1;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1730
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1731
	r = iTestFont->GetCharacterPosition(param);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1732
	TEST(r && param.iPosInText == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1733
		   && param.iPen.iX == 0
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1734
		   && param.iOutputGlyphs == 0);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1735
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1736
	// 3: Test unpaired low surrogate chars
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1737
	testText[1] = 'a';
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1738
	testText[2] = 0xDC09;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1739
	param.iPosInText = 2;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1740
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1741
	r = iTestFont->GetCharacterPosition(param);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1742
	TEST(r && param.iPosInText == 3
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1743
		   && param.iPen.iX == 0
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1744
		   && param.iOutputGlyphs == 0);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1745
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1746
	// 4: Test latin/surrogate boundry ensuring surrogate not skipped!
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1747
	testText[1] = (TText16) validPairs[0];
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1748
	testText[2] = (TText16) validPairs[1];
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1749
	param.iPosInText = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1750
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1751
	r = iTestFont->GetCharacterPosition(param);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1752
	TEST(r && param.iPosInText == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1753
		   && param.iPen.iX == 10
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1754
		   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1755
		   && param.iOutput[0].iCode =='a');
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1756
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1757
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1758
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1759
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1760
@SYMTestCaseID TI18N-GDI-CIT-4077
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1761
@SYMTestCaseDesc Automated GDI testing for GB18030 ExtB
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1762
@SYMTestPriority High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1763
@SYMTestActions  Attempt to get glyph information for GB18030 ExtB characters.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1764
@SYMTestExpectedResults The expected glyph clusters for given Unicode charactors must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1765
@SYMPREQ 2471: UTF-16 compliant text handling
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1766
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1767
void CTGlyphSelection::TestNonBmpCharsInGB18030(CFbsFont* aFont)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1768
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1769
	INFO_PRINTF1(_L("Test GB18030 non-BMP Glyphs"));	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1770
	// Do the testing
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1771
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1772
	TBool r;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1773
	TBuf<30> testText(0);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1774
	CFont::TPositionParam param;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1775
	param.iDirection = CFont::EHorizontal;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1776
	param.iFlags = CFont::TPositionParam::EFLogicalOrder;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1777
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1778
	testText.SetLength(4);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1779
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1780
	// 201AD = D840, DDAD
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1781
	testText[0] = 0xD840;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1782
	testText[1] = 0xDDAD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1783
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1784
	// 253BB = D854, DFBB
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1785
	testText[2] = 0xD854;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1786
	testText[3] = 0xDFBB;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1787
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1788
	param.iText.Set(testText);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1789
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1790
	RShapeInfo aShapeInfo;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1791
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1792
	// Do the testing
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1793
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1794
	param.iPosInText = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1795
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1796
	r = aFont->GetCharacterPosition2(param, aShapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1797
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1798
	TEST(r && param.iPosInText == 2 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1799
		   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1800
		   && param.iOutput[0].iCode == 0x000201AD);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1801
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1802
	INFO_PRINTF5(_L("The result of this shaping is %d %d %d 0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1803
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1804
	param.iPosInText = 2;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1805
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1806
	r = aFont->GetCharacterPosition2(param, aShapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1807
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1808
	TEST(r && param.iPosInText == 4 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1809
		   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1810
		   && param.iOutput[0].iCode == 0x000253BB);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1811
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1812
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1813
	INFO_PRINTF5(_L("The result of this shaping is %d %d %d 0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1814
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1815
	// Close aShapeInfo which releases any memory it is occupying
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1816
	if (aShapeInfo.IsOpen())
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1817
		aShapeInfo.Close();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1818
		   
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1819
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1820
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1821
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1822
void CTGlyphSelection::TestCombiningLatinChars()
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1823
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1824
 This method is a test case to test GetCharacterPosition() correctly
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1825
 processes regular latin characters with diacritics.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1826
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1827
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1828
	TBool r;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1829
	TBuf<20> testText(0);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1830
	CFont::TPositionParam param;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1831
	param.iDirection = CFont::EHorizontal;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1832
	param.iFlags = CFont::TPositionParam::EFLogicalOrder;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1833
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1834
	testText.SetLength(10);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1835
	testText[0] = 'A';
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1836
	testText[1] = ' ';
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1837
	testText[2] = 'A';
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1838
	testText[3] = 0x0300; // Above Grave Acent
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1839
	testText[4] = 'I';
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1840
	testText[5] = 0x0330; // Below Tidle 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1841
	testText[6] = 'o';
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1842
	testText[7] = 0x0308; // Above Diaeresis
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1843
	testText[8] = 0x032F; // Below Inverted Breve
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1844
	testText[9] = 'M';
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1845
	param.iText.Set(testText);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1846
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1847
	// 1: Latin base with following space
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1848
	param.iPosInText = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1849
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1850
	r = iTestFont->GetCharacterPosition(param);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1851
	TEST(r && param.iPosInText == 1 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1852
		   && param.iPen.iX == 10
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1853
		   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1854
		   && param.iOutput[0].iCode == 'A');
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1855
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1856
	// 2: Latin base with 1 combining above diacritic
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1857
	param.iPosInText = 2;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1858
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1859
	r = iTestFont->GetCharacterPosition(param);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1860
	// Will Compose A (0x41) followed by grave accent (0x300) into A grave (0xC0)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1861
	TEST(r && param.iPosInText == 4 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1862
		   && param.iPen.iX == 10
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1863
		   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1864
		   && param.iOutput[0].iCode == 0xC0
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1865
		   && param.iOutput[0].iBounds.iTl == TPoint(0,-10)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1866
		   && param.iOutput[0].iBounds.iBr == TPoint(10,2));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1867
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1868
	// 3: Latin base with 1 combining below diacritic
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1869
	param.iPosInText = 4;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1870
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1871
	r = iTestFont->GetCharacterPosition(param);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1872
	// Will compose I (0x49) with tilde below (0x330) into I with tilde below (0x1E2C)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1873
	TEST(r && param.iPosInText == 6 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1874
		   && param.iPen.iX == 10
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1875
		   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1876
		   && param.iOutput[0].iCode == 0x1E2C
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1877
		   && param.iOutput[0].iBounds.iTl == TPoint(0,-10)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1878
		   && param.iOutput[0].iBounds.iBr == TPoint(10,2));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1879
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1880
	// 4: Latin base with 2 combining diacritic
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1881
	param.iPosInText = 6;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1882
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1883
	r = iTestFont->GetCharacterPosition(param);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1884
	TEST(r && param.iPosInText == 9 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1885
		   && param.iPen.iX == 10
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1886
		   && param.iOutputGlyphs == 3
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1887
		   && param.iOutput[0].iCode == 'o'
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1888
		   && param.iOutput[0].iBounds.iTl == TPoint(0,-10)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1889
		   && param.iOutput[0].iBounds.iBr == TPoint(10,2)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1890
		   && param.iOutput[1].iCode == 0x0308
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1891
		   && param.iOutput[1].iBounds.iTl == TPoint(0,-23)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1892
		   && param.iOutput[1].iBounds.iBr == TPoint(10,-11)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1893
		   && param.iOutput[2].iCode == 0x032F
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1894
		   && param.iOutput[2].iBounds.iTl == TPoint(0,3)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1895
		   && param.iOutput[2].iBounds.iBr == TPoint(10,15));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1896
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1897
	// 5: Latin base with 9 combining chars, should exceed max output!
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1898
	testText[0] = 'a';
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1899
	testText[1] = 0x0300; // Above Grave Acent
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1900
	testText[2] = 0x0330; // Below Tidle 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1901
	testText[3] = 0x0308; // Above Diaeresis
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1902
	testText[4] = 0x032F; // Below Inverted Breve
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1903
	testText[5] = 0x0300; // Above Grave Acent
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1904
	testText[6] = 0x0330; // Below Tidle 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1905
	testText[7] = 0x0308; // Above Diaeresis
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1906
	testText[8] = 0x032F; // Below Inverted Breve
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1907
	testText[9] = 0x0300; // Above Grave Acent
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1908
	param.iPosInText = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1909
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1910
	r = iTestFont->GetCharacterPosition(param);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1911
	TEST(r && param.iPosInText == 8 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1912
		   && param.iPen.iX == 10
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1913
		   && param.iOutputGlyphs == 8
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1914
		   && param.iOutput[0].iCode == 'a'
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1915
		   && param.iOutput[7].iCode == 0x0308);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1916
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1917
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1918
/* 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1919
Used for cleanup of RImplInfoArray implementationArray below 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1920
This method is stolen from FbsTop.cpp
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1921
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1922
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1923
LOCAL_C void ResetAndDestroyRImplInfoPtrArray(TAny* aPtr)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1924
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1925
	RImplInfoPtrArray* array = reinterpret_cast <RImplInfoPtrArray*> (aPtr);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1926
	array->ResetAndDestroy();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1927
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1928
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1929
LOCAL_C void LoadOpenFontLibraries(CFontStore* aFontStore)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1930
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1931
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1932
	RImplInfoPtrArray implementationArray;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1933
	TCleanupItem cleanup(ResetAndDestroyRImplInfoPtrArray, &implementationArray);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1934
	CleanupStack::PushL(cleanup);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1935
	TInt error;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1936
	TInt ecomerror;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1937
	TInt ecomnotready;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1938
	TUid uid = {KUidOpenFontRasterizerPlunginInterface};
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1939
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1940
	// Making sure that no race situation arises
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1941
	// If ECom is not ready, give it another chance and try again. if it still doesn't work 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1942
	// after the third try, then it just carries on quietly and fails... 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1943
	for (ecomnotready =0; ecomnotready <3; ecomnotready++)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1944
		{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1945
		TRAP(ecomerror,REComSession::ListImplementationsL(uid,implementationArray));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1946
		if (!ecomerror)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1947
			{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1948
			break;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1949
			}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1950
		else
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1951
			{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1952
			ecomerror = 0; 	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1953
			User::After(0);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1954
			}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1955
		}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1956
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1957
	const TInt availCount = implementationArray.Count();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1958
	for (TInt count=0;count<availCount;++count)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1959
		{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1960
		const CImplementationInformation* info = implementationArray[count];
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1961
		TUid rasterizerUid = info->ImplementationUid();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1962
 		// Create a rasterizer
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1963
 		COpenFontRasterizer* rasterizer=0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1964
 		TRAP(error,rasterizer = COpenFontRasterizer::NewL(rasterizerUid));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1965
 		if (!error)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1966
   			{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1967
   			// Install it in the font store.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1968
   			TRAP(error,aFontStore->InstallRasterizerL(rasterizer));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1969
   			if (error)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1970
   				delete rasterizer;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1971
   			}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1972
		}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1973
	CleanupStack::PopAndDestroy(&implementationArray); 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1974
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1975
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1976
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1977
void CTGlyphSelection::TestIsolatedCombiningLatinChars()
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1978
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1979
 This method is a test case to test GetCharacterPosition() correctly
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1980
 processes isloated combining marks.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1981
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1982
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1983
	// Need to use a valid font so that GetCharacterPosition will be able to find the necessary glyph information.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1984
	_LIT16(KTestFontFile, "C:\\s60ssb_v500.ttf");
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1985
	_LIT16(KTestFontFaceName, "Series 60 Sans");
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1986
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1987
	// create a font store for testing
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1988
	CFontStore* fontStore = CFontStore::NewL(&User::Heap());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1989
	//load all ecom implemented rasterizer dlls. installs the rasterizer.	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1990
	LoadOpenFontLibraries(fontStore);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1991
	// test font preparation
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1992
	fontStore->iKPixelWidthInTwips = 11860; //This value is default
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1993
	//add any required font files
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1994
	TUid err = fontStore->AddFileL(KTestFontFile);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1995
	TFontSpec testFontSpec(KTestFontFaceName,200); 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1996
	 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1997
	CFbsBitmap* bmp = new(ELeave) CFbsBitmap;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1998
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  1999
	TInt ret = bmp->Create(TSize(100,100),EGray2);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2000
	if (ret == KErrNotSupported)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2001
		return;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2002
	else
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2003
		User::LeaveIfError(ret);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2004
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2005
	CFbsBitmapDevice* device = NULL;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2006
	TRAPD(err2,device = CFbsBitmapDevice::NewL(bmp));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2007
	TEST(err2 == KErrNone);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2008
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2009
	CFbsBitGc* gc = NULL;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2010
	User::LeaveIfError(device->CreateContext(gc));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2011
	// Font file Creation
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2012
	CFbsFont* testFont = NULL;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2013
	User::LeaveIfError(device->GetNearestFontToDesignHeightInTwips(testFont,testFontSpec));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2014
	gc->UseFont(testFont);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2015
	CleanupStack::PushL(testFont);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2016
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2017
	// Now start the test case:
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2018
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2019
	TBool r;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2020
	TBuf<20> testText(0);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2021
	CFont::TPositionParam param;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2022
	param.iFlags = CFont::TPositionParam::EFLogicalOrder;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2023
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2024
	testText.SetLength(7);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2025
	testText[0] = 0x0323; 	//Below Dot
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2026
	testText[1] = ' ';
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2027
	testText[2] = 0x0300;   //Above Grave Acent
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2028
	testText[3] = ' ';
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2029
	testText[4] = 0x0323;	//Below Dot
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2030
	testText[5] = 0x0300;	//Above Grave Acent
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2031
	testText[6] = 0x0301; 	//Above Acute Acent
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2032
	param.iText.Set(testText);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2033
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2034
	// 1: Test the bounds for combining below mark in isolation
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2035
	param.iPosInText = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2036
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2037
	r = testFont->GetCharacterPosition(param);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2038
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2039
	TEST(r && param.iPosInText == 1 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2040
		   && param.iOutputGlyphs == 1 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2041
		   && param.iOutput[0].iCode == 0x0323);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2042
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2043
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2044
	TEST(r && param.iPen == TPoint(0,0)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2045
		   && param.iOutput[0].iBounds.iTl == TPoint(-6,1)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2046
		   && param.iOutput[0].iBounds.iBr == TPoint(-4,3));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2047
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2048
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2049
	// 2: Test the bounds for combining above mark in isolation
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2050
	param.iPosInText = 1;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2051
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2052
	r = testFont->GetCharacterPosition(param);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2053
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2054
	TEST(r && param.iPosInText == 3
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2055
		   && param.iOutputGlyphs == 2 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2056
		   && param.iOutput[1].iCode == 0x0300);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2057
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2058
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2059
	TEST(r && param.iPen == TPoint(4,0) 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2060
		   && param.iOutput[1].iBounds.iTl == TPoint(-2,-15)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2061
		   && param.iOutput[1].iBounds.iBr == TPoint(2,-12));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2062
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2063
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2064
	// 3: Test the bounds for multiple combing marks in isolation
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2065
	param.iPosInText = 3;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2066
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2067
	r = testFont->GetCharacterPosition(param);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2068
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2069
	TEST(r && param.iPosInText == 7 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2070
		   && param.iOutputGlyphs == 4
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2071
		   && param.iOutput[1].iCode == 0x0323
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2072
		   && param.iOutput[2].iCode == 0x0300
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2073
		   && param.iOutput[3].iCode == 0x0301);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2074
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2075
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2076
	TEST(r && param.iPen == TPoint(4,0)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2077
		   && param.iOutput[1].iBounds.iTl == TPoint(-1,1)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2078
		   && param.iOutput[1].iBounds.iBr == TPoint(1,3)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2079
           && param.iOutput[2].iBounds.iTl == TPoint(-2,-16)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2080
           && param.iOutput[2].iBounds.iBr == TPoint(2,-13)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2081
           && param.iOutput[3].iBounds.iTl == TPoint(-2,-20)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2082
           && param.iOutput[3].iBounds.iBr == TPoint(2,-17));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2083
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2084
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2085
	// Done with the font, pop it off.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2086
	CleanupStack::Pop(testFont);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2087
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2088
	//Cleaning the memory
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2089
	delete bmp;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2090
	delete device;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2091
	delete gc;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2092
	fontStore->RemoveFile(err);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2093
	delete fontStore;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2094
	REComSession::FinalClose();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2095
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2096
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2097
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2098
void CTGlyphSelection::TestContextInShapeInfo()
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2099
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2100
 This method is a test case to test GetCharacterPosition2() correctly
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2101
 handle context.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2102
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2103
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2104
	TBool r;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2105
	TBuf<20> testText(0);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2106
	CFont::TPositionParam param;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2107
	param.iFlags = CFont::TPositionParam::EFLogicalOrder;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2108
	RShapeInfo shapeInfo;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2109
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2110
	//test control characters which has not defined processFun in TTableEntry
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2111
	testText.SetLength(7);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2112
	testText[0] = 0xffff; 	//control character, test for the range { 0xFFFE,   0xFFFF,   0}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2113
	testText[1] = '1';
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2114
	testText[2] = 0x200E;   //control character, test for the range { 0x200C,   0x200F,   0}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2115
	testText[3] = '.';  
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2116
	testText[4] = 'a';
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2117
	testText[5] = 0x202A;   //control character, test for the range { 0x202A,   0x202E,   0}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2118
	testText[6] = ',';
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2119
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2120
	param.iText.Set(testText);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2121
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2122
	// 1. Test '0xffff' as NULL context at position zero - 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2123
	// 0xffff should not be taken as context, and character '1' can be rendered correctly 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2124
	param.iPosInText = 1;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2125
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2126
	r = iTestFont->GetCharacterPosition2(param, shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2127
	TEST(r && param.iPosInText == 2 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2128
		   && param.iOutputGlyphs == 1 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2129
		   && param.iOutput[0].iCode == 49);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2130
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2131
	// 2. Test '0x200E' - 0x200E is not rendered, either not treated as context.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2132
	// character '.' and 'a' should be rendered correctly.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2133
	param.iPosInText = 2;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2134
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2135
	r = iTestFont->GetCharacterPosition2(param, shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2136
	TEST(r && param.iPosInText == 3 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2137
		   && param.iOutputGlyphs == 0);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2138
			
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2139
	param.iPosInText = 3;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2140
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2141
	r = iTestFont->GetCharacterPosition2(param, shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2142
	TEST(r && param.iPosInText == 4 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2143
		   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2144
		   && param.iOutput[0].iCode == 46);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2145
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2146
	param.iPosInText = 4;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2147
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2148
	r = iTestFont->GetCharacterPosition2(param, shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2149
	TEST(r && param.iPosInText == 5 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2150
		   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2151
		   && param.iOutput[0].iCode == 'a');
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2152
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2153
	// 3. Test '0x202A' - 0x202A is not rendered, either not treated as context.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2154
	// character ',' should be rendered correctly. 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2155
	param.iPosInText = 5;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2156
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2157
	r = iTestFont->GetCharacterPosition2(param, shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2158
	TEST(r && param.iPosInText == 6 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2159
		   && param.iOutputGlyphs == 0);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2160
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2161
	param.iPosInText = 6;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2162
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2163
	r = iTestFont->GetCharacterPosition2(param, shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2164
	TEST(r && param.iPosInText == 7 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2165
		   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2166
		   && param.iOutput[0].iCode == 44);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2167
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2168
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2169
/**
64
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2170
@SYMTestCaseID GRAPHICS-SYSLIB-GDI-CT-0221
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2171
@SYMTestCaseDesc Test support for Vietnamese characters.
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2172
@SYMTestPriority High
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2173
@SYMTestActions  Attempt to compose various valid and invalid Vietnamese glyph clusters.
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2174
@SYMTestExpectedResults The test must not fail.
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2175
@SYMPREQ 402: GDI for Bravo.
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2176
*/
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2177
void CTGlyphSelection::TestVietnameseChars()
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2178
    {
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2179
/**
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2180
 This method is a test case to test GetCharacterPosition() correctly
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2181
 processes Vietnamese characters.
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2182
*/
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2183
    TBool r;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2184
    TBuf<41> testText(0);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2185
    CFont::TPositionParam param;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2186
    param.iDirection = CFont::EHorizontal;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2187
    param.iFlags = CFont::TPositionParam::EFLogicalOrder;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2188
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2189
    testText.SetLength(41);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2190
    
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2191
    testText[0] = 0x0055; // capital U
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2192
    testText[1] = 0x031B; // combining horn - expect 0x01AF (succeed)
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2193
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2194
    testText[2] = 0x0055; // capital U
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2195
    testText[3] = 0x0027; // apostrophe - expect 0x0055 (fail)
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2196
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2197
    testText[4] = 0x0055; // capital U
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2198
    testText[5] = 0x02B9; // modifier prime - expect 0x0055 (fail)
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2199
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2200
    testText[6] = 0x0055; // capital U
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2201
    testText[7] = 0x02BC; // modifier apostrophe - expect 0x0055 (fail)
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2202
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2203
    testText[8] = 0x0055; // capital U
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2204
    testText[9] = 0x0315; // combining comma above right - expect 0x0055, 0x0315 (fail)
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2205
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2206
    testText[10] = 0x0055; // capital U
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2207
    testText[11] = 0x2019; // right single quote mark - expect 0x0055 (fail)
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2208
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2209
    testText[12] = 0x01AF; // capital U with horn
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2210
    testText[13] = 0x0020; // space - expect 0x01AF (succeed)
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2211
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2212
    testText[14] = 0x0045; // capital E
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2213
    testText[15] = 0x031B; // combining horn - expect 0x0045, 0x031B (fail)
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2214
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2215
    testText[16] = 0x0041; // capital A
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2216
    testText[17] = 0x0306; // combining breve
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2217
    testText[18] = 0x0301; // combining acute - expect 0x1EAE (succeed)
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2218
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2219
    testText[19] = 0x0102; // capital A with breve
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2220
    testText[20] = 0x0301; // combining acute - expect 0x1EAE (succeed)
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2221
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2222
    testText[21] = 0x0041; // capital A
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2223
    testText[22] = 0x0301; // combining acute
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2224
    testText[23] = 0x0306; // combining breve - expect 0x0041, 0x0301, 0x0306 (fail)
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2225
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2226
    testText[24] = 0x0041; // capital A
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2227
    testText[25] = 0x0323; // combining dot below
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2228
    testText[26] = 0x0306; // combining breve - expect 0x1EB6 (succeed)
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2229
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2230
    testText[27] = 0x1EA0; // capital A with dot below
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2231
    testText[28] = 0x0306; // combining breve - expect 0x1EB6 (succeed)
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2232
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2233
    testText[29] = 0x0102; // capital A with breve
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2234
    testText[30] = 0x0323; // combining dot below - expect 0x0102, 0x0323 (fail)
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2235
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2236
    testText[31] = 0x0045; // capital A
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2237
    testText[32] = 0x0302; // combining circumflex
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2238
    testText[33] = 0x0301; // combining acute - expect 0x1EBE (succeed)
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2239
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2240
    testText[34] = 0x00CA; // capital A with circumflex
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2241
    testText[35] = 0x0301; // combining acute - expect 0x1EBE (succeed)
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2242
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2243
    testText[36] = 0x004F; // capital O
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2244
    testText[37] = 0x031B; // combining horn
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2245
    testText[38] = 0x0309; // combining hook above - expect 0x1EDE (succeed)
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2246
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2247
    testText[39] = 0x01A0; // capital O with horn
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2248
    testText[40] = 0x0309; // combining hook above - expect 0x1EDE (succeed)
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2249
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2250
    param.iText.Set(testText);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2251
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2252
    // 1: Capital U with combining horn
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2253
    param.iPosInText = 0;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2254
    param.iPen.iX = param.iPen.iY = 0;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2255
    r = iTestFont->GetCharacterPosition(param);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2256
    TEST(r && param.iPosInText == 2 
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2257
           && param.iPen.iX == 10
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2258
           && param.iOutputGlyphs == 1
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2259
           && param.iOutput[0].iCode == 0x01AF);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2260
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2261
    // 2: Capital U with apostrophe
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2262
    param.iPosInText = 2;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2263
    param.iPen.iX = param.iPen.iY = 0;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2264
    r = iTestFont->GetCharacterPosition(param);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2265
    TEST(r && param.iPosInText == 3 
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2266
           && param.iPen.iX == 10
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2267
           && param.iOutputGlyphs == 1
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2268
           && param.iOutput[0].iCode == 0x0055);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2269
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2270
    // 3: Capital U with modifier prime
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2271
    param.iPosInText = 4;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2272
    param.iPen.iX = param.iPen.iY = 0;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2273
    r = iTestFont->GetCharacterPosition(param);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2274
    TEST(r && param.iPosInText == 5 
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2275
           && param.iPen.iX == 10
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2276
           && param.iOutputGlyphs == 1
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2277
           && param.iOutput[0].iCode == 0x0055);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2278
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2279
    // 4: Capital U with modifier apostrophe
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2280
    param.iPosInText = 6;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2281
    param.iPen.iX = param.iPen.iY = 0;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2282
    r = iTestFont->GetCharacterPosition(param);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2283
    TEST(r && param.iPosInText == 7 
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2284
           && param.iPen.iX == 10
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2285
           && param.iOutputGlyphs == 1
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2286
           && param.iOutput[0].iCode == 0x0055);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2287
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2288
    // 5: Capital U with combining comma above right
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2289
    param.iPosInText = 8;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2290
    param.iPen.iX = param.iPen.iY = 0;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2291
    r = iTestFont->GetCharacterPosition(param);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2292
    TEST(r && param.iPosInText == 10 
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2293
           && param.iPen.iX == 10
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2294
           && param.iOutputGlyphs == 2
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2295
           && param.iOutput[0].iCode == 0x0055
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2296
           && param.iOutput[1].iCode == 0x0315);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2297
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2298
    // 6: Capital U with right single quote
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2299
    param.iPosInText = 10;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2300
    param.iPen.iX = param.iPen.iY = 0;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2301
    r = iTestFont->GetCharacterPosition(param);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2302
    TEST(r && param.iPosInText == 11 
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2303
           && param.iPen.iX == 10
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2304
           && param.iOutputGlyphs == 1
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2305
           && param.iOutput[0].iCode == 0x0055);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2306
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2307
    // 7: Capital U with horn plus space
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2308
    param.iPosInText = 12;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2309
    param.iPen.iX = param.iPen.iY = 0;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2310
    r = iTestFont->GetCharacterPosition(param);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2311
    TEST(r && param.iPosInText == 13 
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2312
           && param.iPen.iX == 10
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2313
           && param.iOutputGlyphs == 1
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2314
           && param.iOutput[0].iCode == 0x01AF);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2315
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2316
    // 8: Capital E with combining horn
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2317
    param.iPosInText = 14;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2318
    param.iPen.iX = param.iPen.iY = 0;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2319
    r = iTestFont->GetCharacterPosition(param);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2320
    TEST(r && param.iPosInText == 16 
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2321
           && param.iPen.iX == 10
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2322
           && param.iOutputGlyphs == 2
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2323
           && param.iOutput[0].iCode == 0x0045
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2324
           && param.iOutput[1].iCode == 0x031B);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2325
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2326
    // 9: Capital A with combining breve with combining acute
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2327
    param.iPosInText = 16;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2328
    param.iPen.iX = param.iPen.iY = 0;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2329
    r = iTestFont->GetCharacterPosition(param);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2330
    TEST(r && param.iPosInText == 19 
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2331
           && param.iPen.iX == 10
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2332
           && param.iOutputGlyphs == 1
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2333
           && param.iOutput[0].iCode == 0x1EAE);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2334
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2335
    // 10: Capital A with breve with combining acute
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2336
    param.iPosInText = 19;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2337
    param.iPen.iX = param.iPen.iY = 0;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2338
    r = iTestFont->GetCharacterPosition(param);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2339
    TEST(r && param.iPosInText == 21 
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2340
           && param.iPen.iX == 10
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2341
           && param.iOutputGlyphs == 1
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2342
           && param.iOutput[0].iCode == 0x1EAE);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2343
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2344
    // 11: Capital A with combining acute with combining breve
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2345
    param.iPosInText = 21;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2346
    param.iPen.iX = param.iPen.iY = 0;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2347
    r = iTestFont->GetCharacterPosition(param);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2348
    TEST(r && param.iPosInText == 24 
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2349
           && param.iPen.iX == 10
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2350
           && param.iOutputGlyphs == 3
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2351
           && param.iOutput[0].iCode == 0x0041
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2352
           && param.iOutput[1].iCode == 0x0301
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2353
           && param.iOutput[2].iCode == 0x0306);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2354
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2355
    // 12: Capital A with combining dot below with combining breve
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2356
    param.iPosInText = 24;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2357
    param.iPen.iX = param.iPen.iY = 0;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2358
    r = iTestFont->GetCharacterPosition(param);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2359
    TEST(r && param.iPosInText == 27 
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2360
           && param.iPen.iX == 10
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2361
           && param.iOutputGlyphs == 1
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2362
           && param.iOutput[0].iCode == 0x1EB6);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2363
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2364
    // 13: Capital A with dot below with combining breve
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2365
    param.iPosInText = 27;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2366
    param.iPen.iX = param.iPen.iY = 0;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2367
    r = iTestFont->GetCharacterPosition(param);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2368
    TEST(r && param.iPosInText == 29 
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2369
           && param.iPen.iX == 10
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2370
           && param.iOutputGlyphs == 1
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2371
           && param.iOutput[0].iCode == 0x1EB6);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2372
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2373
    // 14: Capital A with breve with combining dot below
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2374
    param.iPosInText = 29;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2375
    param.iPen.iX = param.iPen.iY = 0;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2376
    r = iTestFont->GetCharacterPosition(param);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2377
    TEST(r && param.iPosInText == 31 
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2378
           && param.iPen.iX == 10
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2379
           && param.iOutputGlyphs == 2
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2380
           && param.iOutput[0].iCode == 0x0102
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2381
           && param.iOutput[1].iCode == 0x0323);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2382
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2383
    // 15: Capital A with combining circumflex with combining acute
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2384
    param.iPosInText = 31;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2385
    param.iPen.iX = param.iPen.iY = 0;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2386
    r = iTestFont->GetCharacterPosition(param);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2387
    TEST(r && param.iPosInText == 34 
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2388
           && param.iPen.iX == 10
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2389
           && param.iOutputGlyphs == 1
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2390
           && param.iOutput[0].iCode == 0x1EBE);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2391
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2392
    // 16: Capital A with circumflex with combining acute
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2393
    param.iPosInText = 34;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2394
    param.iPen.iX = param.iPen.iY = 0;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2395
    r = iTestFont->GetCharacterPosition(param);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2396
    TEST(r && param.iPosInText == 36 
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2397
           && param.iPen.iX == 10
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2398
           && param.iOutputGlyphs == 1
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2399
           && param.iOutput[0].iCode == 0x1EBE);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2400
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2401
    // 17: Capital O with combining horn with combing hook above
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2402
    param.iPosInText = 36;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2403
    param.iPen.iX = param.iPen.iY = 0;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2404
    r = iTestFont->GetCharacterPosition(param);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2405
    TEST(r && param.iPosInText == 39 
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2406
           && param.iPen.iX == 10
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2407
           && param.iOutputGlyphs == 1
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2408
           && param.iOutput[0].iCode == 0x1EDE);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2409
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2410
    // 18: Capital O with horn with combing hook above
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2411
    param.iPosInText = 39;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2412
    param.iPen.iX = param.iPen.iY = 0;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2413
    r = iTestFont->GetCharacterPosition(param);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2414
    TEST(r && param.iPosInText == 41 
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2415
           && param.iPen.iX == 10
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2416
           && param.iOutputGlyphs == 1
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2417
           && param.iOutput[0].iCode == 0x1EDE);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2418
    }
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2419
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2420
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2421
void CTGlyphSelection::TestNonBmpCharsL()
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2422
    {
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2423
    // create a font store for testing
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2424
    CFontStore* fontStore = CFontStore::NewL(&User::Heap());
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2425
    
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2426
    //load all ecom implemented rasterizer dlls. installs the rasterizer.   
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2427
    LoadOpenFontLibraries(fontStore);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2428
        // test font preparation
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2429
    fontStore->iKPixelWidthInTwips = 11860; //This value is default
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2430
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2431
    //add any required font files
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2432
    TUid err = fontStore->AddFileL(KTestGB18030FontFile);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2433
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2434
    TFontSpec testGB18030FontSpec(KTestGB18030FontFaceName,200); 
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2435
     
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2436
    CFbsBitmap* bmp = new(ELeave) CFbsBitmap;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2437
    
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2438
    TInt ret = bmp->Create(TSize(100,100),EGray2);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2439
    if (ret == KErrNotSupported)
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2440
        return;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2441
    else
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2442
        User::LeaveIfError(ret);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2443
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2444
    CFbsBitmapDevice* device = NULL;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2445
    TRAPD(err2,device = CFbsBitmapDevice::NewL(bmp));
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2446
    TEST(err2 == KErrNone);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2447
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2448
    CFbsBitGc* gc = NULL;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2449
    User::LeaveIfError(device->CreateContext(gc));
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2450
    // Font file Creation
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2451
    CFbsFont* gb18030Font = NULL;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2452
    User::LeaveIfError(device->GetNearestFontToDesignHeightInTwips(gb18030Font,testGB18030FontSpec));
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2453
    gc->UseFont(gb18030Font);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2454
    CleanupStack::PushL(gb18030Font);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2455
    
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2456
    //Testcode for GB18030
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2457
    ((CTGlyphSelectionStep*)iStep)->RecordTestResultL();
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2458
    ((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("TI18N-GDI-CIT-4077"));
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2459
    TestNonBmpCharsInGB18030(gb18030Font);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2460
    ((CTGlyphSelectionStep*)iStep)->RecordTestResultL();
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2461
    
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2462
    CleanupStack::Pop(gb18030Font);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2463
    
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2464
    //Cleaning the memory
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2465
    delete bmp;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2466
    delete device;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2467
    delete gc;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2468
    fontStore->RemoveFile(err);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2469
    delete fontStore;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2470
    REComSession::FinalClose();
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2471
    }
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2472
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2473
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2474
void CTGlyphSelection::TestTextDirection()
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2475
/**
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2476
 This method is a test case to test GetCharacterPosition() correctly
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2477
 produces glyph bounding boxes and utilizes various pen offsets in
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2478
 a horizontal and vertical context.
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2479
*/
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2480
    {
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2481
    TBool r;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2482
    TBuf<20> testText(0);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2483
    CFont::TPositionParam param;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2484
    param.iFlags = CFont::TPositionParam::EFLogicalOrder;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2485
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2486
    testText.SetLength(5);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2487
    testText[0] = 'a';
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2488
    testText[1] = 'B';
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2489
    testText[2] = 'c';
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2490
    testText[3] = ' ';
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2491
    testText[4] = '1';
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2492
    param.iText.Set(testText);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2493
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2494
    // 1: Test horizontal text pen advancement & bounds
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2495
    param.iDirection = CFont::EHorizontal;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2496
    param.iPosInText = 0;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2497
    param.iPen.iX = param.iPen.iY = 0;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2498
    r = iTestFont->GetCharacterPosition(param);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2499
    TEST(r && param.iPosInText == 1 
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2500
           && param.iPen == TPoint(10,0)
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2501
           && param.iOutputGlyphs == 1 
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2502
           && param.iOutput[0].iCode == 'a'
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2503
           && param.iOutput[0].iBounds.iTl == TPoint(0,-10)
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2504
           && param.iOutput[0].iBounds.iBr == TPoint(10,2));
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2505
           // add check for bounds
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2506
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2507
    // 2: Test horizontal text pen advancement with +ve pen offset
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2508
    param.iPosInText = 4;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2509
    param.iPen.iX = 20;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2510
    param.iPen.iY = 12;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2511
    r = iTestFont->GetCharacterPosition(param);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2512
    TEST(r && param.iPosInText == 5 
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2513
           && param.iPen == TPoint(30,12)
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2514
           && param.iOutputGlyphs == 1 
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2515
           && param.iOutput[0].iCode == '1'
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2516
           && param.iOutput[0].iBounds.iTl == TPoint(20,2)
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2517
           && param.iOutput[0].iBounds.iBr == TPoint(30,14));
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2518
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2519
    // 3: Test horizontal text pen advancement with -ve pen offset
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2520
    param.iPosInText = 4;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2521
    param.iPen.iX = -10;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2522
    param.iPen.iY = -24;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2523
    r = iTestFont->GetCharacterPosition(param);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2524
    TEST(r && param.iPosInText == 5 
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2525
           && param.iPen == TPoint(0,-24)
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2526
           && param.iOutputGlyphs == 1 
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2527
           && param.iOutput[0].iCode == '1'
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2528
           && param.iOutput[0].iBounds.iTl == TPoint(-10,-34)
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2529
           && param.iOutput[0].iBounds.iBr == TPoint(0,-22));
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2530
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2531
    // 4: Test vertical text pen advancement & bounds
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2532
    param.iDirection = CFont::EVertical;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2533
    param.iPosInText = 1;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2534
    param.iPen.iX = param.iPen.iY = 0;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2535
    r = iTestFont->GetCharacterPosition(param);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2536
    TEST(r && param.iPosInText == 2 
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2537
           && param.iPen == TPoint(0,12)
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2538
           && param.iOutputGlyphs == 1 
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2539
           && param.iOutput[0].iCode == 'B'
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2540
           && param.iOutput[0].iBounds.iTl == TPoint(0,0)
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2541
           && param.iOutput[0].iBounds.iBr == TPoint(10,12));
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2542
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2543
    // 5: Test vertical text pen advancement with +ve pen offset
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2544
    param.iPosInText = 4;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2545
    param.iPen.iX = 20;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2546
    param.iPen.iY = 12;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2547
    r = iTestFont->GetCharacterPosition(param);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2548
    TEST(r && param.iPosInText == 5 
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2549
           && param.iPen == TPoint(20,24)
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2550
           && param.iOutputGlyphs == 1 
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2551
           && param.iOutput[0].iCode == '1'
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2552
           && param.iOutput[0].iBounds.iTl == TPoint(20,12)
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2553
           && param.iOutput[0].iBounds.iBr == TPoint(30,24));
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2554
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2555
    // 6: Test vertical text pen advancement with -ve pen offset
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2556
    param.iPosInText = 4;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2557
    param.iPen.iX = -10;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2558
    param.iPen.iY = -24;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2559
    r = iTestFont->GetCharacterPosition(param);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2560
    TEST(r && param.iPosInText == 5 
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2561
           && param.iPen == TPoint(-10,-12)
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2562
           && param.iOutputGlyphs == 1 
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2563
           && param.iOutput[0].iCode == '1'
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2564
           && param.iOutput[0].iBounds.iTl == TPoint(-10,-24)
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2565
           && param.iOutput[0].iBounds.iBr == TPoint(0,-12));
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2566
    }
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2567
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2568
void CTGlyphSelection::TestAllUnicodeChars()
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2569
/**
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2570
 This method is a test case to test GetCharacterPosition() correctly
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2571
 processes all the characters in the Unicode code space 0x0000 to 
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2572
 0xffff.
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2573
*/
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2574
    {
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2575
    TBool r;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2576
    TBuf<8> testText(0);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2577
    CFont::TPositionParam param;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2578
    param.iFlags = CFont::TPositionParam::EFLogicalOrder;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2579
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2580
    TInt errors = 0;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2581
    testText.SetLength(1);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2582
    for (TUint i = 0xd802; i <= 0xffff; i++)
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2583
        {
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2584
        testText[0] = (TText16) i;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2585
        if (i==0x1b) continue; // Skip as CTestFont designed to fail here r==0.
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2586
        param.iText.Set(testText);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2587
        param.iDirection = CFont::EHorizontal;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2588
        param.iPosInText = 0;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2589
        param.iPen.iX = param.iPen.iY = 0;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2590
        r = iTestFont->GetCharacterPosition(param);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2591
        if (!r || param.iPosInText != 1)
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2592
            {
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2593
            errors++;
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2594
            //RDebug::Print(_L("%04x(%d,%d,%d), "), i, r, param.iPosInText, param.iOutputGlyphs );
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2595
            //if (errors%8 == 0)
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2596
            //  RDebug::Print(_L("\n"));
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2597
            }
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2598
        }
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2599
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2600
    TEST (errors == 0);
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2601
    }
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2602
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2603
#ifdef TEST
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2604
#undef TEST
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2605
#define TEST(a) (void)(a)
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2606
#endif
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2607
f66674566702 201033_08
hgs
parents: 45
diff changeset
  2608
/**
45
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2609
@SYMTestCaseID GRAPHICS-SYSLIB-GDI-CIT-1580
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2610
@SYMTestCaseDesc Automated GDI testing for Hindi
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2611
@SYMTestPriority High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2612
@SYMTestActions  Attempt to compose various valid and invalid Hindi glyph clusters.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2613
@SYMTestExpectedResults The expected glyph clusters for given Unicode charactors must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2614
@SYMPREQ 18: Hindi for Bravo
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2615
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2616
void CTGlyphSelection::TestHindiChars(CFbsFont* aFont)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2617
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2618
	INFO_PRINTF1(_L("Test Hindi Glyphs"));	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2619
	// Do the testing
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2620
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2621
	TBool r;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2622
	TBuf<30> testText(0);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2623
	CFont::TPositionParam param;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2624
	param.iDirection = CFont::EHorizontal;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2625
	param.iFlags = CFont::TPositionParam::EFLogicalOrder;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2626
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2627
	testText.SetLength(30);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2628
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2629
	testText[0] = 0x0930;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2630
	testText[1] = 0x093C;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2631
	testText[2] = 0x094D;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2632
	testText[3] = 0x0915;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2633
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2634
	testText[4] = 0x0915;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2635
	testText[5] = 0x094D;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2636
	testText[6] = 0x0915;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2637
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2638
	testText[7] = 0x0930;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2639
	testText[8] = 0x094D;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2640
	testText[9] = 0x0915;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2641
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2642
	testText[10] = 0x0915;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2643
	testText[11] = 0x094D;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2644
	testText[12] = 0x0930;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2645
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2646
	testText[13] = 0x0915;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2647
	testText[14] = 0x094D;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2648
	testText[15] = 0x0937;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2649
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2650
	testText[16] = 0x0915;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2651
	testText[17] = 0x094D;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2652
	testText[18] = 0x0930;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2653
	testText[19] = 0x094D;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2654
	testText[20] = 0x092A;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2655
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2656
	/*	When the following character 0x0036 is shaped, the context will be taken into consideration when
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2657
		determining the glyph for 0x0036 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2658
		The context for 0x0036 is the Devanagari character 0x092A at position (iPosInText) 20
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2659
	**/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2660
	testText[21] = 0x0036;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2661
	testText[22] = 0x094D;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2662
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2663
	testText[23] = 0x0020;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2664
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2665
	// INC101103: Strings containing ZWJ do not get rendered properly for Hindi 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2666
	testText[24] = 0x092E;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2667
	testText[25] = 0x094D;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2668
	testText[26] = 0x200D;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2669
	testText[27] = 0x092E; 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2670
	testText[28] = 0x093F;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2671
	testText[29] = 0x200D;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2672
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2673
	param.iText.Set(testText);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2674
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2675
	RShapeInfo aShapeInfo;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2676
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2677
	// Do the testing
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2678
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2679
	param.iPosInText = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2680
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2681
	r = aFont->GetCharacterPosition2(param, aShapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2682
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2683
	TEST(r && param.iPosInText == 4 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2684
		   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2685
		   && param.iOutput[0].iCode == 0x80000108
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2686
		   && param.iOutput[1].iCode == 0x80000072);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2687
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2688
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2689
	TEST(r && param.iPen.iX == 17);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2690
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2691
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2692
	INFO_PRINTF6(_L("The result of this shaping is %d %d %d 0x%x 0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2693
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2694
	param.iPosInText = 4;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2695
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2696
	r = aFont->GetCharacterPosition2(param, aShapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2697
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2698
	TEST(r && param.iPosInText == 7 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2699
		   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2700
		   && param.iOutput[0].iCode == 0x800001C2);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2701
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2702
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2703
	TEST(r && param.iPen.iX == 12);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2704
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2705
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2706
	INFO_PRINTF5(_L("The result of this shaping is %d %d %d 0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2707
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2708
	param.iPosInText = 7;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2709
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2710
	r = aFont->GetCharacterPosition2(param, aShapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2711
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2712
	TEST(r && param.iPosInText == 10 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2713
		   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2714
		   && param.iOutput[0].iCode == 0x80000072
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2715
		   && param.iOutput[1].iCode == 0x80000130);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2716
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2717
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2718
	TEST(r && param.iPen.iX == 11);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2719
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2720
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2721
	INFO_PRINTF6(_L("The result of this shaping is %d %d %d 0x%x 0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2722
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2723
	param.iPosInText = 10;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2724
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2725
	r = aFont->GetCharacterPosition2(param, aShapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2726
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2727
	TEST(r && param.iPosInText == 13 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2728
		   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2729
		   && param.iOutput[0].iCode == 0x80000136);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2730
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2731
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2732
	TEST(r && param.iPen.iX == 12);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2733
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2734
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2735
	INFO_PRINTF5(_L("The result of this shaping is %d %d %d 0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2736
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2737
	param.iPosInText = 13;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2738
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2739
	r = aFont->GetCharacterPosition2(param, aShapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2740
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2741
	TEST(r && param.iPosInText == 16 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2742
		   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2743
		   && param.iOutput[0].iCode == 0x800001BE);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2744
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2745
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2746
	TEST(r && param.iPen.iX == 12);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2747
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2748
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2749
	INFO_PRINTF5(_L("The result of this shaping is %d %d %d 0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2750
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2751
	param.iPosInText = 16;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2752
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2753
	r = aFont->GetCharacterPosition2(param, aShapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2754
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2755
	TEST(r && param.iPosInText == 21 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2756
		   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2757
		   && param.iOutput[0].iCode == 0x8000017A
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2758
		   && param.iOutput[1].iCode == 0x80000087);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2759
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2760
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2761
	TEST(r && param.iPen.iX == 18);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2762
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2763
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2764
	INFO_PRINTF6(_L("The result of this shaping is %d %d %d 0x%x 0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2765
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2766
	/*	The following shaping will consider the context when determining the glyph for 0x0036 Digit character 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2767
		The context for 0x0036 is the Devanagari character 0x092A at position (iPosInText) 20
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2768
	**/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2769
	param.iPosInText = 21;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2770
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2771
	r = aFont->GetCharacterPosition2(param, aShapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2772
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2773
	TEST(r && param.iPosInText == 22 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2774
		   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2775
		   && param.iOutput[0].iCode == 0x80000016);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2776
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2777
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2778
	TEST(r && param.iPen.iX == 9);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2779
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2780
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2781
	INFO_PRINTF5(_L("The result of this shaping is %d %d %d 0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2782
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2783
	// INC101103: Strings containing ZWJ do not get rendered properly for Hindi 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2784
	param.iPosInText = 24;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2785
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2786
	r = aFont->GetCharacterPosition2(param, aShapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2787
	// We are mainly testing the position in text after rendering, which should be at the end of the syllable
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2788
	// that should include the ZWJ and any consonant that follows it
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2789
	TEST(r && param.iPosInText == 29 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2790
		   && param.iOutputGlyphs == 3
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2791
		   && param.iOutput[0].iCode == 0x80000272
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2792
		   && param.iOutput[1].iCode == 0x80000105
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2793
		   && param.iOutput[2].iCode == 0x8000008B);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2794
		   
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2795
	// Close aShapeInfo which releases any memory it is occupying
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2796
	if (aShapeInfo.IsOpen())
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2797
		aShapeInfo.Close();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2798
		   
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2799
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2800
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2801
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2802
@SYMTestCaseID GRAPHICS-SYSLIB-GDI-CIT-3381
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2803
@SYMTestCaseDesc Automated GDI testing for Kannada
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2804
@SYMTestPriority High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2805
@SYMTestActions  Attempt to compose various valid and invalid Kannada glyph clusters.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2806
@SYMTestExpectedResults The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2807
@SYMPREQ 19: Kannada for Ogmha
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2808
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2809
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2810
void CTGlyphSelection::TestKannadaChars(CFbsFont* aFont)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2811
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2812
INFO_PRINTF1(_L("Test Kannada Glyphs"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2813
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2814
	TBuf<79> testText(0);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2815
	CFont::TPositionParam param;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2816
	param.iDirection = CFont::EHorizontal;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2817
	param.iFlags = CFont::TPositionParam::EFLogicalOrder;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2818
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2819
	testText.SetLength(79);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2820
	//Testdata for kannada Langauage
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2821
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2822
	testText[0] = 0x0C95;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2823
	testText[1] = 0x0CCD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2824
	testText[2] = 0x0020; 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2825
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2826
	testText[3] = 0x0CAF;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2827
	testText[4] = 0x0CCD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2828
	testText[5] = 0x0020;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2829
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2830
	testText[6] = 0x0C99;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2831
	testText[7] = 0x0CCD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2832
	testText[8] = 0x0020;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2833
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2834
	testText[9] = 0x0CA3;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2835
	testText[10] = 0x0CCD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2836
	testText[11] = 0x0020;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2837
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2838
	testText[12] = 0x0C95;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2839
	testText[13] = 0x0CC3;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2840
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2841
	testText[14] = 0x0CA4;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2842
	testText[15] = 0x0CC6;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2843
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2844
	testText[16] = 0x0C9D;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2845
	testText[17] = 0x0CBE;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2846
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2847
	testText[18] = 0x0C9E;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2848
	testText[19] = 0x0CBE;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2849
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2850
	testText[20] = 0x0CA3;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2851
	testText[21] = 0x0CBE;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2852
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2853
	testText[22] = 0x0CB3;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2854
	testText[23] = 0x0CC6;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2855
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2856
	testText[24] = 0x0C9D;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2857
	testText[25] = 0x0CC6;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2858
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2859
	testText[26] = 0x0CAC;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2860
	testText[27] = 0x0CC6;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2861
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2862
	testText[28] = 0x0C9F;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2863
	testText[29] = 0x0CC6;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2864
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2865
	testText[30] = 0x0C99;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2866
	testText[31] = 0x0CC6;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2867
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2868
	testText[32] = 0x0CA3;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2869
	testText[33] = 0x0CC6;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2870
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2871
	testText[34] = 0x0C95;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2872
	testText[35] = 0x0CBF;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2873
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2874
	testText[36] = 0x0CB8;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2875
	testText[37] = 0x0CBF;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2876
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2877
	testText[38] = 0x0CA1;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2878
	testText[39] = 0x0CBF;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2879
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2880
	testText[40] = 0x0CA6;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2881
	testText[41] = 0x0CBF;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2882
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2883
	testText[42] = 0x0C9D;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2884
	testText[43] = 0x0CBF;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2885
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2886
	testText[44] = 0x0C9D;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2887
	testText[45] = 0x0CC1;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2888
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2889
	testText[46] = 0x0CB5;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2890
	testText[47] = 0x0CC1;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2891
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2892
	testText[48] = 0x0C95;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2893
	testText[49] = 0x0CC2;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2894
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2895
	testText[50] = 0x0CAA;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2896
	testText[51] = 0x0CC2;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2897
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2898
	testText[52] = 0x0CAE;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2899
	testText[53] = 0x0CCC;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2900
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2901
	testText[54] = 0x0C95;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2902
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2903
	testText[55] = 0x0CB0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2904
	testText[56] = 0x200D;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2905
	testText[57] = 0x0CCD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2906
	testText[58] = 0x0CAE;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2907
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2908
	testText[59] = 0x0020;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2909
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2910
	testText[60] = 0x0CB0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2911
	testText[61] = 0x200D;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2912
	testText[62] = 0x0CCD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2913
	testText[63] = 0x0CB0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2914
	testText[64] = 0x200D;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2915
	testText[65] = 0x0CCD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2916
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2917
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2918
	testText[66] = 0x0CB0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2919
	testText[67] = 0x200D;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2920
	testText[68] = 0x0CCD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2921
	testText[69] = 0x0CB0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2922
	testText[70] = 0x0CCD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2923
	testText[71] = 0x0CB0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2924
	testText[72] = 0x0CCD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2925
	testText[73] = 0x0CB0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2926
	testText[74] = 0x0CCD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2927
	testText[75] = 0x0CB0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2928
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2929
	// DEF103276: Kannada rendering: IcuLayoutEngine does not recongnise 0X0C8E as a vowel
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2930
	testText[76] = 0x0020;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2931
	testText[77] = 0x0C8E;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2932
	testText[78] = 0x0C82;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2933
	// End of DEF103276: Kannada rendering: IcuLayoutEngine does not recongnise 0X0C8E as a vowel
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2934
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2935
	param.iText.Set(testText);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2936
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2937
	// Do the testing
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2938
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2939
	TBool r;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2940
	param.iPosInText = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2941
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2942
	RShapeInfo shapeInfo;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2943
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2944
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2945
	TEST(r && param.iPosInText ==2 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2946
		   && param.iOutputGlyphs == 1 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2947
		   && param.iOutput[0].iCode == 0x80000839);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2948
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2949
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2950
	TEST(r && param.iPen.iX == 16);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2951
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2952
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2953
	INFO_PRINTF5(_L("The values of this shaping of Ka + Virama are iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2954
    
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2955
	param.iPosInText = 3;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2956
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2957
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2958
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2959
	TEST(r && param.iPosInText == 5
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2960
		   && param.iOutputGlyphs ==1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2961
		   && param.iOutput[0].iCode == 0x80000852 );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2962
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2963
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2964
	TEST(r && param.iPen.iX == 27);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2965
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2966
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2967
	INFO_PRINTF5(_L("The values of this shaping Ya + Virama are iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2968
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2969
	param.iPosInText = 6;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2970
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2971
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2972
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2973
	TEST(r && param.iPosInText == 8
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2974
		   && param.iOutputGlyphs == 1 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2975
		   && param.iOutput[0].iCode ==0x8000083D);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2976
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2977
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2978
	TEST(r && param.iPen.iX == 19);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2979
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2980
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2981
	INFO_PRINTF5(_L("The result of this shaping for Nya + Virama iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2982
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2983
	param.iPosInText = 9;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2984
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2985
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2986
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2987
	TEST(r && param.iPosInText == 11
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2988
		   && param.iOutputGlyphs ==1 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2989
		   && param.iOutput[0].iCode == 0x80000847);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2990
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2991
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2992
	TEST(r && param.iPen.iX == 20);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2993
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2994
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2995
	INFO_PRINTF5(_L("The result of this shaping for NNA + Virama iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2996
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2997
	param.iPosInText = 12;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2998
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  2999
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3000
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3001
	TEST(r && param.iPosInText == 14
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3002
		   && param.iOutputGlyphs == 2 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3003
		   && param.iOutput[0].iCode == 0x800007A8
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3004
		   && param.iOutput[1].iCode == 0x800007D2);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3005
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3006
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3007
	TEST(r && param.iPen.iX == 12);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3008
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3009
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3010
	INFO_PRINTF6(_L("The result of this shaping for Ka + Matra Vocalic R iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3011
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3012
	param.iPosInText = 14;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3013
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3014
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3015
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3016
	TEST(r && param.iPosInText == 16
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3017
		   && param.iOutputGlyphs == 1 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3018
		   && param.iOutput[0].iCode == 0x8000088f);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3019
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3020
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3021
	TEST(r && param.iPen.iX == 11);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3022
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3023
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3024
	INFO_PRINTF5(_L("The result of this shaping for Ta + Matra AA iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3025
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3026
	param.iPosInText = 16;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3027
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3028
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3029
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3030
	TEST(r && param.iPosInText == 18
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3031
		   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3032
		   && param.iOutput[0].iCode == 0x8000081E 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3033
		   && param.iOutput[1].iCode == 0x800007CD);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3034
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3035
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3036
	TEST(r && param.iPen.iX == 29);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3037
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3038
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3039
	INFO_PRINTF6(_L("The result of this shaping  for Jha + Matra AA iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3040
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3041
	param.iPosInText = 18;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3042
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3043
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3044
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3045
	TEST(r && param.iPosInText == 20
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3046
		   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3047
		   && param.iOutput[0].iCode == 0x800007b1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3048
		   && param.iOutput[1].iCode == 0x800007cd);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3049
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3050
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3051
	TEST(r && param.iPen.iX == 23);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3052
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3053
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3054
	INFO_PRINTF6(_L("The result of this shaping for Nya + Matra AA iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3055
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3056
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3057
	param.iPosInText = 20;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3058
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3059
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3060
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3061
	TEST(r && param.iPosInText == 22
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3062
		   && param.iOutputGlyphs == 2 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3063
		   && param.iOutput[0].iCode == 0x80000823
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3064
		   && param.iOutput[1].iCode == 0x800007CD );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3065
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3066
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3067
	TEST(r && param.iPen.iX == 21);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3068
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3069
	    
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3070
	INFO_PRINTF6(_L("The result of this shaping for Nna + Matra AA iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3071
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3072
	param.iPosInText = 22;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3073
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3074
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3075
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3076
	TEST(r && param.iPosInText == 24
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3077
		   && param.iOutputGlyphs == 1 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3078
		   && param.iOutput[0].iCode == 0x8000089C);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3079
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3080
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3081
	TEST(r && param.iPen.iX == 12);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3082
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3083
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3084
	INFO_PRINTF5(_L("The result of this shaping for  LLa + Matra E iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3085
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3086
	param.iPosInText = 24;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3087
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3088
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3089
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3090
	TEST(r && param.iPosInText == 26
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3091
		   && param.iOutputGlyphs == 1 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3092
		   && param.iOutput[0].iCode == 0x80000889);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3093
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3094
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3095
	TEST(r && param.iPen.iX == 22);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3096
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3097
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3098
	INFO_PRINTF5(_L("The result of this shaping for Jha + Matra E iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3099
	 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3100
	 param.iPosInText = 26;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3101
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3102
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3103
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3104
	TEST(r && param.iPosInText == 28
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3105
		   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3106
		   && param.iOutput[0].iCode == 0x80000896 );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3107
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3108
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3109
	TEST(r && param.iPen.iX == 13);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3110
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3111
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3112
	INFO_PRINTF5(_L("The result of this shaping for Ba + Matra E iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3113
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3114
	param.iPosInText = 28;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3115
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3116
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3117
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3118
	TEST(r && param.iPosInText == 30
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3119
		   && param.iOutputGlyphs == 1 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3120
		   && param.iOutput[0].iCode == 0x8000088a);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3121
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3122
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3123
	TEST(r && param.iPen.iX == 13);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3124
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3125
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3126
	INFO_PRINTF5(_L("The result of this shaping for Tta + Matra E iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3127
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3128
	param.iPosInText = 30;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3129
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3130
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3131
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3132
	TEST(r && param.iPosInText == 32
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3133
		   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3134
		   && param.iOutput[0].iCode == 0x800007ac
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3135
		   && param.iOutput[1].iCode == 0x800007d4 );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3136
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3137
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3138
	TEST(r && param.iPen.iX == 19);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3139
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3140
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3141
	INFO_PRINTF6(_L("The result of this shaping for Nya + Matra E iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3142
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3143
	param.iPosInText = 32;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3144
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3145
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3146
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3147
	TEST(r && param.iPosInText == 34
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3148
		   && param.iOutputGlyphs == 1 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3149
		   && param.iOutput[0].iCode == 0x8000088e);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3150
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3151
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3152
	TEST(r && param.iPen.iX == 14);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3153
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3154
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3155
	INFO_PRINTF5(_L("The result of this shaping for Nna + Matra E iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3156
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3157
	param.iPosInText = 34;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3158
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3159
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3160
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3161
	TEST(r && param.iPosInText == 36
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3162
		   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3163
		   && param.iOutput[0].iCode == 0x80000860 );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3164
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3165
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3166
	TEST(r && param.iPen.iX == 10);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3167
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3168
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3169
	INFO_PRINTF5(_L("The result of this shaping for Ka + Matra I iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3170
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3171
	param.iPosInText = 36;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3172
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3173
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3174
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3175
	TEST(r && param.iPosInText == 38
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3176
		   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3177
		   && param.iOutput[0].iCode == 0x8000087e );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3178
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3179
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3180
	TEST(r && param.iPen.iX == 11);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3181
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3182
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3183
	INFO_PRINTF5(_L("The result of this shaping for Sa + Matra I iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3184
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3185
	param.iPosInText = 38;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3186
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3187
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3188
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3189
	TEST(r && param.iPosInText == 40
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3190
		   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3191
		   && param.iOutput[0].iCode == 0x8000086a);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3192
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3193
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3194
	TEST(r && param.iPen.iX == 12);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3195
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3196
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3197
	INFO_PRINTF5(_L("The result of this shaping for Dda + Matra I iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3198
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3199
	param.iPosInText = 40;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3200
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3201
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3202
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3203
	TEST(r && param.iPosInText == 42
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3204
		   && param.iOutputGlyphs == 1 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3205
		   && param.iOutput[0].iCode == 0x8000086f);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3206
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3207
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3208
	TEST(r && param.iPen.iX == 12);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3209
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3210
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3211
	INFO_PRINTF5(_L("The result of this shaping for Va + Matra I iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3212
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3213
	param.iPosInText = 42;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3214
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3215
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3216
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3217
	TEST(r && param.iPosInText == 44
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3218
		   && param.iOutputGlyphs == 1 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3219
		   && param.iOutput[0].iCode == 0x80000867 );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3220
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3221
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3222
	TEST(r && param.iPen.iX == 22);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3223
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3224
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3225
	INFO_PRINTF5(_L("The result of this shaping for Jha + Matra I iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3226
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3227
	param.iPosInText = 44;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3228
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3229
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3230
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3231
	TEST(r && param.iPosInText == 46
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3232
		   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3233
		   && param.iOutput[0].iCode == 0x800007b0 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3234
		   && param.iOutput[1].iCode == 0x800007d0);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3235
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3236
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3237
	TEST(r && param.iPen.iX == 28);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3238
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3239
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3240
	INFO_PRINTF6(_L("The result of this shaping for Jha + Matra U iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3241
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3242
	param.iPosInText = 46;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3243
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3244
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3245
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3246
	TEST(r && param.iPosInText == 48
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3247
		   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3248
		   && param.iOutput[0].iCode == 0x800007c6
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3249
		   && param.iOutput[1].iCode == 0x800007d0);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3250
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3251
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3252
	TEST(r && param.iPen.iX == 18);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3253
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3254
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3255
	INFO_PRINTF6(_L("The result of this shaping for Va + Matra U iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3256
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3257
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3258
	param.iPosInText = 48;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3259
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3260
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3261
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3262
	TEST(r && param.iPosInText == 50
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3263
		   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3264
		   && param.iOutput[0].iCode == 0x800007a8
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3265
		   && param.iOutput[1].iCode == 0x800007d1 );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3266
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3267
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3268
	TEST(r && param.iPen.iX == 20);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3269
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3270
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3271
	INFO_PRINTF6(_L("The result of this shaping for Ka Matra UU iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode,param.iOutput[1].iCode);	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3272
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3273
	param.iPosInText = 50;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3274
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3275
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3276
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3277
	TEST(r && param.iPosInText == 52 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3278
		   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3279
		   && param.iOutput[0].iCode == 0x800007bc
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3280
		   && param.iOutput[1].iCode == 0x800008a5);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3281
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3282
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3283
	TEST(r && param.iPen.iX == 21);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3284
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3285
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3286
	INFO_PRINTF6(_L("The result of this shaping for Pa + Matra UU iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3287
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3288
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3289
	param.iPosInText = 52;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3290
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3291
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3292
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3293
	TEST(r && param.iPosInText == 54 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3294
		   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3295
		   && param.iOutput[0].iCode == 0x8000082d  
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3296
		   && param.iOutput[1].iCode == 0x800007d9);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3297
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3298
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3299
	TEST(r && param.iPen.iX == 26);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3300
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3301
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3302
	INFO_PRINTF6(_L("The result of this shaping for Ma + Matra UU iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3303
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3304
	param.iPosInText = 55;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3305
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3306
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3307
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3308
	TEST(r && param.iPosInText == 59 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3309
		   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3310
		   && param.iOutput[0].iCode == 0x800007c2 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3311
		   && param.iOutput[1].iCode == 0x80000809);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3312
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3313
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3314
	TEST(r && param.iPen.iX == 17);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3315
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3316
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3317
	INFO_PRINTF6(_L("The result of this shaping for Ma + Matra UU iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[2].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3318
			
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3319
	param.iPosInText = 60;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3320
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3321
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3322
	TEST(r && param.iPosInText == 64 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3323
		   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3324
		   && param.iOutput[0].iCode == 0x800007c2 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3325
		   && param.iOutput[1].iCode == 0x8000080b);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3326
	INFO_PRINTF6(_L("Results are iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x "), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3327
			
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3328
	param.iPosInText = 66;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3329
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3330
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3331
	TEST(r && param.iPosInText == 75 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3332
		   && param.iOutputGlyphs == 5
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3333
		   && param.iOutput[0].iCode == 0x800007c2 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3334
		   && param.iOutput[1].iCode == 0x8000080b
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3335
		   && param.iOutput[2].iCode == 0x800008db
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3336
		   && param.iOutput[3].iCode == 0x800008db
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3337
		   && param.iOutput[4].iCode == 0x800007da);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3338
	INFO_PRINTF7(_L("Results are iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x iOutput[2].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode, param.iOutput[2].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3339
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3340
	// DEF103276: Kannada rendering: IcuLayoutEngine does not recongnise 0X0C8E as a vowel
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3341
	param.iPosInText = 77;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3342
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3343
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3344
	TEST(r && param.iPosInText == 79 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3345
		   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3346
		   && param.iOutput[0].iCode == 0x800007A2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3347
		   && param.iOutput[1].iCode == 0x80000798);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3348
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3349
	INFO_PRINTF5(_L("DEF103276 Vowel E + Anusvara: iPosInText=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x"), param.iPosInText, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3350
	//End of DEF103276: Kannada rendering: IcuLayoutEngine does not recongnise 0X0C8E as a vowel
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3351
			
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3352
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3353
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3354
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3355
@SYMTestCaseID GRAPHICS-SYSLIB-GDI-CIT-3360
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3356
@SYMTestCaseDesc Automated GDI testing for Marathi
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3357
@SYMTestPriority High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3358
@SYMTestActions  Attempt to compose various valid and invalid Marathi glyph clusters.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3359
@SYMTestExpectedResults The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3360
@SYMPREQ 19: Marathi for Ogmha
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3361
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3362
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3363
void CTGlyphSelection::TestMarathiChars(CFbsFont* aFont)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3364
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3365
	INFO_PRINTF1(_L("Test Marathi Glyphs"));	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3366
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3367
	TBool r;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3368
	TBuf<47> testText(0);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3369
	CFont::TPositionParam param;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3370
	param.iDirection = CFont::EHorizontal;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3371
	param.iFlags = CFont::TPositionParam::EFLogicalOrder;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3372
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3373
	testText.SetLength(47);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3374
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3375
	//Testdata
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3376
	testText[0] = 0x0905; 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3377
	testText[1] = 0x0945;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3378
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3379
	testText[2] = 0x0931;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3380
	testText[3] = 0x094D;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3381
	testText[4] = 0x0915;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3382
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3383
	testText[5] = 0x0930;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3384
	testText[6] = 0x094D;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3385
	testText[7] = 0x200D;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3386
	testText[8] = 0x0915;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3387
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3388
	testText[9] = 0x0905;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3389
	testText[10] = 0x200D;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3390
	testText[11] = 0x0945;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3391
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3392
	testText[12] = 0x0909;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3393
	testText[13] = 0x0945;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3394
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3395
	testText[14] = 0x0915;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3396
	testText[15] = 0x200D;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3397
	testText[16] = 0x0945;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3398
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3399
	// DEF102132: Marathi - Certain sequence of characters does not work correctly
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3400
	testText[17] = 0x0905;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3401
	testText[18] = 0x0945;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3402
	testText[19] = 0x0901;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3403
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3404
	testText[20] = 0x0905;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3405
	testText[21] = 0x200D;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3406
	testText[22] = 0x0945;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3407
	testText[23] = 0x0901;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3408
	// End of DEF102132: Marathi - Certain sequence of characters does not work correctly
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3409
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3410
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3411
	// DEF102858: Marathi - State table does not allow explicit half forms followed by modifiers
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3412
	testText[24] = 0x0020;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3413
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3414
	testText[25] = 0x0930;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3415
	testText[26] = 0x094D;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3416
	testText[27] = 0x200D;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3417
	testText[28] = 0x0901;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3418
	// End of DEF102858: Marathi - State table does not allow explicit half forms followed by modifiers
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3419
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3420
	// INC104705  Marathi input: Incorrect movement of cursor with eyelash ra forming ligature. 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3421
	testText[29] = 0x0020;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3422
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3423
	testText[30] = 0x0930; 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3424
	testText[31] = 0x094D;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3425
	testText[32] = 0x200D;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3426
	testText[33] = 0x0930; 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3427
	testText[34] = 0x094D;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3428
	testText[35] = 0x200D;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3429
	testText[36] = 0x0930; 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3430
	testText[37] = 0x094D;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3431
	testText[38] = 0x200D;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3432
	testText[39] = 0x0930; 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3433
	testText[40] = 0x094D;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3434
	testText[41] = 0x200D;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3435
	testText[42] = 0x0930; 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3436
	testText[43] = 0x094D;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3437
	testText[44] = 0x200D;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3438
	// End of INC104705  Marathi input: Incorrect movement of cursor with eyelash ra forming ligature. 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3439
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3440
	// INC116507: Halant get attached with an independent vowel.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3441
	testText[45] = 0x0905;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3442
	testText[46] = 0x094D;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3443
	// End of INC116507: Halant get attached with an independent vowel.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3444
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3445
	//To Do
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3446
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3447
	param.iText.Set(testText); 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3448
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3449
	// Test CANDRA A: Independent Vowel A + CANDRA E
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3450
	param.iPosInText = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3451
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3452
	RShapeInfo shapeInfo;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3453
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3454
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3455
	TEST(r && param.iPosInText == 2 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3456
		   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3457
		   && param.iOutput[0].iCode == 0x80000528 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3458
		   && param.iOutput[1].iCode == 0x80000566);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3459
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3460
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3461
	TEST(r && param.iPen.iX == 12);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3462
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3463
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3464
	INFO_PRINTF6(_L("The result of shaping CANDRA A is %d %d %d 0x%x 0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3465
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3466
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3467
	// Test Eyelash RA post Unicode 3.0: RRA + VIRAMA + CONSONANT
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3468
	param.iPosInText = 2 ;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3469
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3470
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3471
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3472
	TEST(r && param.iPosInText == 5 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3473
		   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3474
		   && param.iOutput[0].iCode == 0x800005d3
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3475
		   && param.iOutput[1].iCode == 0x80000538);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3476
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3477
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3478
	TEST(r && param.iPen.iX == 18);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3479
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3480
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3481
	INFO_PRINTF6(_L("The result of shaping post Unicode 3.0 Eyelash RA is %d %d %d 0x%x 0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3482
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3483
	// Test Eyelash RA pre Unicode 3.0: RA + VIRAMA + ZWJ + CONSONANT
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3484
	param.iPosInText = 5;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3485
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3486
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3487
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3488
	TEST(r && param.iPosInText == 9 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3489
		   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3490
		   && param.iOutput[0].iCode == 0x800005d3
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3491
		   && param.iOutput[1].iCode == 0x80000538);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3492
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3493
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3494
	TEST(r && param.iPen.iX == 18);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3495
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3496
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3497
	INFO_PRINTF6(_L("The result of shaping pre Unicode 3.0 Eyelash RA is %d %d %d 0x%x 0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3498
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3499
	// Test second form of CANDRA A: Independent Vowel A + ZWJ + CANDRA E
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3500
	param.iPosInText = 9;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3501
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3502
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3503
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3504
	TEST(r && param.iPosInText == 12 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3505
		   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3506
		   && param.iOutput[0].iCode == 0x80000528
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3507
		   && param.iOutput[1].iCode == 0x80000566 );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3508
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3509
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3510
	TEST(r && param.iPen.iX == 12);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3511
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3512
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3513
	INFO_PRINTF6(_L("The result of shaping second form of CANDRA A is %d %d %d 0x%x 0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3514
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3515
	// Test that CANDRA E does not join with any other independent vowel
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3516
	param.iPosInText = 12;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3517
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3518
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3519
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3520
	TEST(r && param.iPosInText == 13 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3521
		   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3522
		   && param.iOutput[0].iCode == 0x8000052c);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3523
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3524
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3525
	TEST(r && param.iPen.iX == 9);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3526
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3527
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3528
	INFO_PRINTF5(_L("The result of shaping any other Independent Vowel + CANDRA E is %d %d %d 0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3529
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3530
	// Test that the second form of CANDRA A (i.e. using ZWJ) doesn't work for CONSONANTS (illegal)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3531
	param.iPosInText = 14;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3532
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3533
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3534
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3535
	TEST(r && param.iPosInText == 15 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3536
		   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3537
		   && param.iOutput[0].iCode == 0x80000538);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3538
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3539
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3540
	TEST(r && param.iPen.iX == 11);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3541
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3542
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3543
	INFO_PRINTF5(_L("The result of shaping CONSONANT + ZWJ + CANDRA E is %d %d %d 0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3544
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3545
	// DEF102132: Marathi - Certain sequence of characters does not work correctly
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3546
	param.iPosInText = 17;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3547
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3548
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3549
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3550
	TEST(r && param.iPosInText == 20 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3551
		   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3552
		   && param.iOutput[0].iCode == 0x80000528
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3553
		   && param.iOutput[1].iCode == 0x8000069d);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3554
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3555
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3556
	INFO_PRINTF5(_L("DEF102132 Independent Vowel A + CANDRA E + Vowel Modifier %d %d 0x%x 0x%x"), param.iPosInText, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3557
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3558
	param.iPosInText = 20;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3559
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3560
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3561
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3562
	TEST(r && param.iPosInText == 23 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3563
		   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3564
		   && param.iOutput[0].iCode == 0x80000528
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3565
		   && param.iOutput[1].iCode == 0x8000069d);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3566
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3567
	INFO_PRINTF5(_L("DEF102132 Independent Vowel A + ZWJ + CANDRA E + Vowel Modifier %d %d 0x%x 0x%x"), param.iPosInText, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3568
  	// End of DEF102132: Marathi - Certain sequence of characters does not work correctly
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3569
  	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3570
	// DEF102858: Marathi - State table does not allow explicit half forms followed by modifiers
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3571
	param.iPosInText = 25;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3572
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3573
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3574
	TEST(r && param.iPosInText == 29 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3575
		   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3576
		   && param.iOutput[0].iCode == 0x800005D3
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3577
		   && param.iOutput[1].iCode == 0x80000524);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3578
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3579
	INFO_PRINTF5(_L("DEF102858 Ra + Virama + ZWJ + Modifier %d %d 0x%x 0x%x"), param.iPosInText, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3580
	// End of DEF102858: Marathi - State table does not allow explicit half forms followed by modifiers
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3581
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3582
	// INC104705  Marathi input: Incorrect movement of cursor with eyelash ra forming ligature. 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3583
	param.iPosInText = 30;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3584
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3585
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3586
	TEST(r && param.iPosInText == 42 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3587
		   && param.iOutputGlyphs == 5
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3588
		   && param.iOutput[0].iCode == 0x800005D3
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3589
		   && param.iOutput[1].iCode == 0x800005D3
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3590
		   && param.iOutput[2].iCode == 0x800005B8
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3591
		   && param.iOutput[3].iCode == 0x80000553
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3592
		   && param.iOutput[4].iCode == 0x8000056E);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3593
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3594
	TEST(param.iPen.iX == 20);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3595
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3596
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3597
	INFO_PRINTF7(_L("INC104705 Ra + Virama + ZWJ + Ra + Virama + ZWJ + Ra + Virama + ZWJ + Ra + Virama + ZWJ + Ra + Virama + ZWJ  %d %d 0x%x 0x%x 0x%x 0x%x"), param.iPosInText, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode, param.iOutput[2].iCode, param.iOutput[3].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3598
	// End of INC104705  Marathi input: Incorrect movement of cursor with eyelash ra forming ligature. 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3599
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3600
	// INC116507: Halant get attached with an independent vowel.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3601
	param.iPosInText = 45;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3602
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3603
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3604
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3605
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3606
	TEST(r && param.iPosInText == 47 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3607
		   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3608
		   && param.iOutput[0].iCode == 0x8000058F
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3609
		   && param.iOutput[1].iCode == 0x8000056E);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3610
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3611
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3612
	TEST(r && param.iPen.iX == 21);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3613
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3614
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3615
	INFO_PRINTF6(_L("INC116507: Independent Vowel A + Halant  %d %d %d 0x%x 0x%x"), param.iPosInText, param.iOutputGlyphs, param.iPen.iX, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3616
	// End of INC116507: Halant get attached with an independent vowel.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3617
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3618
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3619
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3620
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3621
@SYMTestCaseID GRAPHICS-SYSLIB-GDI-CIT-3417
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3622
@SYMTestCaseDesc Automated GDI testing for Gujarati
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3623
@SYMTestPriority High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3624
@SYMTestActions  Attempt to compose various valid and invalid gujarati glyph clusters.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3625
@SYMTestExpectedResults The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3626
@SYMPREQ 19: Gujarati for Ogmha
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3627
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3628
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3629
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3630
void CTGlyphSelection::TestGujaratiChars(CFbsFont* aFont)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3631
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3632
	INFO_PRINTF1(_L("Test Gujarati Glyphs"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3633
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3634
	// Do the testing
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3635
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3636
	TBool r;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3637
	TBuf<162> testText(0);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3638
	CFont::TPositionParam param;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3639
	param.iDirection = CFont::EHorizontal;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3640
	param.iFlags = CFont::TPositionParam::EFLogicalOrder;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3641
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3642
	testText.SetLength(162);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3643
	//Testdata for gujarati Langauage
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3644
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3645
	testText[0] = 0x0AAC;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3646
	testText[1] = 0x0ACD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3647
	testText[2] = 0x200D;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3648
	testText[3] = 0x0020;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3649
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3650
	testText[4] = 0x0A96;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3651
	testText[5] = 0x0ACD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3652
	testText[6] = 0x0A97;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3653
	testText[7] = 0x0ACD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3654
	testText[8] = 0x0A98;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3655
	testText[9] = 0x0ACD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3656
	testText[10] = 0x0A9A;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3657
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3658
	testText[11] = 0x0A95;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3659
	testText[12] = 0x0ACD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3660
	testText[13] = 0x0A9C;	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3661
	testText[14] = 0x200D;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3662
	testText[15] = 0x0020;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3663
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3664
	testText[16] = 0x0A99;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3665
	testText[17] = 0x0ACD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3666
	testText[18] = 0x0A9B;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3667
	testText[19] = 0x0ACD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3668
	testText[20] = 0x0A9F;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3669
	testText[21] = 0x0ACD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3670
	testText[22] = 0x0AA0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3671
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3672
	//Requirement (GUJ003)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3673
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3674
	testText[23] = 0x0A95;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3675
	testText[24] = 0x0ACD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3676
	testText[25] = 0x0AB7;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3677
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3678
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3679
	testText[26] = 0x0A95;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3680
	testText[27] = 0x0ACD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3681
	testText[28] = 0x0AB7;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3682
	testText[29] = 0x0ACD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3683
	testText[30] = 0x0AA4;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3684
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3685
	testText[31] = 0x0A9C;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3686
	testText[32] = 0x0ACD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3687
	testText[33] = 0x0AB7;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3688
	testText[34] = 0x0ACD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3689
	testText[35] = 0x0AA4;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3690
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3691
	testText[36] = 0x0A9C;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3692
	testText[37] = 0x0ACD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3693
	testText[38] = 0x0A9E;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3694
	testText[39] = 0x0ACD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3695
	testText[40] = 0x0AA4;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3696
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3697
	//Requirement (GUJ 005)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3698
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3699
	testText[41] = 0x0AB0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3700
	testText[42] = 0x0ACD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3701
	testText[43] = 0x0A95;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3702
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3703
	testText[44] = 0x0AB0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3704
	testText[45] = 0x0ACD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3705
	testText[46] = 0x0A95;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3706
	testText[47] = 0x0AC9;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3707
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3708
	testText[48] = 0x0AB0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3709
	testText[49] = 0x0ACD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3710
	testText[50] = 0x0A95;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3711
	testText[51] = 0x0A82;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3712
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3713
	testText[52] = 0x0AB0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3714
	testText[53] = 0x0ACD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3715
	testText[54] = 0x0A95;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3716
	testText[55] = 0x0AC9;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3717
	testText[56] = 0x0A82;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3718
	testText[57] = 0x0020;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3719
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3720
	//Requirement (GUJ 006)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3721
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3722
	testText[58] = 0x0A97;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3723
	testText[59] = 0x0ACD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3724
	testText[60] = 0x0AB0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3725
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3726
	testText[61] = 0x0A9A;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3727
	testText[62] = 0x0ACD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3728
	testText[63] = 0x0AB0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3729
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3730
	testText[64] = 0x0A97;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3731
	testText[65] = 0x0ACD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3732
	testText[66] = 0x0AB0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3733
	testText[67] = 0x0ACD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3734
	testText[68] = 0x0AA4;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3735
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3736
	testText[69] = 0x0A9A;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3737
	testText[70] = 0x0ACD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3738
	testText[71] = 0x0AB0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3739
	testText[72] = 0x0ACD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3740
	testText[73] = 0x0AA4;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3741
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3742
	//Requirement (GUJ 007)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3743
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3744
	testText[74] = 0x0A95;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3745
	testText[75] = 0x0ACD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3746
	testText[76] = 0x0AB0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3747
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3748
	testText[77] = 0x0A9C;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3749
	testText[78] = 0x0ACD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3750
	testText[79] = 0x0AB0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3751
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3752
	testText[80] = 0x0A95;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3753
	testText[81] = 0x0ACD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3754
	testText[82] = 0x0AB0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3755
	testText[83] = 0x0ACD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3756
	testText[84] = 0x0AA4;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3757
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3758
	testText[85] = 0x0A9C;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3759
	testText[86] = 0x0ACD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3760
	testText[87] = 0x0AB0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3761
	testText[88] = 0x0ACD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3762
	testText[89] = 0x0AA4;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3763
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3764
	//Requirement (GUJ 008)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3765
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3766
	testText[90] = 0x0A9B;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3767
	testText[91] = 0x0ACD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3768
	testText[92] = 0x0AB0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3769
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3770
	testText[93] = 0x0AAF;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3771
	testText[94] = 0x0ACD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3772
	testText[95] = 0x0AB0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3773
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3774
	testText[96] = 0x0A9B;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3775
	testText[97] = 0x0ACD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3776
	testText[98] = 0x0AB0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3777
	testText[99] = 0x0ACD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3778
	testText[100]= 0x0AA4;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3779
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3780
	testText[101] = 0x0AAF;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3781
	testText[102] = 0x0ACD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3782
	testText[103] = 0x0AB0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3783
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3784
	testText[104] = 0x0AAF;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3785
	testText[105] = 0x0ACD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3786
	testText[106] = 0x0AB0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3787
	testText[107] = 0x0ACD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3788
	testText[108] = 0x0AA4;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3789
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3790
	testText[109] = 0x0AB0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3791
	testText[110] = 0x0ACD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3792
	testText[111] = 0x0AB0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3793
	testText[112] = 0x0ACD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3794
	testText[113] = 0x0AB0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3795
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3796
	//Requirement (GUJ 009)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3797
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3798
	testText[114] = 0x0A9F;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3799
	testText[115] = 0x0ACD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3800
	testText[116] = 0x0AAF;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3801
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3802
	testText[117] = 0x0A9B;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3803
	testText[118] = 0x0ACD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3804
	testText[119] = 0x0AAF;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3805
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3806
	testText[120] = 0x0AA2;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3807
	testText[121] = 0x0ACD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3808
	testText[122] = 0x0AAF;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3809
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3810
	testText[123] = 0x0A97;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3811
	testText[124] = 0x0ACD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3812
	testText[125] = 0x0AAF;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3813
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3814
	//Requirement (GUJ 010)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3815
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3816
	testText[126] = 0x0A9F;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3817
	testText[127] = 0x0ACD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3818
	testText[128] = 0x0AA0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3819
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3820
	testText[129] = 0x0AA6;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3821
	testText[130] = 0x0ACD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3822
	testText[131] = 0x0AB5;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3823
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3824
	testText[132] = 0x0A9F;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3825
	testText[133] = 0x0ACD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3826
	testText[134] = 0x0AA0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3827
	testText[135] = 0x0ACD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3828
	testText[136] = 0x0AA4;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3829
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3830
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3831
	testText[137] = 0x0AA6;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3832
	testText[138] = 0x0ACD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3833
	testText[139] = 0x0AB5;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3834
	testText[140] = 0x0ACD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3835
	testText[141] = 0x0AA4;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3836
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3837
	//Requirement (GUJ 011)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3838
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3839
	testText[142] = 0x0AB0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3840
	testText[143] = 0x0AC2;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3841
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3842
	testText[144] = 0x0AB9;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3843
	testText[145] = 0x0AC3;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3844
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3845
	testText[146] = 0x0AA6;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3846
	testText[147] = 0x0AC3;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3847
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3848
	testText[148] = 0x0A9C;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3849
	testText[149] = 0x0AC0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3850
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3851
	//Subscript ligutares
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3852
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3853
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3854
	testText[150] = 0x0A95;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3855
	testText[151] = 0x0A81;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3856
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3857
	testText[152] = 0x0A95;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3858
	testText[153] = 0x0ABE;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3859
	testText[154] = 0x0A81;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3860
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3861
	testText[155] = 0x0A95;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3862
	testText[156] = 0x0AC1;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3863
	testText[157] = 0x0A81;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3864
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3865
	testText[158] = 0x0A8D;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3866
	testText[159] = 0x0A81;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3867
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3868
	testText[160] = 0x0A88;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3869
	testText[161] = 0x0A81;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3870
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3871
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3872
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3873
	param.iText.Set(testText); 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3874
				
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3875
	param.iPosInText = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3876
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3877
	RShapeInfo shapeInfo;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3878
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3879
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3880
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3881
	TEST(r && param.iPosInText ==  3
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3882
		   && param.iOutputGlyphs == 1  
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3883
		   && param.iOutput[0].iCode == 0x800009ec);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3884
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3885
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3886
	TEST(r && param.iPen.iX == 9);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3887
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3888
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3889
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3890
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3891
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3892
	param.iPosInText = 	4;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3893
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3894
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3895
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3896
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3897
	TEST(r && param.iPosInText ==  11
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3898
		   && param.iOutputGlyphs ==  4
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3899
		   && param.iOutput[0].iCode == 0x800009d7
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3900
		   && param.iOutput[1].iCode == 0x800009d8
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3901
		   && param.iOutput[2].iCode == 0x800009d9
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3902
		   && param.iOutput[3].iCode == 0x80000967 );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3903
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3904
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3905
	TEST(r && param.iPen.iX == 34);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3906
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3907
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3908
	INFO_PRINTF7(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x iOutput[2].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode, param.iOutput[2].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3909
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3910
	param.iPosInText = 11;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3911
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3912
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3913
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3914
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3915
	TEST(r && param.iPosInText ==	14  
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3916
		   && param.iOutputGlyphs == 2  
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3917
		   && param.iOutput[0].iCode == 0x800009d6
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3918
		   && param.iOutput[1].iCode == 0x80000969   );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3919
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3920
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3921
	TEST(r && param.iPen.iX == 22);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3922
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3923
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3924
	INFO_PRINTF6(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3925
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3926
	param.iPosInText = 16;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3927
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3928
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3929
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3930
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3931
	TEST(r && param.iPosInText ==  23
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3932
		   && param.iOutputGlyphs == 3 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3933
		   && param.iOutput[0].iCode == 0x800009da
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3934
		   && param.iOutput[1].iCode == 0x800009dc
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3935
		   && param.iOutput[2].iCode == 0x80000aad);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3936
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3937
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3938
	TEST(r && param.iPen.iX == 30);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3939
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3940
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3941
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3942
	INFO_PRINTF7(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x iOutput[2].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode, param.iOutput[2].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3943
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3944
	param.iPosInText = 	23;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3945
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3946
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3947
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3948
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3949
	TEST(r && param.iPosInText == 26
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3950
		   && param.iOutputGlyphs == 1  
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3951
		   && param.iOutput[0].iCode == 0x800009d2 );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3952
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3953
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3954
	TEST(r && param.iPen.iX == 12);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3955
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3956
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3957
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3958
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3959
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3960
	param.iPosInText = 26;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3961
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3962
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3963
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3964
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3965
	TEST(r && param.iPosInText == 31
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3966
		   && param.iOutputGlyphs == 2  
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3967
		   && param.iOutput[0].iCode == 0x800009f8
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3968
		   && param.iOutput[1].iCode == 0x80000971);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3969
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3970
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3971
	TEST(r && param.iPen.iX == 18);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3972
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3973
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3974
	INFO_PRINTF6(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3975
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3976
	param.iPosInText = 	31;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3977
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3978
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3979
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3980
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3981
	TEST(r && param.iPosInText ==  36
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3982
		   && param.iOutputGlyphs == 3
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3983
		   && param.iOutput[0].iCode == 0x800009dd
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3984
		   && param.iOutput[1].iCode == 0x800009f5
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3985
		   && param.iOutput[2].iCode == 0x80000971);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3986
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3987
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3988
	TEST(r && param.iPen.iX == 30);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3989
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3990
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3991
	INFO_PRINTF7(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x iOutput[2].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode, param.iOutput[2].iCode);	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3992
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3993
	param.iPosInText = 36;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3994
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3995
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3996
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3997
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3998
	TEST(r && param.iPosInText == 41
662fa7de7023 201024_05
hgs
parents:
diff changeset
  3999
		   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4000
		   && param.iOutput[0].iCode == 0x800009f9
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4001
		   && param.iOutput[1].iCode == 0x80000971);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4002
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4003
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4004
	TEST(r && param.iPen.iX == 17);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4005
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4006
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4007
	INFO_PRINTF6(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4008
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4009
	param.iPosInText = 	41;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4010
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4011
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4012
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4013
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4014
	TEST(r && param.iPosInText == 44
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4015
		   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4016
		   && param.iOutput[0].iCode ==  0x80000962
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4017
		   && param.iOutput[1].iCode == 0x800009d4);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4018
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4019
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4020
	TEST(r && param.iPen.iX == 8);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4021
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4022
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4023
	INFO_PRINTF6(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4024
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4025
	param.iPosInText = 44;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4026
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4027
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4028
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4029
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4030
	TEST(r && param.iPosInText == 48 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4031
		   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4032
		   && param.iOutput[0].iCode == 0x80000962
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4033
		   && param.iOutput[1].iCode == 0x80000ae1 );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4034
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4035
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4036
	TEST(r && param.iPen.iX == 13);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4037
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4038
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4039
	INFO_PRINTF6(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4040
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4041
	param.iPosInText = 48;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4042
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4043
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4044
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4045
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4046
	TEST(r && param.iPosInText == 52
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4047
		   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4048
		   && param.iOutput[0].iCode == 0x80000962
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4049
		   && param.iOutput[1].iCode == 0x80000ae9);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4050
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4051
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4052
	TEST(r && param.iPen.iX == 8);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4053
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4054
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4055
	INFO_PRINTF6(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4056
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4057
	param.iPosInText = 52;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4058
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4059
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4060
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4061
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4062
	TEST(r && param.iPosInText == 57  
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4063
		   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4064
		   && param.iOutput[0].iCode == 0x80000962
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4065
		   && param.iOutput[1].iCode == 0x80000ae2);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4066
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4067
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4068
	TEST(r && param.iPen.iX == 13);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4069
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4070
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4071
	INFO_PRINTF6(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4072
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4073
	param.iPosInText = 58;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4074
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4075
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4076
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4077
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4078
	TEST(r && param.iPosInText ==  61
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4079
		   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4080
		   && param.iOutput[0].iCode ==	0x80000a1e );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4081
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4082
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4083
	TEST(r && param.iPen.iX == 11);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4084
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4085
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4086
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4087
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4088
	param.iPosInText = 	61;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4089
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4090
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4091
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4092
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4093
	TEST(r && param.iPosInText ==  64
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4094
		   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4095
		   && param.iOutput[0].iCode == 0x80000a21 );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4096
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4097
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4098
	TEST(r && param.iPen.iX == 10);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4099
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4100
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4101
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4102
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4103
	param.iPosInText = 64;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4104
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4105
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4106
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4107
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4108
	TEST(r && param.iPosInText == 69 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4109
		   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4110
		   && param.iOutput[0].iCode == 0x80000a64
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4111
		   && param.iOutput[1].iCode == 0x80000971 );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4112
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4113
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4114
	TEST(r && param.iPen.iX == 17);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4115
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4116
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4117
	INFO_PRINTF6(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4118
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4119
	param.iPosInText = 	69;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4120
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4121
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4122
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4123
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4124
	TEST(r && param.iPosInText == 74
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4125
		   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4126
		   && param.iOutput[0].iCode == 0x80000a67
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4127
		   && param.iOutput[1].iCode == 0x80000971);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4128
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4129
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4130
	TEST(r && param.iPen.iX == 16);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4131
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4132
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4133
	INFO_PRINTF6(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4134
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4135
	param.iPosInText = 	74;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4136
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4137
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4138
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4139
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4140
	TEST(r && param.iPosInText ==  77
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4141
		   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4142
		   && param.iOutput[0].iCode == 0x80000a1c);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4143
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4144
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4145
	TEST(r && param.iPen.iX == 8);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4146
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4147
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4148
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4149
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4150
	param.iPosInText = 	77;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4151
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4152
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4153
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4154
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4155
	TEST(r && param.iPosInText ==  80
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4156
		   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4157
		   && param.iOutput[0].iCode == 0x80000a23);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4158
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4159
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4160
	TEST(r && param.iPen.iX == 15);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4161
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4162
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4163
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4164
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4165
	param.iPosInText = 80;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4166
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4167
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4168
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4169
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4170
	TEST(r && param.iPosInText == 85
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4171
		   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4172
		   && param.iOutput[0].iCode == 0x80000a62
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4173
		   && param.iOutput[1].iCode == 0x80000971);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4174
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4175
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4176
	TEST(r && param.iPen.iX == 17);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4177
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4178
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4179
	INFO_PRINTF6(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4180
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4181
	param.iPosInText = 85;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4182
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4183
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4184
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4185
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4186
	TEST(r && param.iPosInText ==  90
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4187
		   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4188
		   && param.iOutput[0].iCode == 0x80000a69
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4189
		   && param.iOutput[1].iCode == 0x80000971);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4190
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4191
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4192
	TEST(r && param.iPen.iX == 24);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4193
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4194
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4195
	INFO_PRINTF6(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4196
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4197
	param.iPosInText =90;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4198
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4199
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4200
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4201
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4202
	TEST(r && param.iPosInText == 93
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4203
		   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4204
		   && param.iOutput[0].iCode == 0x80000a22 );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4205
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4206
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4207
	TEST(r && param.iPen.iX == 12);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4208
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4209
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4210
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4211
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4212
	param.iPosInText = 93;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4213
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4214
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4215
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4216
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4217
	TEST(r && param.iPosInText == 96
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4218
		   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4219
		   && param.iOutput[0].iCode == 0x80000a35 );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4220
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4221
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4222
	TEST(r && param.iPen.iX == 10);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4223
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4224
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4225
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4226
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4227
	param.iPosInText = 96;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4228
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4229
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4230
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4231
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4232
	TEST(r && param.iPosInText ==  101
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4233
		   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4234
		   && param.iOutput[0].iCode == 0x80000a68 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4235
		   && param.iOutput[1].iCode == 0x80000971);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4236
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4237
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4238
	TEST(r && param.iPen.iX == 21);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4239
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4240
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4241
	INFO_PRINTF6(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4242
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4243
	param.iPosInText = 101;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4244
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4245
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4246
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4247
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4248
	TEST(r && param.iPosInText == 104
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4249
		   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4250
		   && param.iOutput[0].iCode == 0x80000a35 );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4251
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4252
	TEST(r && param.iPen.iX == 10);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4253
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4254
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4255
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4256
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4257
	param.iPosInText = 104;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4258
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4259
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4260
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4261
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4262
	TEST(r && param.iPosInText == 109
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4263
		   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4264
		   && param.iOutput[0].iCode == 0x80000a7b 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4265
		   && param.iOutput[1].iCode == 0x80000971 );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4266
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4267
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4268
	TEST(r && param.iPen.iX == 16);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4269
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4270
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4271
	INFO_PRINTF6(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4272
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4273
	param.iPosInText = 109;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4274
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4275
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4276
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4277
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4278
	TEST(r && param.iPosInText ==  114
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4279
		   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4280
		   && param.iOutput[0].iCode == 0x80000a36
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4281
		   && param.iOutput[1].iCode == 0x800009d4 );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4282
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4283
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4284
	TEST(r && param.iPen.iX == 7);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4285
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4286
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4287
	INFO_PRINTF6(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4288
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4289
	param.iPosInText = 114;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4290
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4291
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4292
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4293
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4294
	TEST(r && param.iPosInText ==  117
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4295
		   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4296
		   && param.iOutput[0].iCode == 0x80000aae);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4297
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4298
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4299
	TEST(r && param.iPen.iX == 17);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4300
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4301
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4302
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4303
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4304
	param.iPosInText = 117;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4305
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4306
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4307
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4308
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4309
	TEST(r && param.iPosInText ==  120
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4310
		   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4311
		   && param.iOutput[0].iCode == 0x80000aab );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4312
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4313
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4314
	TEST(r && param.iPen.iX == 21);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4315
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4316
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4317
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4318
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4319
	param.iPosInText = 120;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4320
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4321
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4322
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4323
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4324
	TEST(r && param.iPosInText ==  123
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4325
		   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4326
		   && param.iOutput[0].iCode == 0x80000ab5 );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4327
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4328
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4329
	TEST(r && param.iPen.iX == 18);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4330
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4331
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4332
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4333
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4334
	param.iPosInText = 123;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4335
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4336
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4337
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4338
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4339
	TEST(r && param.iPosInText ==  126
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4340
		   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4341
		   && param.iOutput[0].iCode == 0x800009d8
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4342
		   && param.iOutput[1].iCode == 0x8000097b);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4343
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4344
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4345
	TEST(r && param.iPen.iX == 17);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4346
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4347
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4348
	INFO_PRINTF6(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4349
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4350
	param.iPosInText = 126;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4351
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4352
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4353
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4354
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4355
	TEST(r && param.iPosInText ==  129
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4356
		   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4357
		   && param.iOutput[0].iCode == 0x80000aad);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4358
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4359
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4360
	TEST(r && param.iPen.iX == 9);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4361
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4362
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4363
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4364
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4365
	param.iPosInText = 129;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4366
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4367
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4368
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4369
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4370
	TEST(r && param.iPosInText ==  132
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4371
		   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4372
		   && param.iOutput[0].iCode == 0x80000ac0 );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4373
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4374
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4375
	TEST(r && param.iPen.iX == 10);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4376
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4377
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4378
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4379
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4380
	param.iPosInText =132;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4381
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4382
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4383
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4384
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4385
	TEST(r && param.iPosInText ==  137
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4386
		   && param.iOutputGlyphs == 3
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4387
		   && param.iOutput[0].iCode == 0x800009e0
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4388
		   && param.iOutput[1].iCode == 0x800009e1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4389
		   && param.iOutput[2].iCode == 0x80000971);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4390
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4391
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4392
	TEST(r && param.iPen.iX == 26);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4393
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4394
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4395
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4396
	INFO_PRINTF7(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x iOutput[2].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode, param.iOutput[2].iCode);	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4397
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4398
	param.iPosInText = 137;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4399
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4400
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4401
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4402
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4403
	TEST(r && param.iPosInText == 142 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4404
		   && param.iOutputGlyphs == 3
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4405
		   && param.iOutput[0].iCode == 0x800009e7 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4406
		   && param.iOutput[1].iCode == 0x800009f3
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4407
		   && param.iOutput[2].iCode == 0x80000971);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4408
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4409
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4410
	TEST(r && param.iPen.iX == 23);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4411
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4412
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4413
	INFO_PRINTF7(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x iOutput[2].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode, param.iOutput[2].iCode);	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4414
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4415
	param.iPosInText = 142;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4416
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4417
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4418
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4419
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4420
	TEST(r && param.iPosInText == 144
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4421
		   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4422
		   && param.iOutput[0].iCode == 0x80000b04);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4423
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4424
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4425
	TEST(r && param.iPen.iX == 7);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4426
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4427
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4428
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4429
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4430
	param.iPosInText = 144;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4431
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4432
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4433
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4434
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4435
	TEST(r && param.iPosInText == 146
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4436
		   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4437
		   && param.iOutput[0].iCode == 0x80000b05);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4438
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4439
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4440
	TEST(r && param.iPen.iX == 9);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4441
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4442
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4443
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4444
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4445
	param.iPosInText = 146;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4446
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4447
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4448
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4449
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4450
	TEST(r && param.iPosInText == 148
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4451
		   && param.iOutputGlyphs ==  1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4452
		   && param.iOutput[0].iCode == 0x80000b02);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4453
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4454
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4455
	TEST(r && param.iPen.iX == 7);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4456
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4457
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4458
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4459
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4460
	param.iPosInText = 148;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4461
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4462
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4463
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4464
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4465
	TEST(r && param.iPosInText == 150
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4466
		   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4467
		   && param.iOutput[0].iCode == 0x80000aff);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4468
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4469
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4470
	TEST(r && param.iPen.iX == 16);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4471
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4472
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4473
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4474
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4475
	param.iPosInText = 150;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4476
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4477
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4478
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4479
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4480
	TEST(r && param.iPosInText == 152 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4481
		   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4482
		   && param.iOutput[0].iCode == 0x80000962
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4483
		   && param.iOutput[1].iCode ==0x80000951);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4484
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4485
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4486
	TEST(r && param.iPen.iX == 8);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4487
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4488
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4489
	INFO_PRINTF6(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4490
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4491
	param.iPosInText = 152;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4492
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4493
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4494
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4495
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4496
	TEST(r && param.iPosInText == 155
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4497
		   && param.iOutputGlyphs == 3
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4498
		   && param.iOutput[0].iCode == 0x80000962
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4499
		   && param.iOutput[1].iCode == 0x80000986
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4500
		   && param.iOutput[2].iCode == 0x80000951);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4501
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4502
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4503
	TEST(r && param.iPen.iX == 12);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4504
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4505
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4506
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4507
	INFO_PRINTF7(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x iOutput[2].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode, param.iOutput[2].iCode);	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4508
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4509
	param.iPosInText = 155;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4510
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4511
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4512
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4513
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4514
	TEST(r && param.iPosInText ==  158
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4515
		   && param.iOutputGlyphs == 3
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4516
		   && param.iOutput[0].iCode == 0x80000962
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4517
		   && param.iOutput[1].iCode == 0x80000989
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4518
		   && param.iOutput[2].iCode == 0x80000951);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4519
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4520
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4521
	TEST(r && param.iPen.iX == 8);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4522
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4523
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4524
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4525
	INFO_PRINTF7(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x iOutput[2].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode, param.iOutput[2].iCode);	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4526
	param.iPosInText = 158;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4527
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4528
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4529
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4530
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4531
	TEST(r && param.iPosInText ==  160
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4532
		   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4533
		   && param.iOutput[0].iCode == 0x80000aee);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4534
		   
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4535
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4536
	TEST(r && param.iPen.iX == 14);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4537
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4538
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4539
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4540
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4541
	param.iPosInText = 160;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4542
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4543
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4544
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4545
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4546
	TEST(r && param.iPosInText ==  162
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4547
		   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4548
		   && param.iOutput[0].iCode == 0x80000aed);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4549
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4550
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4551
	TEST(r && param.iPen.iX == 10);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4552
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4553
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4554
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4555
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4556
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4557
	 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4558
void CTGlyphSelection::TestBengaliChars(CFbsFont* aFont)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4559
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4560
	INFO_PRINTF1(_L("Test Bengali Glyphs"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4561
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4562
	// Do the testing
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4563
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4564
	TBool r;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4565
	TBuf<115> testText(0);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4566
	CFont::TPositionParam param;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4567
	param.iDirection = CFont::EHorizontal;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4568
	param.iFlags = CFont::TPositionParam::EFLogicalOrder;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4569
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4570
	testText.SetLength(115);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4571
	// Make sure there is no garbage values in the memory we are using.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4572
	for (TInt i = 0; i < testText.Length(); i++)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4573
		testText[i]=0xFFFF;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4574
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4575
	//Testdata for Bengali language
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4576
	((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4002"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4577
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4578
@SYMTestCaseID 				GRAPHICS-SYSLIB-GDI-CIT-4002
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4579
@SYMTestCaseDesc 			Automated GDI testing for Bengali
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4580
@SYMTestPriority 			High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4581
@SYMTestActions  			Attempt to compose various invalid Bengali glyph clusters to test the requirement.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4582
				 			If any part of stored text (e.g. received or downloaded document) is not properly encoded in logical order, the relevant text handling processes must treat that part as an invalid sequence of text and use appropriate fallback mechanisms. Invalid sequences of characters must be rendered as incomplete syllables and rendering engine must be able to handle invalid coding appropriately	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4583
@SYMTestExpectedResults 	Rendering engine will render as incomplete syllables
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4584
@SYMPREQ 					1766 Bengali for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4585
@SYMREQ 					8741 Bengali Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4586
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4587
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4588
	// BEN002: Test invalid sequences
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4589
	testText[0] = 0x09C7;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4590
	testText[1] = 0x0995;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4591
	testText[2] = 0x0995;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4592
	testText[3] = 0x09C1;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4593
	testText[4] = 0x09C1;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4594
	testText[5] = 0x0995;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4595
	testText[6] = 0x09CD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4596
	testText[7] = 0x09C1;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4597
	testText[8] = 0x0995;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4598
	testText[9] = 0x0981;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4599
	testText[10] = 0x09C1;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4600
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4601
	param.iText.Set(testText);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4602
	RShapeInfo shapeInfo;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4603
	param.iPosInText = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4604
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4605
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4606
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4607
	TEST(r && param.iPosInText == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4608
			   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4609
			   && param.iOutput[0].iCode == 0x80000ce5
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4610
			   && param.iOutput[1].iCode == 0x8000058f);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4611
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4612
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4613
	TEST(r && param.iPen.iX == 15);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4614
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4615
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4616
	INFO_PRINTF6(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4617
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4618
	param.iPosInText = 1;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4619
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4620
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4621
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4622
	TEST(r && param.iPosInText == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4623
			   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4624
			   && param.iOutput[0].iCode == 0x80000cbc);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4625
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4626
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4627
	TEST(r && param.iPen.iX == 12);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4628
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4629
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4630
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4631
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4632
	param.iPosInText = 2;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4633
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4634
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4635
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4636
	TEST(r && param.iPosInText == 4
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4637
			   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4638
			   && param.iOutput[0].iCode == 0x80000ebe);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4639
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4640
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4641
	TEST(r && param.iPen.iX == 13);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4642
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4643
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4644
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4645
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4646
	param.iPosInText = 4;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4647
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4648
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4649
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4650
	TEST(r && param.iPosInText == 5
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4651
			   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4652
			   && param.iOutput[0].iCode == 0x8000058f
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4653
			   && param.iOutput[1].iCode == 0x80000ce1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4654
	   );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4655
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4656
	TEST(r && param.iPen.iX == 9);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4657
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4658
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4659
	INFO_PRINTF6(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4660
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4661
	param.iPosInText = 5;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4662
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4663
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4664
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4665
	TEST(r && param.iPosInText == 7
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4666
			   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4667
			   && param.iOutput[0].iCode == 0x80000cbc
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4668
			   && param.iOutput[1].iCode == 0x80000ce9
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4669
			   );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4670
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4671
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4672
	TEST(r && param.iPen.iX == 12);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4673
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4674
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4675
	INFO_PRINTF6(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4676
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4677
	param.iPosInText = 7;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4678
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4679
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4680
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4681
	TEST(r && param.iPosInText == 8
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4682
			   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4683
			   && param.iOutput[0].iCode == 0x8000058f
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4684
			   && param.iOutput[1].iCode == 0x80000ce1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4685
			   );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4686
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4687
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4688
	TEST(r && param.iPen.iX == 9);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4689
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4690
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4691
	INFO_PRINTF6(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4692
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4693
	param.iPosInText = 8;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4694
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4695
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4696
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4697
	TEST(r && param.iPosInText == 10
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4698
			   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4699
			   && param.iOutput[0].iCode == 0x80000cbc
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4700
			   && param.iOutput[1].iCode == 0x80000cad
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4701
			   );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4702
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4703
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4704
	TEST(r && param.iPen.iX == 12);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4705
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4706
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4707
	INFO_PRINTF6(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4708
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4709
	param.iPosInText = 10;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4710
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4711
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4712
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4713
	TEST(r && param.iPosInText == 11
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4714
			   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4715
			   && param.iOutput[0].iCode == 0x8000058f
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4716
			   && param.iOutput[1].iCode == 0x80000ce1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4717
			   );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4718
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4719
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4720
	TEST(r && param.iPen.iX == 9);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4721
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4722
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4723
	INFO_PRINTF6(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4724
	TRAPD(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4725
    	if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4726
    		INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4727
	((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4003"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4728
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4729
@SYMTestCaseID 				GRAPHICS-SYSLIB-GDI-CIT-4003
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4730
@SYMTestCaseDesc 			Automated GDI testing for Bengali
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4731
@SYMTestPriority 			High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4732
@SYMTestActions  
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4733
							Passing both Bengali and Latin scripts simultaneously
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4734
@SYMTestExpectedResults 	The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4735
@SYMPREQ 					1766 Bengali for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4736
@SYMREQ 					8741 Bengali Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4737
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4738
	//BEN003
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4739
	testText[11] = 0x0995;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4740
	testText[12] = 0x0041; // Unicode value for A
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4741
	testText[13] = 0x09E6;	//Bengali digit 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4742
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4743
	param.iPosInText = 11;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4744
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4745
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4746
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4747
	TEST(r && param.iPosInText == 12
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4748
			   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4749
			   && param.iOutput[0].iCode == 0x80000cbc
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4750
			   );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4751
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4752
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4753
	TEST(r && param.iPen.iX == 12);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4754
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4755
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4756
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4757
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4758
	param.iPosInText = 12;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4759
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4760
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4761
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4762
	TEST(r && param.iPosInText == 13	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4763
			   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4764
			   && param.iOutput[0].iCode == 0x41
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4765
	  	);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4766
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4767
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4768
	TEST(r && param.iPen.iX == 10);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4769
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4770
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4771
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x "), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4772
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4773
	param.iPosInText = 13;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4774
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4775
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4776
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4777
	TEST(r && param.iPosInText == 14
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4778
			   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4779
			   && param.iOutput[0].iCode ==0x80000cf3
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4780
			   );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4781
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4782
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4783
	TEST(r && param.iPen.iX == 10);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4784
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4785
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4786
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4787
	TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4788
    	if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4789
    		INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4790
	((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4004"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4791
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4792
@SYMTestCaseID 				GRAPHICS-SYSLIB-GDI-CIT-4004
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4793
@SYMTestCaseDesc 			Automated GDI testing for Bengali
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4794
@SYMTestPriority 			High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4795
@SYMTestActions  			Attempt to compose various valid  Bengali glyph clusters to test the reequirement.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4796
							Text rendering in Bengali must be based on syllables and the text rendering engine must be capable of handling the Bengali syllabic structure. If a single word is longer than one row, the line can only be broken at syllable border.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4797
							Invalid sequences of characters must be rendered as incomplete syllables
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4798
							
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4799
@SYMTestExpectedResults 	The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4800
@SYMPREQ 					1766: Bengali for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4801
@SYMREQ 					8741:  Bengali Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4802
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4803
	// BEN004: 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4804
	testText[14] = 0x0985;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4805
	testText[15] = 0x09A4;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4806
	testText[16] = 0x09CD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4807
	testText[17] = 0x09AF;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4808
	testText[18] = 0x09A8;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4809
	testText[19] = 0x09CD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4810
	testText[20] = 0x09A4;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4811
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4812
	param.iPosInText = 14;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4813
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4814
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4815
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4816
	TEST(r && param.iPosInText == 15
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4817
			   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4818
			   && param.iOutput[0].iCode == 0x80000cb0
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4819
			   );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4820
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4821
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4822
	TEST(r && param.iPen.iX == 14);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4823
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4824
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4825
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4826
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4827
	param.iPosInText = 15;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4828
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4829
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4830
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4831
	TEST(r && param.iPosInText == 18
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4832
			   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4833
			   && param.iOutput[0].iCode ==0x80000ccb
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4834
			   && param.iOutput[1].iCode ==0x80000d6e
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4835
			   );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4836
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4837
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4838
	TEST(r && param.iPen.iX == 16);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4839
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4840
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4841
	INFO_PRINTF6(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode,param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4842
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4843
	param.iPosInText = 18;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4844
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4845
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4846
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4847
	TEST(r && param.iPosInText == 21
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4848
			   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4849
			   && param.iOutput[0].iCode == 0x80000e14
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4850
			   );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4851
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4852
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4853
	TEST(r && param.iPen.iX == 13);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4854
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4855
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4856
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4857
	TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4858
    	if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4859
    		INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4860
	((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4005"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4861
// BEN005
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4862
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4863
@SYMTestCaseID 				GRAPHICS-SYSLIB-GDI-CIT-4005
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4864
@SYMTestCaseDesc 			Automated GDI testing for Bengali
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4865
@SYMTestPriority 			High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4866
@SYMTestActions  			Attempt to compose various valid Bengali glyph clusters to test the requirment
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4867
							Text rendering must be able to display specified character sequences using ligatures and set of ligatures (stable/unstable) must be font dependent / configurable.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4868
@SYMTestExpectedResults 	The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4869
@SYMPREQ 					1766: Bengali for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4870
@SYMREQ 					8741:  Bengali Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4871
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4872
	testText[21] = 0x0995;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4873
	testText[22] = 0x09CD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4874
	testText[23] = 0x09B7;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4875
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4876
	testText[24] = 0x09A4;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4877
	testText[25] = 0x09CD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4878
	testText[26] = 0x09B0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4879
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4880
	testText[27] = 0x09A6;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4881
	testText[28] = 0x09CD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4882
	testText[29] = 0x09A6;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4883
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4884
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4885
	param.iPosInText = 21;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4886
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4887
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4888
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4889
	TEST(r && param.iPosInText == 24
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4890
			   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4891
			   && param.iOutput[0].iCode == 0x80000d25
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4892
			   );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4893
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4894
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4895
	TEST(r && param.iPen.iX == 15);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4896
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4897
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4898
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4899
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4900
	param.iPosInText = 24;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4901
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4902
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4903
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4904
	TEST(r && param.iPosInText == 27
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4905
			   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4906
			   && param.iOutput[0].iCode ==0x80000d89
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4907
			   );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4908
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4909
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4910
	TEST(r && param.iPen.iX == 12);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4911
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4912
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4913
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4914
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4915
	param.iPosInText = 27;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4916
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4917
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4918
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4919
	TEST(r && param.iPosInText == 30
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4920
			   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4921
			   && param.iOutput[0].iCode == 0x80000e0a
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4922
			   );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4923
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4924
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4925
	TEST(r && param.iPen.iX == 13);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4926
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4927
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4928
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4929
	TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4930
    	if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4931
    		INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4932
	((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4006"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4933
// BEN006
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4934
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4935
@SYMTestCaseID 				GRAPHICS-SYSLIB-GDI-CIT-4006
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4936
@SYMTestCaseDesc 			Automated GDI testing for Bengali
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4937
@SYMTestPriority		 	High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4938
@SYMTestActions  			Attempt to compose various valid Bengali glyph clusters to test 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4939
							whether tamil digits are recongized as numerals. 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4940
@SYMTestExpectedResults 	The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4941
@SYMPREQ 					1766: Bengali for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4942
@SYMREQ 					8741:  Bengali Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4943
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4944
	testText[30] = 0x09E6; // Bengali 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4945
	testText[31] = 0x0030; //Basic Latin 0
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4946
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4947
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4948
	param.iPosInText = 30;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4949
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4950
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4951
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4952
	TEST(r && param.iPosInText == 31
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4953
			   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4954
			   && param.iOutput[0].iCode == 0x80000cf3
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4955
			   );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4956
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4957
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4958
	TEST(r && param.iPen.iX == 10);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4959
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4960
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4961
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4962
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4963
	param.iPosInText = 31;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4964
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4965
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4966
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4967
	TEST(r && param.iPosInText == 32
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4968
			   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4969
			   && param.iOutput[0].iCode == 0x80000774	 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4970
			   );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4971
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4972
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4973
	TEST(r && param.iPen.iX == 8);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4974
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4975
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4976
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x "), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4977
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4978
	TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4979
    	if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4980
    		INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4981
	((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4007"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4982
//BEN 008
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4983
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4984
@SYMTestCaseID 				GRAPHICS-SYSLIB-GDI-CIT-4007
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4985
@SYMTestCaseDesc 			Automated GDI testing for Bengali
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4986
@SYMTestPriority 			High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4987
@SYMTestActions  			Attempt to compose various valid
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4988
							All text handling processes ((rendering, editing, searching, sorting etc.)  MUST treat the sequence of a base consonant and a nukta equivalently to Nukta consonants
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4989
@SYMTestExpectedResults 	The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4990
@SYMPREQ 					1766: Bengali for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4991
@SYMREQ 					8741:  Bengali Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4992
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4993
	testText[32] = 0x09AF;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4994
	testText[33] = 0x09BC;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4995
	testText[34] = 0x09DF;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4996
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4997
	param.iPosInText = 32;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4998
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  4999
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5000
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5001
	TEST(r && param.iPosInText == 34
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5002
			   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5003
			   && param.iOutput[0].iCode == 0x80000cee	 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5004
			   );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5005
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5006
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5007
	TEST(r && param.iPen.iX == 10);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5008
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5009
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5010
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x "), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5011
	TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5012
    	if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5013
    		INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5014
	((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4008"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5015
// BEN011
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5016
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5017
@SYMTestCaseID 				GRAPHICS-SYSLIB-GDI-CIT-4008
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5018
@SYMTestCaseDesc 			Automated GDI testing for Bengali
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5019
@SYMTestPriority 			High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5020
@SYMTestActions  			Attempt to compose various valid Bengali glyph clusters to test 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5021
							Rendering engine must be capable of handling joining formatters.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5022
@SYMTestExpectedResults 	The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5023
@SYMPREQ 					1766: Bengali for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5024
@SYMREQ 					8741:  Bengali Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5025
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5026
	testText[35] = 0x0995;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5027
	testText[36] = 0x09CD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5028
	testText[37] = 0x09B7;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5029
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5030
	testText[38] = 0x0995;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5031
	testText[39] = 0x09CD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5032
	testText[40] = 0x200C;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5033
	testText[42] = 0x09B7;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5034
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5035
	testText[43] = 0x0995;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5036
	testText[44] = 0x09CD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5037
	testText[45] = 0x200D;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5038
	testText[46] = 0x09B7;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5039
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5040
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5041
	param.iPosInText = 35;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5042
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5043
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5044
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5045
	TEST(r && param.iPosInText == 38
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5046
			   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5047
			   && param.iOutput[0].iCode == 0x80000d25
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5048
			   );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5049
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5050
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5051
	TEST(r && param.iPen.iX == 15);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5052
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5053
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5054
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5055
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5056
	param.iPosInText = 38;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5057
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5058
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5059
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5060
	TEST(r && param.iPosInText == 40
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5061
			   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5062
			   && param.iOutput[0].iCode == 0x80000cbc
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5063
			   && param.iOutput[1].iCode == 0x80000ce9
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5064
			   );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5065
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5066
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5067
	TEST(r && param.iPen.iX == 12);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5068
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5069
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5070
	INFO_PRINTF6(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode,param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5071
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5072
	param.iPosInText = 43;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5073
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5074
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5075
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5076
	TEST(r && param.iPosInText == 47
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5077
			   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5078
			   && param.iOutput[0].iCode == 0x80000d2a
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5079
			   && param.iOutput[1].iCode == 0x80000cd9
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5080
			   );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5081
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5082
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5083
	TEST(r && param.iPen.iX == 22);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5084
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5085
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5086
	INFO_PRINTF6(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5087
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5088
	TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5089
    	if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5090
    		INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5091
	((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4009"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5092
// BEN012
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5093
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5094
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5095
@SYMTestCaseID 				GRAPHICS-SYSLIB-GDI-CIT-4009
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5096
@SYMTestCaseDesc 			Automated GDI testing for Bengali
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5097
@SYMTestPriority 			High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5098
@SYMTestActions  			Attempt to compose various valid Bengali glyph clusters to test
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5099
 							If consonant /ya/, /ra/, /la/, /ma/, /na/ or /ba/, is the last element of a consonant cluster, the consonant assumes a phala form.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5100
@SYMTestExpectedResults 	The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5101
@SYMPREQ 					1766: Bengali for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5102
@SYMREQ 					8741:  Bengali Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5103
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5104
	testText[47] = 0x09AA;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5105
	testText[48] = 0x09CD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5106
	testText[49] = 0x09AF;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5107
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5108
	testText[50] = 0x09AA;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5109
	testText[51] = 0x09CD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5110
	testText[52] = 0x09A8;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5111
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5112
	// Not working with Series60Sans font:
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5113
	testText[53] = 0x09AA;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5114
	testText[54] = 0x09CD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5115
	testText[55] = 0x09AE;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5116
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5117
	param.iPosInText = 47;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5118
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5119
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5120
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5121
	TEST(r && param.iPosInText == 50
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5122
			   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5123
			   && param.iOutput[0].iCode == 0x80000cd0
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5124
			   );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5125
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5126
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5127
	TEST(r && param.iPen.iX == 15);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5128
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5129
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5130
	INFO_PRINTF6(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5131
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5132
	param.iPosInText = 50;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5133
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5134
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5135
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5136
	TEST(r && param.iPosInText == 53
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5137
			   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5138
			   && param.iOutput[0].iCode == 0x80000e25
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5139
			   );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5140
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5141
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5142
	TEST(r && param.iPen.iX == 11);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5143
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5144
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5145
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5146
	// Not working with Series60Sans font:
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5147
	param.iPosInText = 53;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5148
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5149
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5150
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5151
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5152
	TEST(r && param.iPosInText == 56
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5153
	   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5154
	   && param.iOutput[0].iCode == 0x80000d3e 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5155
	   && param.iOutput[1].iCode == 0x80000cd4
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5156
	  	);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5157
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5158
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5159
	TEST(r && param.iPen.iX == 19);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5160
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5161
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5162
	INFO_PRINTF6(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5163
	TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5164
    	if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5165
    		INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5166
	((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4010"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5167
// BEN013	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5168
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5169
@SYMTestCaseID 				GRAPHICS-SYSLIB-GDI-CIT-4010
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5170
@SYMTestCaseDesc 			Automated GDI testing for Bengali
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5171
@SYMTestPriority 			High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5172
@SYMTestActions  			Attempt to compose various valid Bengali glyph clusters to tet 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5173
							Sequence <virama, ya>, i.e. ya-phala, MUST be allowed after independent vowels /a/ and /e/.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5174
@SYMTestExpectedResults 	The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5175
@SYMPREQ 					1766: Bengali for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5176
@SYMREQ 					8741:  Bengali Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5177
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5178
	testText[56] = 0x0985;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5179
	testText[57] = 0x09CD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5180
	testText[58] = 0x09AF;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5181
	testText[59] = 0x09BE;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5182
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5183
	// Double ya -> Ya, ya-phala
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5184
	testText[60] = 0x09AA;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5185
	testText[61] = 0x09CD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5186
	testText[62] = 0x09AF;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5187
	testText[63] = 0x09CD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5188
	testText[64] = 0x09AF;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5189
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5190
	param.iPosInText = 56;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5191
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5192
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5193
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5194
	TEST(r && param.iPosInText == 57
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5195
			   && param.iPen.iX == 14
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5196
			   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5197
			   && param.iOutput[0].iCode == 0x80000cb0
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5198
			   );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5199
	#elif defined __ARMCC__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5200
	TEST(r && param.iPosInText == 57
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5201
			   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5202
			   && param.iOutput[0].iCode == 0x80000cb0
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5203
			   );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5204
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5205
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5206
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5207
	param.iPosInText = 57;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5208
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5209
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5210
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5211
	TEST(r && param.iPosInText == 58
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5212
			   && param.iOutputGlyphs == 0	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5213
			   );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5214
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5215
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5216
	TEST(r && param.iPen.iX == 0);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5217
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5218
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5219
	INFO_PRINTF6(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5220
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5221
	param.iPosInText = 60;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5222
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5223
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5224
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5225
	TEST(r && param.iPosInText == 65
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5226
			   && param.iOutputGlyphs == 3
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5227
			   && param.iOutput[0].iCode == 0x80000d3e
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5228
			   && param.iOutput[1].iCode == 0x80000cd5
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5229
			   && param.iOutput[2].iCode == 0x80000d6e
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5230
			   );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5231
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5232
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5233
	TEST(r && param.iPen.iX == 23);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5234
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5235
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5236
	INFO_PRINTF7(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x iOutput[2].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode, param.iOutput[2].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5237
	TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5238
    	if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5239
    		INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5240
	((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4011"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5241
	// BEN014
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5242
	/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5243
@SYMTestCaseID 				GRAPHICS-SYSLIB-GDI-CIT-4011
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5244
@SYMTestCaseDesc 			Automated GDI testing for Bengali
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5245
@SYMTestPriority 			High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5246
@SYMTestActions  			Attempt to compose various valid and glyph clusters to test 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5247
						 	When consonant /ga/, /nna/, /na/, /pa/, /la/, /sha/, /ssa/ or /sa/ is a dead consonant, and none of the other consonant cluster formation rules apply, the consonant MUST be rendered with a stemless half form.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5248
@SYMTestExpectedResults 	The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5249
@SYMPREQ 					1766: Bengali for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5250
@SYMREQ 					8741:  Bengali Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5251
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5252
	testText[65] = 0x0997;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5253
	testText[66] = 0x09CD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5254
	testText[67] = 0x099C;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5255
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5256
	testText[68] = 0x09AA;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5257
	testText[69] = 0x09CD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5258
	testText[70] = 0x099C;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5259
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5260
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5261
	param.iPosInText = 65;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5262
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5263
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5264
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5265
	TEST(r && param.iPosInText == 68
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5266
			   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5267
			   && param.iOutput[0].iCode == 0x80000d2c
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5268
			   && param.iOutput[1].iCode == 0x80000cc3
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5269
			   );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5270
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5271
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5272
	TEST(r && param.iPen.iX == 21);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5273
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5274
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5275
	INFO_PRINTF6(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5276
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5277
	param.iPosInText = 68;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5278
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5279
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5280
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5281
	TEST(r && param.iPosInText == 71
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5282
			   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5283
			   && param.iOutput[0].iCode == 0x80000d3e
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5284
			   );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5285
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5286
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5287
	TEST(r && param.iPen.iX == 23);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5288
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5289
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5290
	INFO_PRINTF6(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5291
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5292
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5293
	// BEN015
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5294
	TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5295
    	if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5296
    		INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5297
	((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4012"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5298
	/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5299
@SYMTestCaseID 				GRAPHICS-SYSLIB-GDI-CIT-4012
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5300
@SYMTestCaseDesc 			Automated GDI testing for Bengali
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5301
@SYMTestPriority 			High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5302
@SYMTestActions  			Attempt to compose various valid Bengali glyph clusters to test 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5303
 							When /ka/, /nga/, /ca/, /tta/, /dda/, /ta/ or /da/ is a dead consonant, and none of the other consonant cluster formation rules apply, the consonant MUST be rendered with a miniature half form.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5304
@SYMTestExpectedResults 	The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5305
@SYMPREQ 					1766: Bengali for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5306
@SYMREQ 					8741:  Bengali Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5307
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5308
	testText[71] = 0x0995;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5309
	testText[72] = 0x09CD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5310
	testText[73] = 0x099C;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5311
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5312
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5313
	param.iPosInText = 71;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5314
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5315
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5316
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5317
	TEST(r && param.iPosInText == 74
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5318
			   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5319
			   && param.iOutput[0].iCode == 0x80000d2a  
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5320
			   );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5321
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5322
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5323
	TEST(r && param.iPen.iX == 26);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5324
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5325
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5326
	INFO_PRINTF6(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5327
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5328
	TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5329
    	if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5330
    		INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5331
	((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4013"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5332
	// BEN016
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5333
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5334
	/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5335
@SYMTestCaseID 				GRAPHICS-SYSLIB-GDI-CIT-4013
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5336
@SYMTestCaseDesc 			Automated GDI testing for Bengali
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5337
@SYMTestPriority 			High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5338
@SYMTestActions  			Attempt to compose various valid Bengali glyph clusters to test
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5339
 							The consonant pairs /k.ka/, /ng.kha/, /c.nya/, /nn.nna/, /n.tha/, /n.pha/, /m.ta/, /m.tha/, /m.pha/, /m.bha/, /l.ka/, /l.ga/, /l.pa/, /ss.ka/, /ss.pha/, /s.ka/, /s.kha/, /s.ta/, /s.tha/, /s.pha/, /h.nna/ MUST be representend as stacks of two consonants.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5340
@SYMTestExpectedResults 	The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5341
@SYMPREQ 					1766: Bengali for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5342
@SYMREQ 					8741:  Bengali Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5343
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5344
	// Ma does not stack correctly on top with Series60Sans font, produces half form instead. Font defect.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5345
	testText[74] = 0x09AE;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5346
	testText[75] = 0x09CD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5347
	testText[76] = 0x09A5;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5348
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5349
	testText[77] = 0x09AE;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5350
	testText[78] = 0x09CD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5351
	testText[79] = 0x09AB;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5352
	// Ma does not stack correctly on top, produces half form instead.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5353
	testText[80] = 0x09AE;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5354
	testText[81] = 0x09CD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5355
	testText[82] = 0x0995;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5356
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5357
	testText[83] = 0x09A8;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5358
	testText[84] = 0x09CD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5359
	testText[85] = 0x09A5;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5360
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5361
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5362
	//Combination pa,virama,ma produces incorrect glyph mapping: Font defect.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5363
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5364
	param.iPosInText = 74;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5365
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5366
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5367
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5368
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5369
	TEST(r && param.iPosInText == 77		 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5370
		   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5371
		   && param.iOutput[0].iCode == 0x80000d42 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5372
		   && param.iOutput[1].iCode == 0x80000ccc
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5373
	);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5374
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5375
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5376
	TEST(r && param.iPen.iX == 21);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5377
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5378
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5379
	INFO_PRINTF6(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5380
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5381
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5382
	param.iPosInText = 77;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5383
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5384
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5385
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5386
	TEST(r && param.iPosInText == 80
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5387
			   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5388
			   && param.iOutput[0].iCode == 0x80000e30
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5389
			   );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5390
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5391
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5392
	TEST(r && param.iPen.iX == 19);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5393
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5394
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5395
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5396
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5397
	// Ma does not stack correctly on top, produces half form instead.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5398
	param.iPosInText = 80;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5399
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5400
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5401
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5402
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5403
	TEST(r && param.iPosInText == 83
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5404
	   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5405
	   && param.iOutput[0].iCode == 0x80000d42
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5406
	);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5407
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5408
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5409
	TEST(r && param.iPen.iX == 22);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5410
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5411
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5412
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5413
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5414
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5415
	param.iPosInText = 83;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5416
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5417
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5418
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5419
	TEST(r && param.iPosInText == 86
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5420
			   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5421
			   && param.iOutput[0].iCode == 0x80000e15
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5422
			   );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5423
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5424
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5425
	TEST(r && param.iPen.iX == 10);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5426
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5427
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5428
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5429
	TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5430
    	if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5431
    		INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5432
	((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4014"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5433
	// BEN017
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5434
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5435
	/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5436
@SYMTestCaseID 				GRAPHICS-SYSLIB-GDI-CIT-4014
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5437
@SYMTestCaseDesc 			Automated GDI testing for Bengali
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5438
@SYMTestPriority 			High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5439
@SYMTestActions  			Attempt to compose various valid Bengali glyph clusters to test
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5440
 							Consonant pairs /k.tta/, /k.ta/, /k.ssa/, /k.sa/, /g.ga/, /g.dha/, /ng.ka/, /ng.ga/, /j.ja/, /j.jha/, /j.nya/, /ny.ca/, /ny.cha/, /ny.ja/, /ny.jha/, /tt.tta/, /nn.ttha/, /nn.dda/, /t.ta/, /t.tha/, /d.da/, /d.dha/, /d.ba/, /d.bha/, /n.ta/, /n.dha/, /p.ta/, /b.ja/, /b.da/, /b.dha/, /m.pa/, /ss.tta/, /ss.ttha/, /ss.nna/, /s.pa/, /h.na/ /h.ma/ MUST be displayed as ligatures, if they appear at the end of a consonant cluster.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5441
@SYMTestExpectedResults 	The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5442
@SYMPREQ 					1766: Bengali for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5443
@SYMREQ 					8741:  Bengali Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5444
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5445
	testText[86] = 0x0995;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5446
	testText[87] = 0x09CD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5447
	testText[88] = 0x099F;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5448
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5449
	testText[89] = 0x0995;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5450
	testText[90] = 0x09CD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5451
	testText[91] = 0x09A4;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5452
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5453
	// Not sure if this is forming the correct ligature
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5454
	testText[92] = 0x09AE;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5455
	testText[93] = 0x09CD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5456
	testText[94] = 0x09AA;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5457
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5458
	// Not sure if this is forming the correct ligature
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5459
	testText[95] = 0x09B8;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5460
	testText[96] = 0x09CD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5461
	testText[97] = 0x09AA;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5462
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5463
	testText[98] = 0x09B9;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5464
	testText[99] = 0x09CD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5465
	testText[100] = 0x09A8;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5466
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5467
	param.iPosInText = 86;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5468
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5469
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5470
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5471
	TEST(r && param.iPosInText == 89
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5472
			   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5473
			   && param.iOutput[0].iCode == 0x80000dd7
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5474
			   );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5475
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5476
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5477
	TEST(r && param.iPen.iX == 12);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5478
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5479
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5480
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5481
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5482
	param.iPosInText = 89;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5483
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5484
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5485
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5486
	TEST(r && param.iPosInText == 92
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5487
			   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5488
			   && param.iOutput[0].iCode == 0x80000dd9
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5489
			   );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5490
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5491
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5492
	TEST(r && param.iPen.iX == 15);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5493
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5494
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5495
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5496
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5497
	param.iPosInText = 92;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5498
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5499
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5500
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5501
	TEST(r && param.iPosInText == 95
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5502
			   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5503
			   && param.iOutput[0].iCode == 0x80000e2f
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5504
			   );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5505
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5506
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5507
	TEST(r && param.iPen.iX == 19);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5508
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5509
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5510
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5511
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5512
	param.iPosInText = 95;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5513
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5514
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5515
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5516
	TEST(r && param.iPosInText == 98
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5517
			   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5518
			   && param.iOutput[0].iCode == 0x80000e56
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5519
			   );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5520
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5521
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5522
	TEST(r && param.iPen.iX == 20);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5523
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5524
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5525
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5526
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5527
	param.iPosInText = 98;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5528
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5529
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5530
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5531
	TEST(r && param.iPosInText == 101	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5532
			   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5533
			   && param.iOutput[0].iCode == 0x80000e5d	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5534
			   );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5535
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5536
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5537
	TEST(r && param.iPen.iX == 13);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5538
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5539
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5540
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5541
	TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5542
    	if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5543
    		INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5544
	((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4015"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5545
// BEN020
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5546
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5547
@SYMTestCaseID 				GRAPHICS-SYSLIB-GDI-CIT-4015
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5548
@SYMTestCaseDesc 			Automated GDI testing for Bengali
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5549
@SYMTestPriority 			High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5550
@SYMTestActions  			Attempt to compose various valid Bengali glyph clusters to test that
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5551
 							If RA is the first consonant cluster, it must assume the form of Repha.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5552
@SYMTestExpectedResults 	The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5553
@SYMPREQ 					1766: Bengali for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5554
@SYMREQ 					8741:  Bengali Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5555
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5556
	testText[101] = 0x09B0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5557
	testText[102] = 0x09CD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5558
	testText[103] = 0x0995;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5559
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5560
	testText[104] = 0x09B0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5561
	testText[105] = 0x200C;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5562
	testText[106] = 0x09CD;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5563
	testText[107] = 0x09AF;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5564
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5565
	param.iPosInText = 101;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5566
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5567
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5568
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5569
	TEST(r && param.iPosInText == 104
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5570
			   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5571
			   && param.iOutput[0].iCode == 0x80000cbc
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5572
			   && param.iOutput[1].iCode == 0x80000d27
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5573
			   );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5574
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5575
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5576
	TEST(r && param.iPen.iX == 12);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5577
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5578
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5579
	INFO_PRINTF6(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5580
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5581
	param.iPosInText =104;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5582
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5583
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5584
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5585
	TEST(r && param.iPosInText == 105
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5586
			   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5587
			   && param.iOutput[0].iCode == 0x80000cd6
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5588
			   );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5589
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5590
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5591
	TEST(r && param.iPen.iX == 9);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5592
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5593
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5594
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5595
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5596
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5597
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5598
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5599
void CTGlyphSelection::TestTamilChars(CFbsFont* aFont)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5600
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5601
INFO_PRINTF1(_L("Test Tamil Glyphs"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5602
 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5603
  	TBool r;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5604
	TBuf<162> testText(0);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5605
	CFont::TPositionParam param;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5606
	param.iDirection = CFont::EHorizontal;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5607
	param.iFlags = CFont::TPositionParam::EFLogicalOrder;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5608
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5609
	testText.SetLength(162);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5610
	// Make sure there is no garbage values in the memory we are using.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5611
	for (TInt i = 0; i < testText.Length(); i++)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5612
		testText[i]=0xFFFF;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5613
	param.iText.Set(testText);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5614
	RShapeInfo shapeInfo;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5615
	//Testdata for Tamil Langauage
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5616
	TRAPD(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5617
    	if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5618
    		INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5619
	((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4016"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5620
/*	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5621
@SYMTestCaseID GRAPHICS-SYSLIB-GDI-CIT-4016
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5622
@SYMTestCaseDesc Automated GDI testing for Tamil
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5623
@SYMTestPriority High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5624
@SYMTestActions  Attempt to compose various valid Tamil glyph clusters to test 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5625
  	 a)The Tamil alphabets are listed in contiguous Unicode range(U+0B80–U+0BFF),  This also contains Tamil Numbers.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5626
	 b)The Tamil alphabets are listed in contiguous Unicode range(U+0B80–U+0BFF),  This also contains Tamil Numbers.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5627
	 c)Internal data storage should always be in the logical order, but the rendering of it may be different to that of the logical order
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5628
	 d)Combination of Unicode sequences must be rendered as valid blocks.  In Tamil some character sequences are invalid and therefore only the sequences which follow the logical order as described in Req 1.2.3 should be rendered properly
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5629
	 e)If the text being rendered contains a mixture of scripts, the text in each script should be rendered according to the rules of that particular script.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5630
@SYMTestExpectedResults The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5631
@SYMPREQ 1766: Tamil for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5632
@SYMREQ 8742:Tamil Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5633
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5634
	testText[0] = 0x0B95; //Tamil Ka
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5635
	testText[1] = 0x0B8E; //Tamil e
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5636
	testText[2] = 0x0061; //Latin A
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5637
	testText[3] = 0x0905; // Hindi Ka
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5638
	testText[4] = 0x0020;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5639
	// Do the testing
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5640
	param.iPosInText = 0 ;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5641
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5642
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5643
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5644
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5645
	TEST(r && param.iPosInText == 1  
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5646
		   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5647
		   && param.iOutput[0].iCode == 0x80000bf6);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5648
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5649
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5650
	TEST(r && param.iPen.iX == 13);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5651
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5652
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5653
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5654
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5655
	param.iPosInText = 1 ;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5656
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5657
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5658
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5659
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5660
	TEST(r && param.iPosInText ==  2 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5661
		   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5662
		   && param.iOutput[0].iCode == 0x80000bf0);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5663
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5664
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5665
	TEST(r && param.iPen.iX == 14);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5666
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5667
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5668
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5669
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5670
	param.iPosInText = 2 ;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5671
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5672
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5673
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5674
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5675
	TEST(r && param.iPosInText == 3
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5676
		   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5677
		   && param.iOutput[0].iCode == 0x61 );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5678
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5679
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5680
	TEST(r && param.iPen.iX == 10);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5681
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5682
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5683
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5684
	param.iPosInText = 3 ;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5685
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5686
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5687
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5688
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5689
	TEST(r && param.iPosInText == 4  
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5690
		   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5691
		   && param.iOutput[0].iCode == 0x80000528);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5692
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5693
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5694
	TEST(r && param.iPen.iX == 12);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5695
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5696
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5697
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5698
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5699
	/*Req 02 1.2.3, 1.3.21, 1.3.21.1, 1.3.21.2 1.3.21.3
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5700
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5701
	1.2.3 The attachment presents the logical order used to present Tamil text. In the schematic samples, square brackets are used to presents the components that may be omitted. 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5702
	1.3.21 If the text-rendering engine detects invalid sequences of characters, it should render the invalid sequences using an appropriate fallback rendering mechanism
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5703
Please see the attachment for examples
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5704
	1.3.21.1 For normal rendering, combining Tamil characters must be preceded by a valid base character. 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5705
	1.3.21.2 Combining Tamil characters that do not follow a valid base character must be rendered using an appropriate fallback rendering.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5706
	1.3.21.3 Device must not hang or crash because of unexpected character sequences.*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5707
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5708
	TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5709
    	if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5710
    		INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5711
	((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4017"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5712
//Req 03 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5713
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5714
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5715
@SYMTestCaseID GRAPHICS-SYSLIB-GDI-CIT-4017
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5716
@SYMTestCaseDesc Automated GDI testing for Tamil
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5717
@SYMTestPriority High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5718
@SYMTestActions  Attempt to compose various valid Tamil glyph clusters to test 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5719
				 It is reasonably common to mix Latin, Tamil as well as other script in texts.  This must include the numerals.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5720
@SYMTestExpectedResults The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5721
@SYMPREQ 1766: Tamil for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5722
@SYMREQ 8742:Tamil Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5723
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5724
	testText[4] = 0x0036;//Latin 06
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5725
	testText[5] = 0x0BEC;//Tamil 06
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5726
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5727
	param.iPosInText = 4 ;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5728
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5729
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5730
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5731
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5732
	TEST(r && param.iPosInText == 5  
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5733
		   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5734
		   && param.iOutput[0].iCode == 0x8000077A);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5735
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5736
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5737
	TEST(r && param.iPen.iX == 8);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5738
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5739
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5740
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5741
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5742
	param.iPosInText = 5 ;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5743
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5744
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5745
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5746
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5747
	TEST(r && param.iPosInText == 6  
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5748
		   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5749
		   && param.iOutput[0].iCode == 0x80000c20);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5750
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5751
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5752
	TEST(r && param.iPen.iX == 16);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5753
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5754
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5755
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5756
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5757
	/*Req 04 1.3.4, 1.3.20
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5758
	1.3.4   1. Tamil is a semi-syllabic script and in Tamil text rendering the basic unit for handling text must be the orthographic syllable.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5759
			2. Therefore, a text-rendering engine should first identify a syllable and then analyze the syllable. Based on the analysis, text-rendering engine should then be able to select and/or shape the glyphs required for rendering the syllable and to perform contextual positioning of glyphs inside a syllable.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5760
			3. After a syllable has been formed it must be considered an indivisible and invariable unit.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5761
			4. The shape of a syllable is not affected by surrounding syllables.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5762
	1.3.20 Syllable is the smallest unbreakable component in Tamil*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5763
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5764
	/*Req 07 1.3.5
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5765
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5766
	1.3.5 	1. In Tamil, when ligatures are used there is a possibility that the shaping of the previous consonant will depend on the next consonant the user enters
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5767
			2. In Tamil, there is a possibility that even though the characters are entered one by one the position of the matras change depending on the consonant and the type of the matra
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5768
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5769
	Req 08 1.3.19
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5770
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5771
	1.3.19 In Tamil white space is used as a word boundary. Line breaking should be based on word boundaries
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5772
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5773
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5774
	Req 09 1.2.4
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5775
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5776
	1.2.4 For compatibility with legacy encodings, split matra and vowel representations must be recognized as identical to the single code representations (preferred)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5777
	*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5778
	TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5779
    	if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5780
    		INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5781
	((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4018"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5782
//Req 10 1.3.6	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5783
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5784
@SYMTestCaseID GRAPHICS-SYSLIB-GDI-CIT-4018
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5785
@SYMTestCaseDesc Automated GDI testing for Tamil
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5786
@SYMTestPriority High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5787
@SYMTestActions  Attempt to compose various valid Tamil glyph clusters to test the requirement.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5788
				 Tamil character shaping MUST be based on combining character sequences. All shaping processes (splitting, reordering, glyph selection) MUST occur in the context of combining character sequence.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5789
@SYMTestExpectedResults The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5790
@SYMPREQ 1766: Tamil for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5791
@SYMREQ 8742:Tamil Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5792
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5793
	testText[6] = 0x0BAA; // Pa
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5794
	testText[7] = 0x0BCD; //Virama
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5795
	testText[8] = 0x0B95; //Ka
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5796
	testText[9] = 0x0BCD; //Virama
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5797
	testText[10] = 0x0B9F; //Tta
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5798
	testText[11] = 0x0BC7; //-e
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5799
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5800
	testText[12] = 0x0BAA;//Pa
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5801
	testText[13] = 0x0BCD;//Virama
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5802
	testText[14] = 0x0B95;//Ka
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5803
	testText[15] = 0x0BCC;//AU
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5804
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5805
	testText[16] = 0x0B95; //Ka
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5806
	testText[17] = 0x0BCD; //Virama
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5807
	testText[18] = 0x0BB7; //Ssa
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5808
	testText[19] = 0x0BCB; //OO
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5809
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5810
	param.iPosInText = 6 ;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5811
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5812
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5813
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5814
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5815
	TEST(r && param.iPosInText == 12    
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5816
		   && param.iOutputGlyphs == 4
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5817
		   && param.iOutput[0].iCode == 0x80000c3a
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5818
		   && param.iOutput[1].iCode == 0x80000c30  
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5819
		   && param.iOutput[2].iCode == 0x80000c13
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5820
		   && param.iOutput[3].iCode == 0x80000bfb);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5821
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5822
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5823
	TEST(r && param.iPen.iX == 51);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5824
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5825
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5826
	INFO_PRINTF7(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x iOutput[3].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode, param.iOutput[3].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5827
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5828
	param.iPosInText = 12 ;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5829
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5830
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5831
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5832
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5833
	TEST(r && param.iPosInText ==  16 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5834
		   && param.iOutputGlyphs ==4 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5835
		   && param.iOutput[0].iCode == 0x80000c3a 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5836
		   && param.iOutput[1].iCode == 0x80000c12 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5837
		   && param.iOutput[2].iCode == 0x80000bf6
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5838
		   && param.iOutput[3].iCode == 0x80000c19);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5839
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5840
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5841
	TEST(r && param.iPen.iX == 56);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5842
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5843
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5844
	INFO_PRINTF7(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x iOutput[3].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode, param.iOutput[3].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5845
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5846
	param.iPosInText = 16 ;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5847
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5848
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5849
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5850
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5851
	TEST(r && param.iPosInText == 20  
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5852
		   && param.iOutputGlyphs == 3
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5853
		   && param.iOutput[0].iCode == 0x80000c13
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5854
		   && param.iOutput[1].iCode == 0x80000c2f  
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5855
		   && param.iOutput[2].iCode == 0x80000c0d);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5856
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5857
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5858
	TEST(r && param.iPen.iX == 54);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5859
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5860
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5861
	INFO_PRINTF7(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x iOutput[2].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode, param.iOutput[2].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5862
	TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5863
    	if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5864
    		INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5865
	((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4019"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5866
//Req 11
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5867
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5868
@SYMTestCaseID GRAPHICS-SYSLIB-GDI-CIT-4019
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5869
@SYMTestCaseDesc Automated GDI testing for Tamil
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5870
@SYMTestPriority High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5871
@SYMTestActions  Attempt to compose various valid Tamil glyph clusters to test the requirement
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5872
				 Matras /-e/, /-ee/ and /-ai/ are reordered with the consonant they follow in memory order.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5873
@SYMTestExpectedResults The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5874
@SYMPREQ 1766: Tamil for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5875
@SYMREQ 8742:Tamil Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5876
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5877
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5878
	testText[20] = 0x0B95; //Ka
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5879
	testText[21] = 0x0BC7; //-e
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5880
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5881
	param.iPosInText = 20 ;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5882
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5883
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5884
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5885
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5886
	TEST(r && param.iPosInText == 22  
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5887
		   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5888
		   && param.iOutput[0].iCode == 0x80000c13 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5889
		   && param.iOutput[1].iCode == 0x80000bf6 );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5890
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5891
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5892
	TEST(r && param.iPen.iX == 26);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5893
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5894
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5895
	INFO_PRINTF6(_L("The values are iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode); 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5896
	TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5897
    	if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5898
    		INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5899
	((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4020"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5900
//Req 12 1.3.5.2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5901
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5902
@SYMTestCaseID GRAPHICS-SYSLIB-GDI-CIT-4020
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5903
@SYMTestCaseDesc Automated GDI testing for Tamil
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5904
@SYMTestPriority High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5905
@SYMTestActions  Attempt to compose various valid Tamil glyph clusters to test the requirment
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5906
				 Matras /-o/, /-oo/ and /-au/ are split into two halves that enclose the consonant they follow in memory order.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5907
@SYMTestExpectedResults The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5908
@SYMPREQ 1766: Tamil for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5909
@SYMREQ 8742:Tamil Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5910
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5911
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5912
	testText[22] = 0x0B95; //Ka
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5913
	testText[23] = 0x0BCA; //O
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5914
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5915
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5916
	param.iPosInText = 22 ;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5917
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5918
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5919
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5920
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5921
	TEST(r && param.iPosInText ==  24 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5922
		   && param.iOutputGlyphs == 3
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5923
		   && param.iOutput[0].iCode == 0x80000c12
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5924
		   && param.iOutput[1].iCode == 0x80000bf6   
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5925
		   && param.iOutput[2].iCode == 0x80000c0d);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5926
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5927
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5928
	TEST(r && param.iPen.iX == 37);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5929
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5930
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5931
	INFO_PRINTF7(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x iOutput[2].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode, param.iOutput[2].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5932
	TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5933
    	if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5934
    		INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5935
	((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4021"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5936
	//Req 13 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5937
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5938
@SYMTestCaseID GRAPHICS-SYSLIB-GDI-CIT-4021
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5939
@SYMTestCaseDesc Automated GDI testing for Tamil
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5940
@SYMTestPriority High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5941
@SYMTestActions  Attempt to compose various valid Tamil glyph clusters to test the requirment.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5942
				Tamil Modifier "Ayatham" MUST be treated as an independent character
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5943
@SYMTestExpectedResults The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5944
@SYMPREQ 1766: Tamil for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5945
@SYMREQ 8742:Tamil Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5946
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5947
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5948
	testText[24] = 0x0B95; //Ka
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5949
	testText[25] = 0x0B83; //Aythem
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5950
	testText[26] = 0x0B85; //A
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5951
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5952
	param.iPosInText = 24;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5953
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5954
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5955
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5956
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5957
	TEST(r && param.iPosInText ==  25 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5958
		   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5959
		   && param.iOutput[0].iCode == 0x80000bf6);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5960
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5961
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5962
	TEST(r && param.iPen.iX == 13);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5963
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5964
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5965
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5966
	TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5967
    	if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5968
    		INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5969
	((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4022"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5970
//Req 14 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5971
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5972
@SYMTestCaseID GRAPHICS-SYSLIB-GDI-CIT-4022
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5973
@SYMTestCaseDesc Automated GDI testing for Tamil
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5974
@SYMTestPriority High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5975
@SYMTestActions  Attempt to compose various valid Tamil glyph clusters to test the requirement. 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5976
			 	Rendering Engine MUST be capable of handling TAMIL ANUSVARA
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5977
				It has been suggested that this character be deprecated in Unicode
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5978
@@SYMTestExpectedResults The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5979
@SYMPREQ 1766: Tamil for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5980
@SYMREQ 8742:Tamil Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5981
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5982
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5983
	testText[27] = 0x0B95; //Ka
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5984
	testText[28] = 0x0B82; //Anusvara
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5985
	testText[29] = 0x0B95; //Ka
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5986
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5987
	param.iPosInText = 27;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5988
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5989
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5990
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5991
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5992
	TEST(r && param.iPosInText ==  29 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5993
		   && param.iOutputGlyphs == 2 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5994
		   && param.iOutput[0].iCode == 0x80000bf6
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5995
		   && param.iOutput[1].iCode == 0x80000be8);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5996
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5997
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5998
	TEST(r && param.iPen.iX == 19);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  5999
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6000
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6001
	INFO_PRINTF6(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6002
	param.iPosInText = 29;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6003
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6004
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6005
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6006
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6007
	TEST(r && param.iPosInText ==  30 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6008
		   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6009
		   && param.iOutput[0].iCode == 0x80000bf6 );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6010
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6011
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6012
	TEST(r && param.iPen.iX == 13);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6013
	#endif 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6014
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6015
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6016
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6017
	TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6018
    	if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6019
    		INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6020
	((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4023"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6021
//Req 15
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6022
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6023
@SYMTestCaseID GRAPHICS-SYSLIB-GDI-CIT-4023
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6024
@SYMTestCaseDesc Automated GDI testing for Tamil
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6025
@SYMTestPriority High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6026
@SYMTestActions  Attempt to compose various valid Tamil glyph clusters to test the requirment
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6027
				 Tamil consonant /ra/ changes its shape, when a virama is applied to it.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6028
@@SYMTestExpectedResults The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6029
@SYMPREQ 1766: Tamil for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6030
@SYMREQ 8742:Tamil Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6031
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6032
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6033
	testText[30] = 0x0BB0; //Ra
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6034
	testText[31] = 0x0BCD; //Virama
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6035
	testText[32] = 0x8205; //ZWJ
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6036
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6037
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6038
	param.iPosInText =  30;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6039
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6040
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6041
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6042
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6043
	TEST(r && param.iPosInText ==  32 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6044
		   && param.iOutputGlyphs == 2 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6045
		   && param.iOutput[0].iCode == 0x80000c03 );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6046
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6047
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6048
	TEST(r && param.iPen.iX == 10);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6049
	#endif 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6050
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6051
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6052
	TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6053
    	if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6054
    		INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6055
	((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4024"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6056
//Req 16 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6057
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6058
@SYMTestCaseID GRAPHICS-SYSLIB-GDI-CIT-4024
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6059
@SYMTestCaseDesc Automated GDI testing for Tamil
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6060
@SYMTestPriority High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6061
@SYMTestActions  Attempt to compose various valid Tamil glyph clusters to test 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6062
				Matra /-aa/ is combined to consonants in regular fashion. No extra shaping is required.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6063
@@SYMTestExpectedResults The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6064
@SYMPREQ 1766: Tamil for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6065
@SYMREQ 8742:Tamil Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6066
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6067
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6068
	testText[33] = 0x0B95; //Ka
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6069
	testText[34] = 0x0B82; //Anusvara
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6070
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6071
	param.iPosInText = 33 ;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6072
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6073
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6074
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6075
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6076
	TEST(r && param.iPosInText == 35  
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6077
		   && param.iOutputGlyphs == 2 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6078
		   && param.iOutput[0].iCode == 0x80000bf6 );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6079
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6080
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6081
	TEST(r && param.iPen.iX == 19);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6082
	#endif 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6083
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6084
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6085
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6086
	TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6087
    	if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6088
    		INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6089
	((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4025"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6090
//Req 17 1.3.11
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6091
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6092
@SYMTestCaseID GRAPHICS-SYSLIB-GDI-CIT-4025
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6093
@SYMTestCaseDesc Automated GDI testing for Tamil
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6094
@SYMTestPriority High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6095
@SYMTestActions  Attempt to compose various valid Tamil glyph clusters to test 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6096
					Matras /-i/ and /-ii/ MUST form a ligature with consonant /tta/.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6097
@@SYMTestExpectedResults The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6098
@SYMPREQ 1766: Tamil for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6099
@SYMREQ 8742:Tamil Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6100
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6101
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6102
	testText[35] = 0x0B9F; //Tta
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6103
	testText[36] = 0x0BBF; //I
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6104
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6105
	testText[37] = 0x0B9F; //Tta
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6106
	testText[38] = 0x0BC0; //Ii
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6107
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6108
	param.iPosInText = 35 ;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6109
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6110
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6111
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6112
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6113
	TEST(r && param.iPosInText ==  37 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6114
		   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6115
		   && param.iOutput[0].iCode == 0x80000c51);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6116
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6117
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6118
	TEST(r && param.iPen.iX == 15);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6119
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6120
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6121
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6122
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6123
	param.iPosInText = 37 ;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6124
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6125
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6126
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6127
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6128
	TEST(r && param.iPosInText ==  39
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6129
		   && param.iOutputGlyphs == 1 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6130
		   && param.iOutput[0].iCode == 0x80000c52);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6131
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6132
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6133
	TEST(r && param.iPen.iX == 13);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6134
	#endif 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6135
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6136
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6137
	TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6138
    	if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6139
    		INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6140
	((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4026"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6141
//Req 18 	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6142
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6143
@SYMTestCaseID GRAPHICS-SYSLIB-GDI-CIT-4026
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6144
@SYMTestCaseDesc Automated GDI testing for Tamil
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6145
@SYMTestPriority High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6146
@SYMTestActions  Attempt to compose various valid Tamil glyph clusters to test 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6147
				Consonant /ra/ takes an alternate shape when combined with matras /-i/ and /-ii/.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6148
@@SYMTestExpectedResults The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6149
@SYMPREQ 1766: Tamil for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6150
@SYMREQ 8742:Tamil Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6151
*/	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6152
	testText[39] = 0x0BB0; //Ra
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6153
	testText[40] = 0x0BBF; //I
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6154
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6155
	testText[41] = 0x0BB0; //Ra
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6156
	testText[42] = 0x0BC0; //Ii
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6157
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6158
	param.iPosInText = 39 ;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6159
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6160
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6161
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6162
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6163
	TEST(r && param.iPosInText == 41  
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6164
		   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6165
		   && param.iOutput[0].iCode == 0x80000c0d
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6166
		   && param.iOutput[1].iCode == 0x80000c0e );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6167
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6168
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6169
	TEST(r && param.iPen.iX == 13);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6170
	#endif 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6171
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6172
	INFO_PRINTF6(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6173
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6174
	param.iPosInText = 41 ;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6175
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6176
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6177
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6178
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6179
	TEST(r && param.iPosInText ==  43
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6180
		   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6181
		   && param.iOutput[0].iCode == 0x80000c0d 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6182
		   && param.iOutput[1].iCode == 0x80000c0f);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6183
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6184
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6185
	TEST(r && param.iPen.iX == 13);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6186
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6187
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6188
	INFO_PRINTF6(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6189
	TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6190
    	if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6191
    		INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6192
	((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4027"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6193
//Req 19 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6194
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6195
@SYMTestCaseID GRAPHICS-SYSLIB-GDI-CIT-4027
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6196
@SYMTestCaseDesc Automated GDI testing for Tamil
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6197
@SYMTestPriority High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6198
@SYMTestActions  Attempt to compose various valid Tamil glyph clusters to test the requirement
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6199
				 Matras /-i/ and /-ii/ take an alternate form when applied to consonants /nga/, /pa/, /ya/ and /va/.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6200
@@SYMTestExpectedResults The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6201
@SYMPREQ 1766: Tamil for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6202
@SYMREQ 8742:Tamil Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6203
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6204
	testText[43] = 0x0B99; //Nga
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6205
	testText[44] = 0x0BBF; //I
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6206
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6207
	testText[45] = 0x0B99; //Nga
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6208
	testText[46] = 0x0BC0; //Ii
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6209
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6210
	param.iPosInText = 43 ;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6211
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6212
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6213
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6214
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6215
	TEST(r && param.iPosInText ==  45 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6216
		   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6217
		   && param.iOutput[0].iCode == 0x80000bf7
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6218
		   && param.iOutput[1].iCode == 0x80000c0e );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6219
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6220
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6221
	TEST(r && param.iPen.iX == 19);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6222
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6223
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6224
	INFO_PRINTF6(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6225
	param.iPosInText = 45 ;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6226
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6227
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6228
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6229
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6230
	TEST(r && param.iPosInText ==  47
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6231
		   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6232
		   && param.iOutput[0].iCode == 0x80000c4a );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6233
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6234
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6235
	TEST(r && param.iPen.iX == 17);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6236
	#endif 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6237
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6238
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6239
	TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6240
    	if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6241
    		INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6242
	((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4028"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6243
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6244
//Req 20 		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6245
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6246
@SYMTestCaseID GRAPHICS-SYSLIB-GDI-CIT-4028
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6247
@SYMTestCaseDesc Automated GDI testing for Tamil
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6248
@SYMTestPriority High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6249
@SYMTestActions  Attempt to compose various valid Tamil glyph clusters to test the requirement. 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6250
				 Matras /-u/ and /-uu/ join in ligature form with all other consonants than /ha/, /ja/, /sa/, /ssa/ and /k.ssa/.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6251
@@SYMTestExpectedResults The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6252
@SYMPREQ 1766: Tamil for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6253
@SYMREQ 8742:Tamil Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6254
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6255
	testText[47] = 0x0B9C; //Ja
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6256
	testText[48] = 0x0BC1; //U
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6257
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6258
	testText[49] = 0x0B9C; //Ja
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6259
	testText[50] = 0x0BC2; //Uu
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6260
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6261
	param.iPosInText = 47 ;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6262
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6263
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6264
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6265
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6266
	TEST(r && param.iPosInText == 49  
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6267
		   && param.iOutputGlyphs == 2 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6268
		   && param.iOutput[0].iCode == 0x80000bf9
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6269
		   && param.iOutput[1].iCode == 0x80000c10);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6270
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6271
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6272
	TEST(r && param.iPen.iX == 26);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6273
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6274
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6275
	INFO_PRINTF6(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6276
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6277
	param.iPosInText = 49;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6278
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6279
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6280
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6281
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6282
	TEST(r && param.iPosInText ==  51
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6283
		   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6284
		   && param.iOutput[0].iCode == 0x80000bf9
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6285
		   && param.iOutput[1].iCode == 0x80000c11 );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6286
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6287
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6288
	TEST(r && param.iPen.iX == 29);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6289
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6290
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6291
	INFO_PRINTF6(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6292
	TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6293
    	if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6294
    		INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6295
	((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4029"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6296
//Req 21 1.3.15		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6297
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6298
@SYMTestCaseID GRAPHICS-SYSLIB-GDI-CIT-4029
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6299
@SYMTestCaseDesc Automated GDI testing for Tamil
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6300
@SYMTestPriority High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6301
@SYMTestActions  Attempt to compose various valid Tamil glyph clusters to test the requirement. 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6302
				 Matra /-ai/ is combined to consonants in regular fashion. No extra shaping is required. 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6303
@@SYMTestExpectedResults The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6304
@SYMPREQ 1766: Tamil for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6305
@SYMREQ 8742:Tamil Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6306
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6307
	testText[51] = 0x0B95; //Ka
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6308
	testText[52] = 0x0BC8; //Ai
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6309
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6310
	param.iPosInText = 51;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6311
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6312
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6313
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6314
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6315
	TEST(r && param.iPosInText == 53  		   
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6316
		   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6317
		   && param.iOutput[0].iCode == 0x80000c14
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6318
		   && param.iOutput[1].iCode == 0x80000bf6);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6319
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6320
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6321
	TEST(r && param.iPen.iX == 31);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6322
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6323
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6324
	INFO_PRINTF6(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6325
	TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6326
    	if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6327
    		INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6328
	((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4030"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6329
//Req 22
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6330
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6331
@SYMTestCaseID GRAPHICS-SYSLIB-GDI-CIT-4030
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6332
@SYMTestCaseDesc Automated GDI testing for Tamil
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6333
@SYMTestPriority High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6334
@SYMTestActions  Attempt to compose various valid Tamil glyph clusters to test the requirement
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6335
				 Consonant cluster <ka, virama, ssa> MUST always form conjunct consonant /k.ssa/, which behaves as if it were a proper consonant of its own
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6336
@@SYMTestExpectedResults The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6337
@SYMPREQ 1766: Tamil for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6338
@SYMREQ 8742:Tamil Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6339
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6340
	testText[53] = 0x0B95; //Ka
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6341
	testText[54] = 0x0BCD; //Virama
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6342
	testText[55] = 0x0BB7; //Ssa
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6343
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6344
	param.iPosInText =  53;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6345
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6346
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6347
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6348
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6349
	TEST(r && param.iPosInText == 56  
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6350
		   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6351
		   && param.iOutput[0].iCode == 0x80000c2f );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6352
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6353
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6354
	TEST(r && param.iPen.iX == 31);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6355
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6356
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6357
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6358
	TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6359
    	if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6360
    		INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6361
	((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4031"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6362
//Req 23 1.3.17
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6363
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6364
@SYMTestCaseID GRAPHICS-SYSLIB-GDI-CIT-4031
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6365
@SYMTestCaseDesc Automated GDI testing for Tamil
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6366
@SYMTestPriority High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6367
@SYMTestActions  Attempt to compose various valid Tamil glyph clusters to test 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6368
				Character sequence <sa, virama, ra, matra_ii> MUST be rendered as a ligature form /s.rii/.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6369
@@SYMTestExpectedResults The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6370
@SYMPREQ 1766: Tamil for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6371
@SYMREQ 8742:Tamil Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6372
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6373
	testText[56] = 0x0BB8; //Sa
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6374
	testText[57] = 0x0BCD; //Virama
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6375
	testText[58] = 0x0BB0; //Ra
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6376
	testText[59] = 0x0BC0; //Matra I
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6377
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6378
	param.iPosInText = 56;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6379
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6380
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6381
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6382
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6383
	TEST(r && param.iPosInText == 60  
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6384
		   && param.iOutputGlyphs == 1 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6385
		   && param.iOutput[0].iCode == 0x80000c79 );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6386
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6387
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6388
	TEST(r && param.iPen.iX == 27);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6389
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6390
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6391
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6392
	TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6393
    	if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6394
    		INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6395
	((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4032"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6396
//Req 24 1.3.18
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6397
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6398
@SYMTestCaseID GRAPHICS-SYSLIB-GDI-CIT-4032
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6399
@SYMTestCaseDesc Automated GDI testing for Tamil
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6400
@SYMTestPriority High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6401
@SYMTestActions  Attempt to compose various valid Tamil glyph clusters to test 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6402
				Vertical position of the glyphs for combining characters virama, matras /-i/ and /-ii/ must be determined separately in relation to the relevant base glyph
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6403
@@SYMTestExpectedResults The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6404
@SYMPREQ 1766: Tamil for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6405
@SYMREQ 8742:Tamil Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6406
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6407
	testText[60] = 0x0B95; //Ka
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6408
	testText[62] = 0x0BCD; //Virama
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6409
	testText[63] = 0x8205; //ZWJ
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6410
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6411
	param.iPosInText = 60;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6412
	param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6413
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6414
	r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6415
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6416
	TEST(r && param.iPosInText == 61  
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6417
		   && param.iOutputGlyphs == 1 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6418
		   && param.iOutput[0].iCode == 0x80000bf6 );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6419
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6420
	#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6421
	TEST(r && param.iPen.iX == 13);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6422
	#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6423
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6424
	INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6425
	TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6426
    	if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6427
    		INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6428
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6429
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6430
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6431
@SYMTestCaseID			GRAPHICS-SYSLIB-GDI-CIT-3479
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6432
@SYMTestCaseDesc		Automated GDI testing for correct localised punctuation after indic characters
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6433
@SYMTestPriority		High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6434
@SYMTestActions			Attempt to compose various valid Indic strings with western punctuation
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6435
@SYMTestExpectedResults The expected punctuation glyphs for the implied locale should be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6436
@SYMDEF					DEF106651
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6437
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6438
void CTGlyphSelection::TestGlyphs(CFont* aFont, CFont::TPositionParam& aParam,
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6439
	const TPtrC16& aText, const TPtrC16& aExpectedGlyphs)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6440
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6441
	((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-3479"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6442
	TUint16* glyphs = CONST_CAST(TUint16*,aExpectedGlyphs.Ptr());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6443
	const TInt mask = 0x80000000-1;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6444
	TBool r;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6445
	RShapeInfo shapeInfo;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6446
	aParam.iText.Set(aText); 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6447
	aParam.iPosInText = aParam.iPen.iX = aParam.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6448
	while(aParam.iPosInText < aParam.iText.Length())
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6449
		{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6450
		r = aFont->GetCharacterPosition2(aParam,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6451
		//INFO_PRINTF3(_L("Glyph %d Icode 0x%x"),*glyphs,aParam.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6452
		TEST(r && ((aParam.iOutput[0].iCode & mask) == *glyphs++));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6453
		}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6454
	shapeInfo.Close();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6455
	TRAPD(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6456
    	if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6457
    		INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6458
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6459
void CTGlyphSelection::TestTeluguChars(CFbsFont* aFont)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6460
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6461
INFO_PRINTF1(_L("Test Telugu Glyphs"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6462
 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6463
  	TBool r;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6464
	TBuf<162> testText(0);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6465
	CFont::TPositionParam param;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6466
	param.iDirection = CFont::EHorizontal;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6467
	param.iFlags = CFont::TPositionParam::EFLogicalOrder;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6468
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6469
	testText.SetLength(162);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6470
	// Make sure there is no garbage values in the memory we are using.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6471
	for (TInt i = 0; i < testText.Length(); i++)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6472
		testText[i]=0xFFFF;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6473
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6474
	param.iText.Set(testText);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6475
	RShapeInfo shapeInfo;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6476
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6477
	//Testdata for Telugu Langauage
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6478
	((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4033"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6479
/*	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6480
@SYMTestCaseID GRAPHICS-SYSLIB-GDI-CIT-4033
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6481
@SYMTestCaseDesc Automated GDI testing for Telugu
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6482
@SYMTestPriority High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6483
@SYMTestActions  Attempt to compose various valid Telugu glyph clusters to test   	 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6484
				 These consonants contain a small tick mark (crest) at the top of the glyph. This graphical detail can be considered to be a vocalic stem that indirectly indicates the inherent vowel /-a/. VIRAMA replaces the vocalic stem.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6485
@@SYMTestExpectedResults The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6486
@SYMPREQ 1766: Tamil for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6487
@SYMREQ 8743:Tamil Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6488
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6489
//	Req 4.1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6490
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6491
		testText[0] =  0x0C15;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6492
		testText[1] =  0x0C4D;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6493
		param.iPosInText = 0 ;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6494
		param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6495
		r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6496
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6497
		TEST(r && param.iPosInText == 2  
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6498
			   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6499
			   && param.iOutput[0].iCode == 0x80000f49 );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6500
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6501
		#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6502
		TEST(r && param.iPen.iX == 9);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6503
		#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6504
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6505
		INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6506
		TRAPD(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6507
    		if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6508
    			INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6509
		((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4034"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6510
/*	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6511
@SYMTestCaseID GRAPHICS-SYSLIB-GDI-CIT-4034
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6512
@SYMTestCaseDesc Automated GDI testing for Telugu
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6513
@SYMTestPriority High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6514
@SYMTestActions  Attempt to compose various valid Telugu glyph clusters to test   	 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6515
				?VIRAMA attaches the upward stroke at the right of the glyph.	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6516
@@SYMTestExpectedResults The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6517
@SYMPREQ 1766: Tamil for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6518
@SYMREQ 8743:Tamil Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6519
*/		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6520
		testText[2] =  0x0C16;		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6521
		testText[3] =  0x0C4D;	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6522
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6523
		param.iPosInText = 2 ;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6524
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6525
		 param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6526
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6527
		r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6528
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6529
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6530
		TEST(r && param.iPosInText ==  4 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6531
			   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6532
			   && param.iOutput[0].iCode == 0x80000f4a);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6533
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6534
		#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6535
		TEST(r && param.iPen.iX == 13);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6536
		#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6537
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6538
		INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6539
		TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6540
    		if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6541
    			INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6542
		((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4035"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6543
/*	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6544
@SYMTestCaseID GRAPHICS-SYSLIB-GDI-CIT-4035
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6545
@SYMTestCaseDesc Automated GDI testing for Telugu
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6546
@SYMTestPriority High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6547
@SYMTestActions  Attempt to compose various valid Telugu glyph clusters to test   	 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6548
?VIRAMA is attached to a stroke at the upper right corner.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6549
@@SYMTestExpectedResults The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6550
@SYMPREQ 1766: Tamil for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6551
@SYMREQ 8743:Tamil Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6552
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6553
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6554
		testText[4] =  0x0C23;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6555
		testText[5] =  0x0C4D;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6556
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6557
		param.iPosInText = 4 ;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6558
		param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6559
		r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6560
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6561
		TEST(r && param.iPosInText == 6  
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6562
			   && param.iOutputGlyphs == 1 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6563
			   && param.iOutput[0].iCode == 0x80000f57 );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6564
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6565
		#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6566
		TEST(r && param.iPen.iX == 13);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6567
		#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6568
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6569
		INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6570
		TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6571
    		if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6572
    			INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6573
		((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4036"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6574
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6575
@SYMTestCaseID GRAPHICS-SYSLIB-GDI-CIT-4036
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6576
@SYMTestCaseDesc Automated GDI testing for Telugu
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6577
@SYMTestPriority High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6578
@SYMTestActions  Attempt to compose various valid Telugu glyph clusters to test   	 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6579
Matras MATRA VOCALIC R and MATRA VOCALIC RR never attach the consonant glyph causing shape changes, but they are always placed at the right of the consonant glyph.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6580
@@SYMTestExpectedResults The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6581
@SYMPREQ 1766: Tamil for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6582
@SYMREQ 8743:Tamil Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6583
*/		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6584
	//Req 4.2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6585
		testText[6] =  0x0C2E;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6586
		testText[7] =  0x0C43;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6587
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6588
		param.iPosInText = 6 ;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6589
		param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6590
		r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6591
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6592
		TEST(r && param.iPosInText ==  8 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6593
			   && param.iOutputGlyphs == 2 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6594
			   && param.iOutput[0].iCode == 0x80000f21
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6595
			   && param.iOutput[1].iCode == 0x80000f31 );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6596
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6597
		#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6598
		TEST(r && param.iPen.iX == 24);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6599
		#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6600
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6601
		INFO_PRINTF6(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6602
		TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6603
    		if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6604
    			INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6605
		((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4037"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6606
		/*	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6607
@SYMTestCaseID GRAPHICS-SYSLIB-GDI-CIT-4037
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6608
@SYMTestCaseDesc Automated GDI testing for Telugu
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6609
@SYMTestPriority High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6610
@SYMTestActions  Attempt to compose various valid Telugu glyph clusters to test   	 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6611
Matras MATRA VOCALIC R and MATRA VOCALIC RR never attach the consonant glyph causing shape changes, but they are always placed at the right of the consonant glyph.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6612
@@SYMTestExpectedResults The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6613
@SYMPREQ 1766: Tamil for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6614
@SYMREQ 8743:Tamil Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6615
*/	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6616
		testText[8] =  0x0C32;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6617
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6618
		testText[9] =  0x0C44;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6619
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6620
		param.iPosInText = 8 ;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6621
		param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6622
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6623
		r = aFont->GetCharacterPosition2(param,shapeInfo);	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6624
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6625
		TEST(r && param.iPosInText ==  10 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6626
			   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6627
			   && param.iOutput[0].iCode == 0x80000f25
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6628
			   && param.iOutput[1].iCode == 0x80000f32);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6629
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6630
		#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6631
		TEST(r && param.iPen.iX == 22);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6632
		#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6633
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6634
		INFO_PRINTF6(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6635
		TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6636
    		if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6637
    			INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6638
		((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4038"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6639
		/*	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6640
@SYMTestCaseID GRAPHICS-SYSLIB-GDI-CIT-4038
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6641
@SYMTestCaseDesc Automated GDI testing for Telugu
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6642
@SYMTestPriority High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6643
@SYMTestActions  Attempt to compose various valid Telugu glyph clusters to test   	 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6644
?Matras MATRA VOCALIC R and MATRA VOCALIC RR never attach the consonant glyph causing shape changes, but they are always placed at the right of the consonant glyph.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6645
@@SYMTestExpectedResults The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6646
@SYMPREQ 1766: Tamil for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6647
@SYMREQ 8743:Tamil Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6648
*/		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6649
	//Req 4.2.1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6650
		testText[10] = 0x0C15; 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6651
		testText[11] = 0x0C3E;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6652
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6653
		param.iPosInText = 10 ;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6654
		param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6655
		r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6656
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6657
		TEST(r && param.iPosInText == 12  
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6658
			   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6659
			   && param.iOutput[0].iCode == 0x80000f6d );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6660
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6661
		#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6662
		TEST(r && param.iPen.iX == 13);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6663
		#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6664
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6665
		INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6666
		TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6667
    		if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6668
    			INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6669
		((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4039"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6670
		/*	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6671
@SYMTestCaseID GRAPHICS-SYSLIB-GDI-CIT-4039
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6672
@SYMTestCaseDesc Automated GDI testing for Telugu
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6673
@SYMTestPriority High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6674
@SYMTestActions  Attempt to compose various valid Telugu glyph clusters to test   	 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6675
?MATRA AA attaches to the upwards left curving stroke
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6676
@@SYMTestExpectedResults The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6677
@SYMPREQ 1766: Tamil for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6678
@SYMREQ 8743:Tamil Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6679
*/	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6680
		testText[12] = 0x0C1F;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6681
		testText[13] = 0x0C3E;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6682
		param.iPosInText = 12 ;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6683
		param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6684
		r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6685
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6686
		TEST(r && param.iPosInText == 14  
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6687
			   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6688
			   && param.iOutput[0].iCode == 0x80000f77 );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6689
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6690
		#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6691
		TEST(r && param.iPen.iX == 16);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6692
		#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6693
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6694
		INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6695
		TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6696
    		if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6697
    			INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6698
		((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4040"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6699
		/*	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6700
@SYMTestCaseID GRAPHICS-SYSLIB-GDI-CIT-4040
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6701
@SYMTestCaseDesc Automated GDI testing for Telugu
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6702
@SYMTestPriority High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6703
@SYMTestActions  Attempt to compose various valid Telugu glyph clusters to test   	 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6704
?MATRA AA attaches the upwards (left curving) stroke at the top of the glyph
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6705
@@SYMTestExpectedResults The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6706
@SYMPREQ 1766: Tamil for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6707
@SYMREQ 8743:Tamil Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6708
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6709
		testText[14] = 0x0C1C;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6710
		testText[15] = 0x0C3E;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6711
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6712
		param.iPosInText = 14 ;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6713
		param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6714
		r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6715
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6716
		TEST(r && param.iPosInText == 16  
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6717
			   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6718
			   && param.iOutput[0].iCode == 0x80000f74 );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6719
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6720
		#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6721
		TEST(r && param.iPen.iX == 15);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6722
		#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6723
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6724
		INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6725
		TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6726
    		if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6727
    			INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6728
		((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4041"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6729
		/*	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6730
@SYMTestCaseID GRAPHICS-SYSLIB-GDI-CIT-4041
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6731
@SYMTestCaseDesc Automated GDI testing for Telugu
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6732
@SYMTestPriority High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6733
@SYMTestActions  Attempt to compose various valid Telugu glyph clusters to test   	 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6734
?MATRA AA is drawn on top of the glyph
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6735
@@SYMTestExpectedResults The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6736
@SYMPREQ 1766: Tamil for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6737
@SYMREQ 8743:Tamil Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6738
*/	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6739
		testText[16] = 0x0C23;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6740
		testText[17] = 0x0C3E;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6741
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6742
		param.iPosInText = 16 ;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6743
		param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6744
		r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6745
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6746
		TEST(r && param.iPosInText == 18  
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6747
			   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6748
			   && param.iOutput[0].iCode == 0x80000f7b );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6749
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6750
		#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6751
		TEST(r && param.iPen.iX == 16);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6752
		#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6753
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6754
		INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6755
		TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6756
    		if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6757
    			INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6758
		((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4042"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6759
		/*	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6760
@SYMTestCaseID GRAPHICS-SYSLIB-GDI-CIT-4042
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6761
@SYMTestCaseDesc Automated GDI testing for Telugu
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6762
@SYMTestPriority High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6763
@SYMTestActions  Attempt to compose various valid Telugu glyph clusters to test   	 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6764
?MATRA AA attaches to the upwards left curving stroke, the vowel stem remains intact
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6765
@@SYMTestExpectedResults The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6766
@SYMPREQ 1766: Tamil for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6767
@SYMREQ 8743:Tamil Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6768
*/	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6769
		testText[18] = 0x0C2B;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6770
		testText[19] = 0x0C3E;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6771
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6772
		param.iPosInText = 18 ;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6773
		param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6774
						
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6775
		r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6776
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6777
		TEST(r && param.iPosInText == 20  
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6778
			   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6779
			   && param.iOutput[0].iCode == 0x80000f82 );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6780
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6781
		#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6782
		TEST(r && param.iPen.iX == 16);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6783
		#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6784
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6785
		INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6786
		TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6787
    		if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6788
    			INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6789
		((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4043"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6790
		/*	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6791
@SYMTestCaseID GRAPHICS-SYSLIB-GDI-CIT-4043
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6792
@SYMTestCaseDesc Automated GDI testing for Telugu
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6793
@SYMTestPriority High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6794
@SYMTestActions  Attempt to compose various valid Telugu glyph clusters to test   	 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6795
?MATRA AA replaces the vowel stem, the upwards left curving stroke is extended
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6796
@@SYMTestExpectedResults The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6797
@SYMPREQ 1766: Tamil for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6798
@SYMREQ 8743:Tamil Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6799
*/	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6800
		testText[20] = 0x0C2A;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6801
		testText[21] = 0x0C3E;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6802
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6803
		param.iPosInText = 20 ;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6804
		param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6805
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6806
		r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6807
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6808
		TEST(r && param.iPosInText == 22   
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6809
			   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6810
			   && param.iOutput[0].iCode == 0x80000f81);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6811
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6812
		#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6813
		TEST(r && param.iPen.iX == 16);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6814
		#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6815
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6816
		INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6817
		TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6818
    		if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6819
    			INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6820
		((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4044"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6821
	//Req 4.2.2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6822
	/*	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6823
@SYMTestCaseID GRAPHICS-SYSLIB-GDI-CIT-4044
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6824
@SYMTestCaseDesc Automated GDI testing for Telugu
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6825
@SYMTestPriority High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6826
@SYMTestActions  Attempt to compose various valid Telugu glyph clusters to test   	 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6827
?Vowel sign replaces the vowel stem
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6828
@@SYMTestExpectedResults The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6829
@SYMPREQ 1766: Tamil for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6830
@SYMREQ 8743:Tamil Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6831
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6832
		testText[22] = 0x0C26;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6833
		testText[23] = 0x0C3F;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6834
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6835
		param.iPosInText = 22 ;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6836
		param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6837
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6838
		r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6839
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6840
		TEST(r && param.iPosInText ==  24 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6841
			   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6842
			   && param.iOutput[0].iCode == 0x80000fa2 );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6843
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6844
		#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6845
		TEST(r && param.iPen.iX == 11);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6846
		#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6847
			
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6848
		INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6849
		TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6850
    		if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6851
    			INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6852
		((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4045"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6853
		/*	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6854
@SYMTestCaseID GRAPHICS-SYSLIB-GDI-CIT-4045
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6855
@SYMTestCaseDesc Automated GDI testing for Telugu
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6856
@SYMTestPriority High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6857
@SYMTestActions  Attempt to compose various valid Telugu glyph clusters to test   	 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6858
?The upwards left curving stroke extends, vowel sign attaches to the extended stroke
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6859
@@SYMTestExpectedResults The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6860
@SYMPREQ 1766: Tamil for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6861
@SYMREQ 8743:Tamil Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6862
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6863
		testText[24] = 0x0C16;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6864
		testText[25] = 0x0C3F;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6865
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6866
		param.iPosInText = 24 ;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6867
		param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6868
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6869
		r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6870
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6871
		TEST(r && param.iPosInText == 26  
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6872
			   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6873
			   && param.iOutput[0].iCode == 0x80000f92);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6874
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6875
		#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6876
		TEST(r && param.iPen.iX == 12);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6877
		#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6878
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6879
		INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6880
		TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6881
    		if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6882
    			INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6883
		((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4046"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6884
		/*	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6885
@SYMTestCaseID GRAPHICS-SYSLIB-GDI-CIT-4046
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6886
@SYMTestCaseDesc Automated GDI testing for Telugu
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6887
@SYMTestPriority High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6888
@SYMTestActions  Attempt to compose various valid Telugu glyph clusters to test   	 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6889
?Vowel sign attaches the upward stroke at the top of the glyph
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6890
@@SYMTestExpectedResults The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6891
@SYMPREQ 1766: Tamil for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6892
@SYMREQ 8743:Tamil Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6893
*/	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6894
		testText[26] = 0x0C1C;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6895
		testText[27] = 0x0C3F;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6896
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6897
		param.iPosInText = 26 ;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6898
		param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6899
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6900
		r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6901
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6902
		TEST(r && param.iPosInText == 28  
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6903
			   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6904
			   && param.iOutput[0].iCode == 0x80000f98 );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6905
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6906
		#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6907
		TEST(r && param.iPen.iX == 12);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6908
		#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6909
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6910
		INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6911
		TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6912
    		if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6913
    			INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6914
		((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4047"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6915
		/*	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6916
@SYMTestCaseID GRAPHICS-SYSLIB-GDI-CIT-4047
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6917
@SYMTestCaseDesc Automated GDI testing for Telugu
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6918
@SYMTestPriority High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6919
@SYMTestActions  Attempt to compose various valid Telugu glyph clusters to test   	 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6920
?Vowel sign attaches the upward stroke at the top of the glyph
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6921
@@SYMTestExpectedResults The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6922
@SYMPREQ 1766: Tamil for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6923
@SYMREQ 8743:Tamil Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6924
*/		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6925
		testText[28] = 0x0C1E;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6926
		testText[29] = 0x0C40;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6927
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6928
		param.iPosInText = 28 ;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6929
		param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6930
				
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6931
		r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6932
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6933
		TEST(r && param.iPosInText == 30  
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6934
			   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6935
			   && param.iOutput[0].iCode == 0x80000fbe );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6936
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6937
		#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6938
		TEST(r && param.iPen.iX == 14);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6939
		#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6940
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6941
		INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6942
		TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6943
    		if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6944
    			INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6945
		((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4048"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6946
		/*	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6947
@SYMTestCaseID GRAPHICS-SYSLIB-GDI-CIT-4048
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6948
@SYMTestCaseDesc Automated GDI testing for Telugu
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6949
@SYMTestPriority High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6950
@SYMTestActions  Attempt to compose various valid Telugu glyph clusters to test   	 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6951
?Vowel sign attaches to the right upper corner of the glyph
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6952
@@SYMTestExpectedResults The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6953
@SYMPREQ 1766: Tamil for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6954
@SYMREQ 8743:Tamil Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6955
*/		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6956
		testText[30] = 0x0C1F;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6957
		testText[31] = 0x0C3F;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6958
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6959
		param.iPosInText = 30;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6960
		param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6961
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6962
		r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6963
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6964
		TEST(r && param.iPosInText == 32  
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6965
			   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6966
			   && param.iOutput[0].iCode ==  0x80000f9b );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6967
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6968
		#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6969
		TEST(r && param.iPen.iX == 12);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6970
		#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6971
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6972
		INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6973
		TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6974
    		if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6975
    			INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6976
		((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4049"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6977
		/*	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6978
@SYMTestCaseID GRAPHICS-SYSLIB-GDI-CIT-4049
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6979
@SYMTestCaseDesc Automated GDI testing for Telugu
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6980
@SYMTestPriority High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6981
@SYMTestActions  Attempt to compose various valid Telugu glyph clusters to test   	 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6982
?Vowel sign takes a loop form that replaces the vowel stem
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6983
@@SYMTestExpectedResults The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6984
@SYMPREQ 1766: Tamil for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6985
@SYMREQ 8743:Tamil Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6986
*/		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6987
		testText[32] = 0x0C1D;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6988
		testText[33] = 0x0C3F;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6989
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6990
		param.iPosInText = 32 ;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6991
		param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6992
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6993
		r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6994
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6995
		TEST(r && param.iPosInText ==  34 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6996
			   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6997
			   && param.iOutput[0].iCode ==  0x80000f99 );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6998
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  6999
		#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7000
		TEST(r && param.iPen.iX == 19);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7001
		#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7002
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7003
		INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7004
		TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7005
    		if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7006
    			INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7007
		((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4050"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7008
		/*	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7009
@SYMTestCaseID GRAPHICS-SYSLIB-GDI-CIT-4050
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7010
@SYMTestCaseDesc Automated GDI testing for Telugu
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7011
@SYMTestPriority High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7012
@SYMTestActions  Attempt to compose various valid Telugu glyph clusters to test   	 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7013
?The upwards left curving stroke extends, vowel sign replaces the vowel stem at the tip of the extended stroke 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7014
@@SYMTestExpectedResults The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7015
@SYMPREQ 1766: Tamil for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7016
@SYMREQ 8743:Tamil Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7017
*/	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7018
		testText[34] = 0x0C1B;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7019
		testText[35] = 0x0C3F;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7020
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7021
	 	param.iPosInText =34 ;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7022
		param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7023
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7024
		r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7025
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7026
		TEST(r && param.iPosInText == 36 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7027
			   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7028
			   && param.iOutput[0].iCode == 0x80000f97 );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7029
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7030
		#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7031
		TEST(r && param.iPen.iX == 12);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7032
		#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7033
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7034
		INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7035
		TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7036
    		if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7037
    			INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7038
		((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4051"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7039
		/*	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7040
@SYMTestCaseID GRAPHICS-SYSLIB-GDI-CIT-4051
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7041
@SYMTestCaseDesc Automated GDI testing for Telugu
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7042
@SYMTestPriority High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7043
@SYMTestActions  Attempt to compose various valid Telugu glyph clusters to test   	 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7044
?Vowel sign replaces the upwards curving stroke at the top of the glyph
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7045
@@SYMTestExpectedResults The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7046
@SYMPREQ 1766: Tamil for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7047
@SYMREQ 8743:Tamil Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7048
*/		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7049
		testText[36] = 0x0C1C;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7050
		testText[37] = 0x0C3F;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7051
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7052
		param.iPosInText = 36 ;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7053
		param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7054
					
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7055
		r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7056
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7057
		TEST(r && param.iPosInText == 38  
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7058
			   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7059
			   && param.iOutput[0].iCode == 0x80000f98 );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7060
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7061
		#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7062
		TEST(r && param.iPen.iX == 12);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7063
		#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7064
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7065
		INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7066
		TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7067
    		if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7068
    			INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7069
		((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4052"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7070
		/*	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7071
@SYMTestCaseID GRAPHICS-SYSLIB-GDI-CIT-4052
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7072
@SYMTestCaseDesc Automated GDI testing for Telugu
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7073
@SYMTestPriority High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7074
@SYMTestActions  Attempt to compose various valid Telugu glyph clusters to test   	 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7075
?Vowel stem is removed.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7076
?Vowel stem is removed and MATRA II takes a form that looks like MATRA AA
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7077
@@SYMTestExpectedResults The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7078
@SYMPREQ 1766: Tamil for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7079
@SYMREQ 8743:Tamil Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7080
*/		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7081
		testText[38] = 0x0C2F;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7082
		testText[39] = 0x0C3F;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7083
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7084
		param.iPosInText = 38 ;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7085
		param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7086
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7087
		r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7088
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7089
		TEST(r && param.iPosInText == 40 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7090
			   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7091
			   && param.iOutput[0].iCode == 0x80000faa );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7092
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7093
		#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7094
		TEST(r && param.iPen.iX == 19);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7095
		#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7096
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7097
		INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7098
		TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7099
    		if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7100
    			INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7101
		((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4053"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7102
		/*	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7103
@SYMTestCaseID GRAPHICS-SYSLIB-GDI-CIT-4053
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7104
@SYMTestCaseDesc Automated GDI testing for Telugu
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7105
@SYMTestPriority High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7106
@SYMTestActions  Attempt to compose various valid Telugu glyph clusters to test   	 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7107
?Vowel sign attaches to the right of the consonant glyph, vowel stem remains intact
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7108
@@SYMTestExpectedResults The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7109
@SYMPREQ 1766: Tamil for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7110
@SYMREQ 8743:Tamil Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7111
*/	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7112
		testText[40] = 0x0C15;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7113
		testText[41] = 0x0C41;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7114
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7115
		param.iPosInText = 40 ;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7116
		param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7117
		r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7118
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7119
		TEST(r && param.iPosInText ==42   
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7120
			   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7121
			   && param.iOutput[0].iCode == 0x80000fd9 );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7122
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7123
		#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7124
		TEST(r && param.iPen.iX == 14);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7125
		#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7126
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7127
		INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7128
		TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7129
    		if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7130
    			INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7131
		((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4054"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7132
		/*	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7133
@SYMTestCaseID GRAPHICS-SYSLIB-GDI-CIT-4054
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7134
@SYMTestCaseDesc Automated GDI testing for Telugu
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7135
@SYMTestPriority High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7136
@SYMTestActions  Attempt to compose various valid Telugu glyph clusters to test   	 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7137
?Vowel sign takes a miniature form which attaches to the stroke at the top of the consonant glyph
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7138
@@SYMTestExpectedResults The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7139
@SYMPREQ 1766: Tamil for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7140
@SYMREQ 8743:Tamil Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7141
*/	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7142
		testText[42] = 0x0C19;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7143
		testText[43] = 0x0C41;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7144
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7145
		param.iPosInText = 42 ;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7146
		param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7147
						
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7148
		r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7149
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7150
		TEST(r && param.iPosInText ==  44 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7151
			   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7152
			   && param.iOutput[0].iCode == 0x80000fda );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7153
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7154
		#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7155
		TEST(r && param.iPen.iX == 15);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7156
		#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7157
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7158
		INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7159
		TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7160
    		if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7161
    			INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7162
		((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4055"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7163
		/*	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7164
@SYMTestCaseID GRAPHICS-SYSLIB-GDI-CIT-4055
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7165
@SYMTestCaseDesc Automated GDI testing for Telugu
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7166
@SYMTestPriority High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7167
@SYMTestActions  Attempt to compose various valid Telugu glyph clusters to test   	 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7168
?Vowel sign attaches the consonant sign from below. Vowel stem remains intact.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7169
@@SYMTestExpectedResults The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7170
@SYMPREQ 1766: Tamil for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7171
@SYMREQ 8743:Tamil Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7172
*/	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7173
		testText[44] = 0x0C2E;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7174
		testText[45] = 0x0C41;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7175
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7176
		param.iPosInText = 44 ;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7177
		param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7178
		r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7179
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7180
		TEST(r && param.iPosInText == 46   
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7181
			   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7182
			   && param.iOutput[0].iCode == 0x80000f21 );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7183
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7184
		#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7185
		TEST(r && param.iPen.iX == 21);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7186
		#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7187
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7188
		INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7189
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7190
		testText[46] = 0x0C36;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7191
		testText[47] = 0x0C41;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7192
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7193
		param.iPosInText = 46 ;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7194
		param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7195
		r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7196
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7197
		TEST(r && param.iPosInText == 48   
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7198
			   && param.iOutputGlyphs == 2 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7199
			   && param.iOutput[0].iCode == 0x80000f28 );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7200
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7201
		#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7202
		TEST(r && param.iPen.iX == 14);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7203
		#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7204
			
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7205
		INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7206
		TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7207
    		if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7208
    			INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7209
		((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4056"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7210
		/*	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7211
@SYMTestCaseID GRAPHICS-SYSLIB-GDI-CIT-4056
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7212
@SYMTestCaseDesc Automated GDI testing for Telugu
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7213
@SYMTestPriority High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7214
@SYMTestActions  Attempt to compose various valid Telugu glyph clusters to test   	 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7215
?Vowel sign replaces the vowel stem
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7216
@@SYMTestExpectedResults The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7217
@SYMPREQ 1766: Tamil for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7218
@SYMREQ 8743:Tamil Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7219
*/		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7220
//	Req 4.2.4
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7221
		testText[48] = 0x0C28;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7222
		testText[49] = 0x0C46;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7223
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7224
		param.iPosInText = 48 ;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7225
		param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7226
		r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7227
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7228
		TEST(r && param.iPosInText == 50   
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7229
			   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7230
			   && param.iOutput[0].iCode == 0x80001000 );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7231
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7232
		#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7233
		TEST(r && param.iPen.iX == 11);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7234
		#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7235
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7236
		INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7237
		TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7238
    		if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7239
    			INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7240
		((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4057"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7241
		/*	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7242
@SYMTestCaseID GRAPHICS-SYSLIB-GDI-CIT-4057
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7243
@SYMTestCaseDesc Automated GDI testing for Telugu
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7244
@SYMTestPriority High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7245
@SYMTestActions  Attempt to compose various valid Telugu glyph clusters to test   	 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7246
?Vowel sign replaces the vowel stem
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7247
@@SYMTestExpectedResults The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7248
@SYMPREQ 1766: Tamil for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7249
@SYMREQ 8743:Tamil Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7250
*/		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7251
		testText[50] = 0x0C1B;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7252
		testText[51] = 0x0C47;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7253
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7254
		param.iPosInText = 50 ;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7255
		param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7256
		r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7257
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7258
		TEST(r && param.iPosInText ==  52 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7259
			   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7260
			   && param.iOutput[0].iCode == 0x80001017 );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7261
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7262
		#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7263
		TEST(r && param.iPen.iX == 12);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7264
		#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7265
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7266
		INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7267
		TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7268
    		if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7269
    			INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7270
		((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4058"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7271
		/*	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7272
@SYMTestCaseID GRAPHICS-SYSLIB-GDI-CIT-4058
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7273
@SYMTestCaseDesc Automated GDI testing for Telugu
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7274
@SYMTestPriority High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7275
@SYMTestActions  Attempt to compose various valid Telugu glyph clusters to test   	 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7276
?Vowel sign replaces the vowel stem
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7277
@@SYMTestExpectedResults The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7278
@SYMPREQ 1766: Tamil for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7279
@SYMREQ 8743:Tamil Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7280
*/		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7281
		testText[52] = 0x0C1D;	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7282
		testText[53] = 0x0C48;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7283
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7284
		param.iPosInText = 52 ;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7285
		param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7286
		r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7287
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7288
		TEST(r && param.iPosInText ==  54 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7289
			   && param.iOutputGlyphs == 2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7290
			   && param.iOutput[0].iCode == 0x80000ff5
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7291
			   && param.iOutput[1].iCode == 0x80000f3b );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7292
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7293
		#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7294
		TEST(r && param.iPen.iX == 19);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7295
		#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7296
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7297
		INFO_PRINTF6(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x iOutput[1].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode, param.iOutput[1].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7298
		TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7299
    		if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7300
    			INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7301
		((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4059"));	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7302
		/*	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7303
@SYMTestCaseID GRAPHICS-SYSLIB-GDI-CIT-4059
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7304
@SYMTestCaseDesc Automated GDI testing for Telugu
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7305
@SYMTestPriority High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7306
@SYMTestActions  Attempt to compose various valid Telugu glyph clusters to test   	 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7307
?Vowel sign replaces the vowel stem.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7308
@@SYMTestExpectedResults The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7309
@SYMPREQ 1766: Tamil for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7310
@SYMREQ 8743:Tamil Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7311
*/	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7312
	// Req 4.2.5
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7313
		testText[54] = 0x0C15;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7314
		testText[55] = 0x0C4A;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7315
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7316
		param.iPosInText = 54 ;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7317
		param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7318
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7319
		r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7320
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7321
		TEST(r && param.iPosInText ==  56 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7322
			   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7323
			   && param.iOutput[0].iCode == 0x80001059 );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7324
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7325
		#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7326
		TEST(r && param.iPen.iX == 13);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7327
		#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7328
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7329
		INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7330
		TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7331
    		if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7332
    			INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7333
		((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4060"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7334
		/*	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7335
@SYMTestCaseID GRAPHICS-SYSLIB-GDI-CIT-4060
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7336
@SYMTestCaseDesc Automated GDI testing for Telugu
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7337
@SYMTestPriority High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7338
@SYMTestActions  Attempt to compose various valid Telugu glyph clusters to test   	 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7339
?Vowel sign replaces the vowel stem.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7340
@@SYMTestExpectedResults The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7341
@SYMPREQ 1766: Tamil for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7342
@SYMREQ 8743:Tamil Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7343
*/	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7344
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7345
		testText[56] = 0x0C21;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7346
		testText[57] = 0x0C4B;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7347
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7348
		param.iPosInText = 56 ;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7349
		param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7350
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7351
		r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7352
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7353
		TEST(r && param.iPosInText ==  58 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7354
			   && param.iOutputGlyphs == 1 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7355
			   && param.iOutput[0].iCode == 0x80001089 );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7356
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7357
		#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7358
		TEST(r && param.iPen.iX == 14);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7359
		#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7360
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7361
		INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7362
		TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7363
    		if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7364
    			INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7365
		((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-4061"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7366
		/*	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7367
@SYMTestCaseID GRAPHICS-SYSLIB-GDI-CIT-4061
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7368
@SYMTestCaseDesc Automated GDI testing for Telugu
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7369
@SYMTestPriority High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7370
@SYMTestActions  Attempt to compose various valid Telugu glyph clusters to test   	 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7371
?Vowel sign replaces the vowel stem.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7372
@@SYMTestExpectedResults The expected glyph clusters for given Unicode characters must be returned
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7373
@SYMPREQ 1766: Tamil for Sphinx
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7374
@SYMREQ 8743:Tamil Text Rendering
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7375
*/	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7376
		testText[58] = 0x0C26;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7377
		testText[59] = 0x0C4C;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7378
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7379
		param.iPosInText = 58 ;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7380
		param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7381
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7382
		r = aFont->GetCharacterPosition2(param,shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7383
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7384
		TEST(r && param.iPosInText == 60   
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7385
			   && param.iOutputGlyphs == 1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7386
			   && param.iOutput[0].iCode == 0x800010b2 );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7387
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7388
		#if defined __WINS__ || defined __WINSCW__
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7389
		TEST(r && param.iPen.iX == 14);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7390
		#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7391
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7392
		INFO_PRINTF5(_L("The values are  iPosInText=%d iPen.iX=%d iOutputGlyphs=%d iOutput[0].iCode=0x%x"), param.iPosInText, param.iPen.iX, param.iOutputGlyphs, param.iOutput[0].iCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7393
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7394
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7395
void CTGlyphSelection::TestIndicPunctuation(CFbsFont* aFont)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7396
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7397
	INFO_PRINTF1(_L("Test Indic Punctuation"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7398
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7399
	CFont::TPositionParam param;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7400
	param.iDirection = CFont::EHorizontal;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7401
	param.iFlags = CFont::TPositionParam::EFLogicalOrder;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7402
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7403
	//INFO_PRINTF1(_L("// punctuation string after Kannada text"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7404
	TestGlyphs(aFont,param,_L("\xC95!?#@"),_L("\x7A8\x920\x93C\x922\x23"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7405
	//INFO_PRINTF1(_L("// punctuation string before Kannada text"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7406
	TestGlyphs(aFont,param,_L("!?#@\xC95"),_L("\x21\x3F\x23\x40\x7A8"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7407
	//INFO_PRINTF1(_L("// punctuation string before and after Kannada text"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7408
	TestGlyphs(aFont,param,_L("  \"\xC95\"  "),_L("\x20\x20\x22\x7A8\x22\x20\x20"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7409
	//INFO_PRINTF1(_L("// punctuation before and after latin text followed by punctuation before and after kannada text"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7410
	TestGlyphs(aFont,param,_L("\x201c\x041\x201D (\xc95)"),_L("\x201c\x41\x201d\x20\x28\x7a8\x29"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7411
	//INFO_PRINTF1(_L("// mixed kannada/ latin with punctuation surrounded by whitespace inbetween"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7412
	TestGlyphs(aFont,param,_L("\xc95 , \x041"),_L("\x7a8\x20\x929\x20\x41"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7413
	//INFO_PRINTF1(_L("// mixed kannada/ latin with punctuation surrounded by whitespace inbetween (reversed)"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7414
	TestGlyphs(aFont,param,_L("\x041 , \xc95"),_L("\x41\x20\x2C\x20\x7a8"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7415
	//INFO_PRINTF1(_L("// mixed kannada/ latin with punctuation next to latin"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7416
	TestGlyphs(aFont,param,_L("\x041, \xc95"),_L("\x41\x2C\x20\x7a8"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7417
	//INFO_PRINTF1(_L("// mixed kannada/ latin with punctuation next to kannada"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7418
	TestGlyphs(aFont,param,_L("\x041 ,\xc95"),_L("\x41\x20\x2C\x7a8"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7419
	//INFO_PRINTF1(_L("// mixed kannada/ latin with punctuation next to latin and seperating tab"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7420
	TestGlyphs(aFont,param,_L("\x041,\t\xc95"),_L("\x41\x2C\x9\x7a8"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7421
	//INFO_PRINTF1(_L("// mixed kannada/ latin with punctuation next to kannada and seperating tab"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7422
	TestGlyphs(aFont,param,_L("\x041\t,\xc95"),_L("\x41\x9\x2C\x7a8"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7423
	//INFO_PRINTF1(_L("// devanagari digits with colons"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7424
	TestGlyphs(aFont,param,_L("\x966\x03a\x967\x03a\x968\x03a\x969\x03a\x96a\x03a\x96b\x03a\x96c\x03a\x96d\x03a\x96e\x03a\x96f\x03a"),
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7425
										_L("\x582\x77e\x583\x77e\x584\x77e\x585\x77e\x586\x77e\x587\x77e\x588\x77e\x589\x77e\x58a\x77e\x58b\x77e"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7426
	//INFO_PRINTF1(_L("// string of only punctuation"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7427
	TestGlyphs(aFont,param,_L("\x002D\x002D\x002D\x002D\x002D\x002D"),_L("\x002D\x002D\x002D\x002D\x002D\x002D"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7428
	//INFO_PRINTF1(_L("// one Kannada character followed my multiple punctuation and non-punctuaion"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7429
	TestGlyphs(aFont,param,_L("\x0C95!\x0022\x00A3$%^&*()-={}[]:@~;'#<>?,./"),
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7430
										_L("\x07A8\x0920\x0022\x00A3\x0024\x0923\x005E\x0009\x0927\x0028\x0029\x092A\x003D\x007B\x007D\x005B\x005D\x0937\x0023\x007E\x0938\x0027\x0922\x003C\x003E\x093C\x0929\x092B\x092C"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7431
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7432
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7433
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7434
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7435
void CTGlyphSelection::TestIndicCharsL()
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7436
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7437
	// create a font store for testing
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7438
	CFontStore* fontStore = CFontStore::NewL(&User::Heap());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7439
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7440
	//load all ecom implemented rasterizer dlls. installs the rasterizer.	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7441
	LoadOpenFontLibraries(fontStore);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7442
		// test font preparation
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7443
	fontStore->iKPixelWidthInTwips = 11860; //This value is default
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7444
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7445
	//add any required font files
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7446
	TUid err = fontStore->AddFileL(KTestHindiFontFile);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7447
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7448
	TFontSpec testHindiFontSpec(KTestHindiFontFaceName,200); 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7449
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7450
	TUid err1 = fontStore->AddFileL(KTestIndicFontFile);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7451
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7452
	TFontSpec testIndicFontSpec(KTestIndicFontFaceName,200);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7453
	 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7454
	CFbsBitmap* bmp = new(ELeave) CFbsBitmap;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7455
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7456
	TInt ret = bmp->Create(TSize(100,100),EGray2);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7457
	if (ret == KErrNotSupported)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7458
		return;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7459
	else
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7460
		User::LeaveIfError(ret);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7461
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7462
	CFbsBitmapDevice* device = NULL;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7463
	TRAPD(err2,device = CFbsBitmapDevice::NewL(bmp));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7464
	TEST(err2 == KErrNone);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7465
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7466
	CFbsBitGc* gc = NULL;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7467
	User::LeaveIfError(device->CreateContext(gc));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7468
	// Font file Creation
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7469
	CFbsFont* hindiFont = NULL;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7470
	User::LeaveIfError(device->GetNearestFontToDesignHeightInTwips(hindiFont,testHindiFontSpec));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7471
	gc->UseFont(hindiFont);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7472
	CleanupStack::PushL(hindiFont);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7473
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7474
	//Testcode for Hindi language
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7475
	((CTGlyphSelectionStep*)iStep)->RecordTestResultL();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7476
	((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-1580"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7477
	TestHindiChars(hindiFont);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7478
	((CTGlyphSelectionStep*)iStep)->RecordTestResultL();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7479
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7480
	CleanupStack::Pop(hindiFont);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7481
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7482
	// Font file Creation
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7483
	CFbsFont* indicFont = NULL;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7484
	User::LeaveIfError(device->GetNearestFontToDesignHeightInTwips(indicFont,testIndicFontSpec));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7485
	gc->UseFont(indicFont);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7486
	CleanupStack::PushL(indicFont);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7487
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7488
	//Testcode for Kannada, Marathi,Gujarati,Bengali language
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7489
	((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-3381"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7490
	TestKannadaChars(indicFont);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7491
	((CTGlyphSelectionStep*)iStep)->RecordTestResultL();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7492
	((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-3360"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7493
	TestMarathiChars(indicFont);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7494
	((CTGlyphSelectionStep*)iStep)->RecordTestResultL();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7495
	((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-3417"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7496
	TestGujaratiChars(indicFont);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7497
	TestBengaliChars(indicFont);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7498
	TestTamilChars(indicFont);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7499
	TestTeluguChars(indicFont);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7500
	TestIndicPunctuation(indicFont);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7501
	CleanupStack::Pop(indicFont);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7502
			
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7503
	//Cleaning the memory
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7504
	delete bmp;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7505
	delete device;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7506
	delete gc;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7507
	fontStore->RemoveFile(err);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7508
	fontStore->RemoveFile(err1);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7509
	delete fontStore;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7510
	REComSession::FinalClose();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7511
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7512
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7513
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7514
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7515
/** Tests that ligatures (presently just Lam-Alef in Arabic) work correctly
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7516
when diacritics are required on one, both or neither character comprising the
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7517
ligature. */
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7518
void CTGlyphSelection::TestLigaturesWithDiacritics()
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7519
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7520
	// independent letters
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7521
	const TText KAlef = 0x627;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7522
	const TText KLam = 0x644;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7523
	const TText KBeh = 0x628;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7524
	// dependent marks
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7525
	const TText KFatha = 0x64E;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7526
	const TText KDamma = 0x64F;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7527
	// ligature forms
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7528
	const TText KLamAlefIsolated = 0xFEFB;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7529
	const TText KLamAlefFinal = 0xFEFC;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7530
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7531
	struct TTestCase
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7532
		{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7533
		// Logical order input.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7534
		TText iInputL[8];
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7535
		// Visual order input, should be equivalent to iInputL.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7536
		TText iInputV[8];
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7537
		// Which cluster to test
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7538
		TInt iClusterUnderTestStartL;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7539
		TInt iClusterUnderTestStartV;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7540
		// Expected glyphs to appear (in any order, but...)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7541
		TInt iGlyphs[8];
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7542
		// ...number of glyphs from the start of iGlyphs that
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7543
		// are in order of their expected x-coordinates (of their
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7544
		// centres)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7545
		TInt iGlyphsInOrder;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7546
		};
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7547
	const TTestCase KTestCases[] =
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7548
		{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7549
		{{KLam, KAlef, 0}, {KAlef, KLam, 0},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7550
			0, 0, {KLamAlefIsolated, 0}, 1},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7551
		{{KBeh, KLam, KAlef, KBeh, 0}, {KBeh, KAlef, KLam, KBeh, 0},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7552
			1, 1, {KLamAlefFinal, 0}, 1},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7553
		{{KLam, KFatha, KAlef, 0}, {KAlef, KLam, KFatha, 0},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7554
			0, 0, {KLamAlefIsolated, KFatha, 0}, 1},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7555
		{{KBeh, KLam, KFatha, KAlef, KBeh, 0}, {KBeh, KAlef, KLam, KFatha, KBeh, 0},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7556
			1, 1, {KLamAlefFinal, KFatha, 0}, 1},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7557
		{{KLam, KAlef, KDamma, 0}, {KAlef, KDamma, KLam, 0},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7558
			0, 0, {KLamAlefIsolated, KDamma, 0}, 1},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7559
		{{KBeh, KLam, KAlef, KDamma, KBeh, 0}, {KBeh, KAlef, KDamma, KLam, KBeh, 0},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7560
			1, 1, {KLamAlefFinal, KDamma, 0}, 1},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7561
		{{KLam, KFatha, KAlef, KDamma, 0}, {KAlef, KDamma, KLam, KFatha, 0},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7562
			0, 0, {KDamma, KFatha, KLamAlefIsolated, 0}, 2},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7563
		{{KBeh, KLam, KFatha, KAlef, KDamma, KBeh, 0},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7564
			{KBeh, KAlef, KDamma, KLam, KFatha, KBeh, 0},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7565
			1, 1, {KDamma, KFatha, KLamAlefFinal, 0}, 2},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7566
		};
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7567
	TBuf<8> input;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7568
	CFont::TPositionParam param;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7569
	for (TInt testCase = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7570
		testCase != sizeof(KTestCases)/sizeof(KTestCases[0]);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7571
		++testCase)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7572
		{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7573
		const TTestCase& t = KTestCases[testCase];
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7574
		for (TInt logical = 0; logical != 2; ++logical)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7575
			{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7576
			const TText* in = logical?
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7577
				t.iInputL : t.iInputV;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7578
			input.Zero();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7579
			while (*in)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7580
				input.Append(*in++);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7581
			param.iText.Set(input);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7582
			param.iPosInText = logical?
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7583
				t.iClusterUnderTestStartL : t.iClusterUnderTestStartV;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7584
			param.iFlags = static_cast<TUint16>(logical?
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7585
				CFont::TPositionParam::EFLogicalOrder : 0);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7586
			param.iPen.SetXY(0, 0);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7587
			TBool r = iTestFont->GetCharacterPosition(param);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7588
			TEST(r);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7589
			TInt currentX = KMinTInt;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7590
			TInt expectedGlyphNo = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7591
			while (t.iGlyphs[expectedGlyphNo] != 0)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7592
				{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7593
				// FInd the expected glyph in the output.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7594
				TInt outputGlyph = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7595
				while (outputGlyph != param.iOutputGlyphs
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7596
					&& static_cast<TInt>(param.iOutput[outputGlyph].iCode)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7597
					!= t.iGlyphs[expectedGlyphNo])
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7598
					{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7599
					++outputGlyph;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7600
					}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7601
				TEST(outputGlyph < param.iOutputGlyphs);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7602
				TInt x = param.iOutput[outputGlyph].iBounds.Center().iX;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7603
				TEST(t.iGlyphsInOrder <= expectedGlyphNo
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7604
					|| currentX < x);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7605
				currentX = x;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7606
				++expectedGlyphNo;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7607
				}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7608
			TEST(expectedGlyphNo == param.iOutputGlyphs);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7609
			}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7610
		}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7611
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7612
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7613
 #if defined(__GCC32__)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7614
 typedef wchar_t __TText;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7615
 #elif defined(__VC32__)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7616
 typedef TUint16 __TText;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7617
 #elif defined(__CW32__)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7618
 typedef TUint16 __TText;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7619
 #elif !defined(__TText_defined)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7620
 #error  no typedef for __TText
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7621
 #endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7622
 const __TText* KLatinNoSideBearings = L"ABCDE";
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7623
 const __TText* KLatinLeftSideBearing = L"WABCD";
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7624
 const __TText* KLatinRightSideBearing = L"ABCDW";
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7625
 const __TText* KLatinBothSideBearings = L"WABCW";
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7626
 const __TText* KArabicAlefWaw = L"\x627\x648";
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7627
 const __TText* KArabicWawAlef = L"\x648\x627";
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7628
 const __TText* KGb18030NoSideBearings = L"\xD840\xDC00xyz\xD87E\xDE1D";
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7629
 const __TText* KGb18030LeftSideBearings = L"W\xD840\xDC00xy\xD87E\xDE1D";
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7630
 const __TText* KGb18030RightSideBearings = L"\xD840\xDC00xy\xD87E\xDE1DW";
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7631
 const __TText* KGb18030BothSideBearings = L"W\xD840\xDC00x\xD87E\xDE1DW";
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7632
 struct TMeasureTextTest
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7633
 	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7634
 	const __TText* iText;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7635
 	TInt iExpectedAdvanceLogical;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7636
 	TInt iExpectedAdvanceL2R;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7637
 	TInt iExpectedBoundsL2RLeft;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7638
 	TInt iExpectedBoundsL2RRight;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7639
 	TInt iExpectedBoundsL2RTop;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7640
 	TInt iExpectedBoundsL2RBottom;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7641
 	TInt iExpectedAdvanceR2L;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7642
 	TInt iExpectedBoundsR2LLeft;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7643
 	TInt iExpectedBoundsR2LRight;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7644
 	TInt iExpectedBoundsR2LTop;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7645
 	TInt iExpectedBoundsR2LBottom;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7646
 	};
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7647
 const TMeasureTextTest KMeasureTextResults[] =
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7648
 	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7649
 	{KLatinNoSideBearings, 50, 50, 0, 50, -10, 2, 50, 0, 50, -10, 2},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7650
 	{KLatinLeftSideBearing, 50, 50, -1, 50, -10, 2, 50, 0, 51, -10, 2},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7651
 	{KLatinRightSideBearing, 50, 50, 0, 51, -10, 2, 50, -1, 50, -10, 2},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7652
 	{KLatinBothSideBearings, 50, 50, -1, 51, -10, 2, 50, -1, 51, -10, 2},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7653
 	{KArabicAlefWaw, 20, 20, 0, 20, -10, 2, 20, -5, 20, -10, 2},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7654
 	{KArabicWawAlef, 20, 20, -5, 20, -10, 2, 20, 0, 20, -10, 2},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7655
 	// ones containing surrogate pairs
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7656
 	{KGb18030NoSideBearings, 50, 50, 0, 50, -10, 2, 50, 0, 50, -10, 2},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7657
 	{KGb18030LeftSideBearings, 50, 50, -1, 50, -10, 2, 50, 0, 51, -10, 2},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7658
 	{KGb18030RightSideBearings, 50, 50, 0, 51, -10, 2, 50, -1, 50, -10, 2},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7659
 	{KGb18030BothSideBearings, 50, 50, -1, 51, -10, 2, 50, -1, 51, -10, 2},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7660
 	};
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7661
 /** Tests CFont::MeasureText */
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7662
 void CTGlyphSelection::TestMeasureText()
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7663
 	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7664
 	CFont::TMeasureTextInput input;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7665
 	CFont::TMeasureTextOutput output;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7666
 	TInt advance;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7667
 	for (TInt i = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7668
 		i != sizeof(KMeasureTextResults)/sizeof(KMeasureTextResults[0]); ++i)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7669
 		{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7670
 		TPtrC text(reinterpret_cast<const TText16*>(
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7671
 			KMeasureTextResults[i].iText));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7672
 		advance = iTestFont->MeasureText(text, &input, &output);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7673
 		TEST(advance == KMeasureTextResults[i].iExpectedAdvanceLogical);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7674
 		input.iFlags = CFont::TMeasureTextInput::EFVisualOrder;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7675
 		advance = iTestFont->MeasureText(text, &input, &output);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7676
 		TEST(advance == KMeasureTextResults[i].iExpectedAdvanceL2R);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7677
 		TEST(output.iBounds.iTl.iX == KMeasureTextResults[i].iExpectedBoundsL2RLeft);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7678
 		TEST(output.iBounds.iBr.iX == KMeasureTextResults[i].iExpectedBoundsL2RRight);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7679
 		TEST(output.iBounds.iTl.iY == KMeasureTextResults[i].iExpectedBoundsL2RTop);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7680
 		TEST(output.iBounds.iBr.iY == KMeasureTextResults[i].iExpectedBoundsL2RBottom);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7681
 		input.iFlags = CFont::TMeasureTextInput::EFVisualOrderRightToLeft;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7682
 		advance = iTestFont->MeasureText(text, &input, &output);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7683
 		TEST(advance == KMeasureTextResults[i].iExpectedAdvanceR2L);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7684
 		TEST(output.iBounds.iTl.iX == KMeasureTextResults[i].iExpectedBoundsR2LLeft);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7685
 		TEST(output.iBounds.iBr.iX == KMeasureTextResults[i].iExpectedBoundsR2LRight);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7686
 		TEST(output.iBounds.iTl.iY == KMeasureTextResults[i].iExpectedBoundsR2LTop);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7687
 		TEST(output.iBounds.iBr.iY == KMeasureTextResults[i].iExpectedBoundsR2LBottom);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7688
 		}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7689
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7690
	INFO_PRINTF1(_L("Test fix for INC086257 - EFIncludePenPositionInBoundsCheck"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7691
	// left-to-right w/o flag and bounds set to just fit string disregarding sidebearings
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7692
	input.iFlags = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7693
	input.iMaxBounds = 50;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7694
	iTestFont->MeasureText(_L("XXXXX"), &input, &output);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7695
	TEST(output.iChars == 5);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7696
	// set flag, string should no longer fit (break happens)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7697
	input.iFlags = CFont::TMeasureTextInput::EFIncludePenPositionInBoundsCheck;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7698
	iTestFont->MeasureText(_L("XXXXX"), &input, &output);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7699
	TEST(output.iChars == 4);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7700
	// right-to-left w/o flag and bounds set to just fit string disregarding sidebearings
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7701
	input.iFlags = CFont::TMeasureTextInput::EFVisualOrderRightToLeft;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7702
	iTestFont->MeasureText(_L("\x5EA\x5EA\x5EA\x5EA\x5EA"), &input, &output);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7703
	TEST(output.iChars == 5);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7704
	// set flag, string should no longer fit (break happens)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7705
	input.iFlags |= CFont::TMeasureTextInput::EFIncludePenPositionInBoundsCheck;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7706
	iTestFont->MeasureText(_L("\x5EA\x5EA\x5EA\x5EA\x5EA"), &input, &output);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7707
	TEST(output.iChars == 4);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7708
	// top-to-bottom w/o flag and bounds set to just fit string disregarding endbearings
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7709
	input.iFlags = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7710
	input.iMaxBounds = 60;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7711
	input.iDirection = CFont::EVertical;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7712
	iTestFont->MeasureText(_L("\x304B\x304B\x304B\x304B\x304B"), &input, &output);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7713
	TEST(output.iChars == 5);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7714
	// set flag, string should no longer fit (break happens)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7715
	input.iFlags = CFont::TMeasureTextInput::EFIncludePenPositionInBoundsCheck;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7716
	iTestFont->MeasureText(_L("\x304B\x304B\x304B\x304B\x304B"), &input, &output);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7717
	TEST(output.iChars == 4);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7718
 	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7719
 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7720
void CTGlyphSelection::RunTestCaseL(TInt aCurTestCase)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7721
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7722
 This method will execute each test case method in the class
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7723
 logging its progress as it does so.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7724
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7725
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7726
	((CTGlyphSelectionStep*)iStep)->SetTestStepID(KUnknownSYMTestCaseIDName);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7727
	switch(aCurTestCase)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7728
		{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7729
	case 1:
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7730
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7731
@SYMTestCaseID 				GRAPHICS-SYSLIB-GDI-CIT-0200
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7732
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7733
        ((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-0200"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7734
		INFO_PRINTF1(_L("Test API Boundaries"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7735
		TestApiBoundaries();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7736
		break;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7737
	case 2:
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7738
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7739
@SYMTestCaseID 				GRAPHICS-SYSLIB-GDI-CIT-0201
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7740
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7741
		((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-0201"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7742
		INFO_PRINTF1(_L("Test CTRL Chars"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7743
		TestCtrlCharsIgnored();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7744
		break;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7745
	case 3:
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7746
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7747
@SYMTestCaseID 				GRAPHICS-SYSLIB-GDI-CIT-0202
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7748
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7749
		((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-0202"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7750
		INFO_PRINTF1(_L("Test Latin Chars"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7751
		TestLatinChars();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7752
		break;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7753
	case 4:
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7754
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7755
@SYMTestCaseID 				GRAPHICS-SYSLIB-GDI-CIT-0203
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7756
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7757
		((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-0203"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7758
		INFO_PRINTF1(_L("Test Soft Hypen Char"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7759
		TestSoftHyphen();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7760
		break;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7761
	case 5:
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7762
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7763
@SYMTestCaseID 				GRAPHICS-SYSLIB-GDI-CIT-0204
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7764
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7765
		((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-0204"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7766
		INFO_PRINTF1(_L("Test Surrogate Pairs"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7767
		TestSurrogates();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7768
		INFO_PRINTF1(_L("Test Supplementary Chars"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7769
		TestNonBmpCharsL();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7770
		break;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7771
	case 6:
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7772
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7773
@SYMTestCaseID 				GRAPHICS-SYSLIB-GDI-CIT-0205
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7774
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7775
		((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-0205"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7776
		INFO_PRINTF1(_L("Test Combining Latin Chars"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7777
		TestCombiningLatinChars();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7778
		break;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7779
	case 7:
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7780
		((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-0221"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7781
		INFO_PRINTF1(_L("Test Vietnamese Chars"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7782
		TestVietnameseChars();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7783
		break;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7784
	case 8:
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7785
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7786
@SYMTestCaseID 				GRAPHICS-SYSLIB-GDI-CIT-0206
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7787
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7788
		((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-0206"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7789
   		INFO_PRINTF1(_L("Test Vertical/Horizontal Text Bounds"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7790
   		TestTextDirection();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7791
   		break;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7792
 	case 9:
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7793
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7794
@SYMTestCaseID 				GRAPHICS-SYSLIB-GDI-CIT-0207
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7795
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7796
		((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-0207"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7797
   		INFO_PRINTF1(_L("Test All Unicode Characters"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7798
   		TestAllUnicodeChars();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7799
   		break;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7800
 	case 10:
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7801
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7802
@SYMTestCaseID 				GRAPHICS-SYSLIB-GDI-CIT-0208
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7803
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7804
		((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-0208"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7805
   		INFO_PRINTF1(_L("Test Ligatures with Diacritics"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7806
   		TestLigaturesWithDiacritics();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7807
   		break;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7808
 	case 11:
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7809
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7810
@SYMTestCaseID 				GRAPHICS-SYSLIB-GDI-CIT-0209
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7811
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7812
		((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-0209"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7813
 		INFO_PRINTF1(_L("Test CFont::MeasureText()"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7814
 		TestMeasureText();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7815
 		break;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7816
  	case 12:
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7817
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7818
@SYMTestCaseID 				GRAPHICS-SYSLIB-GDI-CIT-0210
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7819
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7820
		((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-0210"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7821
  		INFO_PRINTF1(_L("Test Indic Glyphs"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7822
  		TestIndicCharsL();	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7823
		break;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7824
   	case 13:
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7825
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7826
@SYMTestCaseID 				GRAPHICS-SYSLIB-GDI-CIT-0211
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7827
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7828
		((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-0211"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7829
  		INFO_PRINTF1(_L("Test Thai Rendering"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7830
   		ExecuteThaiTests();	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7831
   		break;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7832
   	case 14:
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7833
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7834
@SYMTestCaseID 				GRAPHICS-SYSLIB-GDI-CIT-0212
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7835
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7836
		((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-0212"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7837
		INFO_PRINTF1(_L("Test isolated Combining Latin Chars"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7838
		TestIsolatedCombiningLatinChars();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7839
		break;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7840
   	case 15:
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7841
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7842
@SYMTestCaseID 				GRAPHICS-SYSLIB-GDI-CIT-0213
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7843
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7844
   		INFO_PRINTF1(_L("Test Indic Gurmukhi and Malayalam Chars"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7845
		((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-0213"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7846
   		ExecuteIndicGurmukhiMalayalamTests();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7847
   		break;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7848
   	case 16:
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7849
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7850
@SYMTestCaseID 				GRAPHICS-SYSLIB-GDI-CIT-0214
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7851
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7852
   		INFO_PRINTF1(_L("Test Rendering Context"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7853
		((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-SYSLIB-GDI-CIT-0214"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7854
   		TestContextInShapeInfo();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7855
   		break;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7856
   	case 17:
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7857
   		TestComplete();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7858
		((CTGlyphSelectionStep*)iStep)->SetTestStepID(KNotATestSYMTestCaseIDName);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7859
		((CTGlyphSelectionStep*)iStep)->CloseTMSGraphicsStep();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7860
   		break;	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7861
   		}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7862
	((CTGlyphSelectionStep*)iStep)->RecordTestResultL();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7863
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7864
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7865
void CTGlyphSelection::TestPerformance()
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7866
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7867
 This method tests the performance of the API under test
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7868
 by executing a 10000 cycles of each test case.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7869
**/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7870
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7871
	TStopWatch profile;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7872
	INFO_PRINTF1(_L("Test Performance..."));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7873
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7874
	profile.Start();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7875
	for (TInt i = 0; i < 10000; i++)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7876
		{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7877
		TestCtrlCharsIgnored();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7878
		TestLatinChars();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7879
		TestSoftHyphen();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7880
		TestSurrogates();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7881
		TestCombiningLatinChars();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7882
		TestTextDirection();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7883
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7884
		}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7885
	TUint numMilliSecs = profile.Stop();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7886
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7887
	INFO_PRINTF3(_L("Performance test end %d.%d s\n"),numMilliSecs/1000,numMilliSecs%1000);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7888
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7889
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7890
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7891
void CTGlyphSelection::TestThai_SimpleChars()
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7892
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7893
 This routine tests individual Thai base characters pumping them 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7894
 through the CFont::GetCharacterPosition() API.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7895
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7896
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7897
	TBool r;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7898
	CFont::TPositionParam param;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7899
	param.iDirection = CFont::EHorizontal;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7900
	param.iFlags = CFont::TPositionParam::EFLogicalOrder;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7901
	TBuf<5> testText(0);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7902
	testText.SetLength(1);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7903
	param.iText.Set(testText);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7904
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7905
	for (TUint i=0; Thai_SimpleChars[i] != 0xFFFF; i++)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7906
		{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7907
		testText[0] = Thai_SimpleChars[i];
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7908
		param.iPosInText = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7909
		param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7910
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7911
		r = iTestFont->GetCharacterPosition(param);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7912
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7913
		TEST(r && param.iPosInText == 1 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7914
			   && param.iPen.iX == 10
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7915
			   && param.iOutputGlyphs == 1 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7916
			   && param.iOutput[0].iCode == Thai_SimpleChars[i]);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7917
		}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7918
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7919
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7920
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7921
void CTGlyphSelection::TestThai_ValidGlyphClusters()
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7922
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7923
 This routine tests combining sequences of Thai base & mark 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7924
 characters pumping them through the CFont::GetCharacterPosition() API.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7925
 The sequences mainly test the correct formation of Thay Glyph clusters
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7926
 and the PUA substutions that take place.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7927
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7928
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7929
	TInt failures=0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7930
	TBool r;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7931
	CFont::TPositionParam param;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7932
	param.iDirection = CFont::EHorizontal;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7933
	param.iFlags = CFont::TPositionParam::EFLogicalOrder;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7934
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7935
	for (TUint i=0; Thai_ValidGlyphClusters[i].iTextLen != -1; i++)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7936
		{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7937
		TBuf<8> testText(Thai_ValidGlyphClusters[i].iText);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7938
		param.iText.Set(testText);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7939
		param.iPosInText = Thai_ValidGlyphClusters[i].iPosInText;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7940
		param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7941
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7942
		r = iTestFont->GetCharacterPosition(param);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7943
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7944
		if (r && param.iPosInText == Thai_ValidGlyphClusters[i].oPosInText
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7945
			   && param.iOutputGlyphs == Thai_ValidGlyphClusters[i].oOutputLen)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7946
			{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7947
			for (TInt j=0; j<Thai_ValidGlyphClusters[i].oOutputLen; j++)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7948
				{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7949
				if (param.iOutput[j].iCode != Thai_ValidGlyphClusters[i].oOutput[j])
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7950
					{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7951
					INFO_PRINTF4(_L("FAILURE: Glyph code invariance, Complex TEST(%d), %x != %x\n"), i, param.iOutput[j].iCode, Thai_ValidGlyphClusters[i].oOutput[j]);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7952
					failures++;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7953
					break;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7954
					}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7955
				}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7956
			}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7957
		else
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7958
			{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7959
			INFO_PRINTF2(_L("FAILURE: Bad output result from GetCharacterPosition, Complex TEST(%d)\n"), i);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7960
			failures++;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7961
			}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7962
		}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7963
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7964
	TEST(failures == 0);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7965
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7966
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7967
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7968
void CTGlyphSelection::TestThai_InvalidGlyphClusters()
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7969
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7970
 This routine tests Thai base & mark cluster boundaries to ensure where 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7971
 requried the KUnicodeDottedCircle char is used when an invalid sequence is 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7972
 processed. Test data from the global Thai_GlyphClusterBoundaries 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7973
 variable is pumped through the CFont::GetCharacterPosition() API.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7974
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7975
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7976
	TInt failures=0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7977
	TBool r;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7978
	CFont::TPositionParam param;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7979
	param.iDirection = CFont::EHorizontal;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7980
	param.iFlags = CFont::TPositionParam::EFLogicalOrder;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7981
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7982
	for (TUint i=0; Thai_GlyphClusterBoundaries[i].iTextLen != -1; i++)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7983
		{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7984
		TBuf<8> testText(Thai_GlyphClusterBoundaries[i].iText);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7985
		param.iText.Set(testText);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7986
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7987
		for (TUint k=0; k<2; k++)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7988
			{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7989
			if (Thai_GlyphClusterBoundaries[i].oOut[k].iPosInText == -1)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7990
				continue;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7991
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7992
			param.iPosInText = Thai_GlyphClusterBoundaries[i].oOut[k].iPosInText;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7993
			param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7994
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7995
			r = iTestFont->GetCharacterPosition(param);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7996
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7997
			if (r && param.iPosInText == Thai_GlyphClusterBoundaries[i].oOut[k].oPosInText
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7998
				   && param.iOutputGlyphs == Thai_GlyphClusterBoundaries[i].oOut[k].oOutputLen)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  7999
				{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8000
				for (TInt j=0; j<Thai_GlyphClusterBoundaries[i].oOut[k].oOutputLen; j++)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8001
					{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8002
					if (!(param.iOutput[j].iCode == Thai_GlyphClusterBoundaries[i].oOut[k].oOutput[j]))
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8003
						{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8004
						INFO_PRINTF5(_L("FAILURE: Glyph code invariance, Complex TEST(%d,%d), %x != %x\n"), i, k, param.iOutput[j].iCode, Thai_GlyphClusterBoundaries[i].oOut[k].oOutput[j]);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8005
						failures++;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8006
						break;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8007
						}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8008
					}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8009
				}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8010
			else
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8011
				{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8012
				INFO_PRINTF3(_L("FAILURE: Bad output result from GetCharacterPosition, Complex TEST(%d,%d)\n"), i, k);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8013
				failures++;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8014
				}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8015
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8016
			}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8017
		}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8018
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8019
	if (failures)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8020
		RDebug::Print(_L("TOTAL FAILURES: %d\n"), failures);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8021
	TEST(failures == 0);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8022
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8023
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8024
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8025
@SYMTestCaseID          GRAPHICS-SYSLIB-GDI-CT-4062
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8026
@SYMTestCaseDesc        Tests that a punctuation character following the special-case
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8027
                        character Thai SaraAm is rendered as a punctuation, not
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8028
                        another SaraAm character.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8029
@SYMTestPriority        High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8030
@SYMTestActions         Compare input string and corresponding output glyph codes
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8031
@SYMTestExpectedResults In this case, the string and the codes should match.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8032
@SYMDEF                 INC118424
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8033
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8034
void CTGlyphSelection::TestThai_INC118424()
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8035
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8036
	CFont::TPositionParam param;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8037
	param.iDirection = CFont::EHorizontal;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8038
	param.iFlags = CFont::TPositionParam::EFLogicalOrder;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8039
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8040
	//punctuation after SaraAm
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8041
	TestGlyphs(iTestFont,param,_L("\xE04\xE33:\?>"),_L("\xE04\xE33:\?>"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8042
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8043
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8044
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8045
 This fuction tests Indic Gurmukhi and Malayalam support
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8046
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8047
void CTGlyphSelection::ExecuteIndicGurmukhiMalayalamTests()
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8048
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8049
	// create a font store for testing
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8050
	CFontStore* fontStore = CFontStore::NewL(&User::Heap());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8051
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8052
	//load all ecom implemented rasterizer dlls. installs the rasterizer.	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8053
	LoadOpenFontLibraries(fontStore);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8054
		// test font preparation
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8055
	fontStore->iKPixelWidthInTwips = 11860; //This value is default
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8056
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8057
	//add any required font files
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8058
	TUid err1 = fontStore->AddFileL(KTestIndicFontFile);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8059
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8060
	TFontSpec testIndicFontSpec(KTestIndicFontFaceName,200);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8061
	 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8062
	CFbsBitmap* bmp = new(ELeave) CFbsBitmap;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8063
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8064
	TInt ret = bmp->Create(TSize(100,100),EGray2);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8065
	if (ret == KErrNotSupported)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8066
		return;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8067
	else
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8068
		User::LeaveIfError(ret);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8069
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8070
	CFbsBitmapDevice* device = NULL;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8071
	TRAPD(err2,device = CFbsBitmapDevice::NewL(bmp));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8072
	TEST(err2 == KErrNone);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8073
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8074
	CFbsBitGc* gc = NULL;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8075
	User::LeaveIfError(device->CreateContext(gc));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8076
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8077
	// Font file Creation
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8078
	CFbsFont* indicFont = NULL;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8079
	User::LeaveIfError(device->GetNearestFontToDesignHeightInTwips(indicFont,testIndicFontSpec));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8080
	gc->UseFont(indicFont);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8081
	CleanupStack::PushL(indicFont);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8082
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8083
	//Testcode for Kannada, Marathi,Gujarati,Bengali language
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8084
	// Test Indic Gurmukhi digit.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8085
	TInt err;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8086
	TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8087
    	if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8088
    		INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8089
	INFO_PRINTF1(_L("Test Indic Gurmukhi digits"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8090
	((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-TI18N-GDI-CIT-4063"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8091
	TestGurmukhiDigit( *indicFont );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8092
	TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8093
    	if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8094
    		INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8095
	INFO_PRINTF1(_L("Test Indic Gurmukhi and Latin"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8096
	((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-TI18N-GDI-CIT-4064"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8097
	TestGurmukhiAndLatin( *indicFont );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8098
	TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8099
    	if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8100
    		INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8101
	INFO_PRINTF1(_L("Test Indic DEF102858 on Gurmukhi"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8102
	((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-TI18N-GDI-CIT-4065"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8103
	TestGurmukhiModifierAfterConsonantViramaZWJ( *indicFont );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8104
	TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8105
    	if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8106
    		INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8107
	INFO_PRINTF1(_L("Test Indic Gurmukhi consonant leading"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8108
	((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-TI18N-GDI-CIT-4066"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8109
	TestGurmukhiWithConsonantInitial( *indicFont );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8110
	TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8111
    	if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8112
    		INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8113
	INFO_PRINTF1(_L("Test Indic Gurmukhi vowel leading"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8114
	((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-TI18N-GDI-CIT-4068"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8115
	TestGurmukhiWithVowelInitial( *indicFont );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8116
	TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8117
    	if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8118
    		INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8119
	INFO_PRINTF1(_L("Test Indic Malayalam digits"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8120
	((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-TI18N-GDI-CIT-4067"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8121
	TestMalayalamDigit( *indicFont );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8122
	TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8123
    	if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8124
    		INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8125
	INFO_PRINTF1(_L("Test Indic Malayalam and Latin"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8126
	((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-TI18N-GDI-CIT-4069"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8127
	TestMalayalamAndLatin( *indicFont );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8128
	TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8129
    	if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8130
    		INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8131
	INFO_PRINTF1(_L("Test Indic DEF102858 on Malayalam"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8132
	((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-TI18N-GDI-CIT-4070"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8133
	TestMalayalamModifierAfterConsonantViramaZWJ( *indicFont );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8134
	TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8135
    	if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8136
    		INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8137
	INFO_PRINTF1(_L("Test Indic Malayalam consonant leading"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8138
	((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-TI18N-GDI-CIT-4071"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8139
	TestMalayalamWithConsonantInitial( *indicFont );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8140
	TRAP(err,((CTGlyphSelectionStep*)iStep)->RecordTestResultL());
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8141
    	if (err!=KErrNone)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8142
    		INFO_PRINTF1(_L("Failed to record test result"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8143
	INFO_PRINTF1(_L("Test Indic Malayalam vowel leading"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8144
	((CTGlyphSelectionStep*)iStep)->SetTestStepID(_L("GRAPHICS-TI18N-GDI-CIT-4072"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8145
	TestMalayalamWithVowelInitial( *indicFont );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8146
	CleanupStack::Pop(indicFont);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8147
			
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8148
	//Cleaning the memory
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8149
	delete bmp;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8150
	delete device;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8151
	delete gc;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8152
	fontStore->RemoveFile(err1);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8153
	delete fontStore;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8154
	REComSession::FinalClose();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8155
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8156
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8157
 This function tests the Thai Font Rendering feature of the CFont class
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8158
 in the GDI.dll and in particular the modifications made to 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8159
 CFont::GetCharacterPosition() to support the Unicocde Thai code page.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8160
 First introduced during the Sirocco project (A3.1.1)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8161
@SYMFssID Graphics/GDI/GDI/1
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8162
@SYMFssID Graphics/GDI/GDI/2
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8163
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8164
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8165
void CTGlyphSelection::ExecuteThaiTests()
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8166
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8167
	// Test individual Thai digits, letters and sign characters.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8168
	INFO_PRINTF1(_L("Test Thai simple charecters"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8169
	TestThai_SimpleChars();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8170
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8171
	// Test complex Thai char sequences.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8172
	INFO_PRINTF1(_L("Test valid Thai glyph clusters"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8173
	TestThai_ValidGlyphClusters();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8174
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8175
	// Test Thai glyph cluster boundaries.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8176
	INFO_PRINTF1(_L("Test invalid Thai glyph clusters"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8177
	TestThai_InvalidGlyphClusters();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8178
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8179
	// Test Thai SaraAm-punctuation exception.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8180
	INFO_PRINTF1(_L("Test fix for INC118424"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8181
	TestThai_INC118424();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8182
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8183
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8184
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8185
/*  
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8186
 * Note:
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8187
 *       This is just a easy way to help generate the test data info
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8188
 *       Any new added test data should do manually check firstly to check the correction before using this function
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8189
 */
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8190
// #define GEN_GURMUKHIMALAYALAMTESTDATA
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8191
void CTGlyphSelection::GenerateGurmukhiMalayalamData( const TDesC& filename, const TTestInput_PositionParam6* testArray, const CFbsFont& aFont )
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8192
    {
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8193
    RFile file;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8194
    file.Replace( iFs, filename, EFileWrite );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8195
    
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8196
    CFont::TPositionParam param;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8197
    param.iDirection = CFont::EHorizontal;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8198
    param.iFlags = CFont::TPositionParam::EFLogicalOrder;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8199
    RShapeInfo shapeInfo;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8200
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8201
    if (!testArray)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8202
        {
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8203
        return;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8204
        }
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8205
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8206
    for (TUint i = 0; testArray[i].iTextLen != -1; i++)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8207
        {
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8208
        TTestInput_PositionParam6 currentArray = testArray[i];
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8209
        TBuf<8> testText(testArray[i].iText);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8210
        param.iText.Set(testText);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8211
        
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8212
        TBuf8<256> datatext;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8213
        datatext.SetLength(0);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8214
        //{ 1, {0x0a66}, { {0, 1, 1, {0x12fe} }, {-1, 1, 1, {0} } } },
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8215
        datatext.Format(_L8("{ %d, {"), testArray[i].iTextLen);  // 1, 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8216
        
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8217
        for (TUint i = 0; i<testText.Length(); i++)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8218
            {
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8219
            TBuf8<8> tmp;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8220
            tmp.Format(_L8("0x%x, "), currentArray.iText[i]); // {0x0a66},
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8221
            datatext.Append(tmp);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8222
            }
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8223
        datatext = datatext.Left(datatext.Length()-2);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8224
        datatext.Append(_L8("}, { "));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8225
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8226
        if (shapeInfo.IsOpen())
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8227
            shapeInfo.Close();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8228
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8229
        for (TUint k = 0; k < 6; k++)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8230
            {
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8231
            param.iPosInText = k;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8232
            param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8233
            TBool ret = aFont.GetCharacterPosition2(param, shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8234
            if (0 == param.iOutputGlyphs)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8235
                continue;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8236
            
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8237
            TBuf8<16> tmp;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8238
            tmp.Format(_L8("{%d, %d, %d, {"), k, param.iPosInText, param.iOutputGlyphs);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8239
            datatext.Append(tmp);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8240
            
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8241
            for (TInt j = 0; j < param.iOutputGlyphs; j++)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8242
                {
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8243
                TText16 aCode = param.iOutput[j].iCode;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8244
                TBuf8<128> tmp;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8245
                tmp.Format(_L8("0x%x, "), aCode);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8246
                datatext.Append(tmp);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8247
                } //end for
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8248
            datatext = datatext.Left(datatext.Length()-2);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8249
            datatext.Append(_L8("}}, "));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8250
            } //end for
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8251
        datatext.Append(_L8(" {-1, 1, 1, {0}} } }, \n"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8252
        
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8253
        file.Write(datatext);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8254
        } //end for
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8255
    
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8256
    file.Close();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8257
    return;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8258
    }
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8259
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8260
void CTGlyphSelection::DoEachGurmukhiMalayalamCase( const TTestInput_PositionParam6* testArray, const CFbsFont& aFont )
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8261
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8262
	TInt failures=0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8263
	TBool r;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8264
	CFont::TPositionParam param;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8265
	param.iDirection = CFont::EHorizontal;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8266
	param.iFlags = CFont::TPositionParam::EFLogicalOrder;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8267
	RShapeInfo shapeInfo;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8268
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8269
	if ( !testArray )
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8270
		{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8271
		return;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8272
		}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8273
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8274
	for (TUint i=0; testArray[i].iTextLen != -1; i++)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8275
		{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8276
		TBuf<8> testText(testArray[i].iText);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8277
		param.iText.Set(testText);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8278
		if(shapeInfo.IsOpen())
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8279
		    shapeInfo.Close();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8280
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8281
		for (TUint k=0; k<6; k++)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8282
			{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8283
			//	If it's end of sequence
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8284
			if ( testArray[i].oOut[k].iPosInText == -1)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8285
				break;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8286
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8287
			param.iPosInText = testArray[i].oOut[k].iPosInText;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8288
			param.iPen.iX = param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8289
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8290
			r = aFont.GetCharacterPosition2(param, shapeInfo);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8291
			
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8292
			if (r && param.iPosInText == testArray[i].oOut[k].oPosInText
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8293
				   && param.iOutputGlyphs == testArray[i].oOut[k].oOutputLen)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8294
				{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8295
				for (TInt j=0; j<testArray[i].oOut[k].oOutputLen; j++)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8296
					{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8297
					//	Trim off the highest bit
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8298
					TText16 aCode = param.iOutput[j].iCode;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8299
					if (!( aCode == testArray[i].oOut[k].oOutput[j]))
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8300
						{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8301
						INFO_PRINTF5(_L("FAILURE: Glyph code invariance, Complex TEST(%d,%d), %x != %x\n"), i, k, param.iOutput[j].iCode, testArray[i].oOut[k].oOutput[j]);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8302
						failures++;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8303
						break;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8304
						}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8305
					}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8306
				}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8307
			else
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8308
				{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8309
				INFO_PRINTF4(_L("FAILURE: Bad output result from GetCharacterPosition, Complex TEST(%d,%d,%d)\n"), i, k, param.iOutputGlyphs);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8310
				failures++;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8311
				}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8312
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8313
			}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8314
		}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8315
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8316
	if (failures)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8317
		RDebug::Print(_L("TOTAL FAILURES: %d\n"), failures);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8318
	TEST(failures == 0);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8319
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8320
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8321
@SYMTestCaseID          GRAPHICS-TI18N-GDI-CIT-4063
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8322
@SYMTestCaseDesc        Case to check Gurmukhi digit support
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8323
@SYMTestPriority        High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8324
@SYMTestActions         Call to CFont::GetCharacterPosition2/CFont::MeasureText to check the following
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8325
						1.Pass Gurmukhi digit (0xa66 ~ 0x0a6f) sequence
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8326
						2.Pass any Consonant + Gurmukhi digit sequence 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8327
						3.Pass any Consonant + Gurmukhi digit + Matra sequence
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8328
						4.Repetitive callss with Unicode sequence from the first 3 action items 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8329
						5.Pass Modifer + digit sequence
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8330
						6.Pass Vowel and digit sequence
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8331
						7.Pass Virama and digit sequence 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8332
@SYMTestExpectedResults 1.Glyph count, character count for digit is 1 for each digit, and glyph indices depends on font
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8333
						2.Digit is recognized as a separate syllable
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8334
						3.Matra and digit is not combined together
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8335
						4.The shaper returned the same result as first 3 results
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8336
						5.digit is recognized, and not combined with Modifier
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8337
						6.digit is recognized, and not combined with Vowel.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8338
						7.digit is recognized, and not combined with Virama.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8339
@SYMPREQ 1922: Gurmukhi support
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8340
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8341
void CTGlyphSelection::TestGurmukhiDigit( const CFbsFont& aFont )
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8342
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8343
	DoEachGurmukhiMalayalamCase( (TTestInput_PositionParam6*)Indic_GurmukhiDigit, aFont );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8344
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8345
#ifdef GEN_GURMUKHIMALAYALAMTESTDATA
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8346
	_LIT(KValidFontPath, "c:\\GurmukhiDigit.txt");
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8347
	GenerateGurmukhiMalayalamData(KValidFontPath, (TTestInput_PositionParam6*)Indic_GurmukhiDigit, aFont );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8348
#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8349
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8350
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8351
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8352
@SYMTestCaseID          GRAPHICS-TI18N-GDI-CIT-4064
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8353
@SYMTestCaseDesc        case to check if shaper can render Gurmukhi with other implemented Indic scripts and Latin
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8354
@SYMTestPriority        High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8355
@SYMTestActions         Call to CFont::GetCharacterPosition2/CFont::MeasureText to check the following
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8356
						1.Pass Gurmukhi sentence and Latin to the function
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8357
						2.Pass Latin and Gurmukhi setence.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8358
						3.Pass syllable, Latin and syllable
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8359
						4.Pass phoneme, Latin and phoneme
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8360
						5.Pass Gurmukhi syllable and other Indic scripts together.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8361
						6.Pass Gurmukhi phoneme and other Indic script phoneme
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8362
@SYMTestExpectedResults Gurumuki and Latin characters donĄ¯t mess up. Gurmukhi phoneme doesnĄ¯t combine with Latin into a new syllable, 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8363
						Gurmukhi phoneme doesnĄ¯t form a syllable with other Indic script.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8364
@SYMPREQ 1922: Gurmukhi support
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8365
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8366
void CTGlyphSelection::TestGurmukhiAndLatin( const CFbsFont& aFont )
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8367
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8368
	DoEachGurmukhiMalayalamCase( (TTestInput_PositionParam6*)Indic_GurmukhiAndLatin, aFont );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8369
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8370
#ifdef GEN_GURMUKHIMALAYALAMTESTDATA
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8371
    _LIT(KValidFontPath, "c:\\GurmukhiAndLatin.txt");
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8372
    GenerateGurmukhiMalayalamData(KValidFontPath, (TTestInput_PositionParam6*)Indic_GurmukhiDigit, aFont );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8373
#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8374
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8375
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8376
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8377
@SYMTestCaseID          GRAPHICS-TI18N-GDI-CIT-4065
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8378
@SYMTestCaseDesc        case to check Gurmukhi modifier after Consonant, Virama, ZWJ
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8379
@SYMTestPriority        High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8380
@SYMTestActions         Call to CFont::GetCharacterPosition2/CFont::MeasureText to check the following
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8381
						1.Pass Consonant + Virama + ZWJ + Modifier
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8382
@SYMTestExpectedResults Modifier is part of the syllable.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8383
@SYMPREQ 1922: Gurmukhi support, make sure DEF102858 fixing does not cause side effect
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8384
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8385
void CTGlyphSelection::TestGurmukhiModifierAfterConsonantViramaZWJ( const CFbsFont& aFont )
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8386
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8387
	DoEachGurmukhiMalayalamCase( (TTestInput_PositionParam6*)Indic_GurmukhiModifierAfterConsonantViramaZWJ, aFont );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8388
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8389
#ifdef GEN_GURMUKHIMALAYALAMTESTDATA
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8390
    _LIT(KValidFontPath, "c:\\GurmukhiModifierAfterConsonantViramaZWJ.txt");
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8391
    GenerateGurmukhiMalayalamData(KValidFontPath, (TTestInput_PositionParam6*)Indic_GurmukhiDigit, aFont );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8392
#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8393
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8394
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8395
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8396
@SYMTestCaseID          GRAPHICS-TI18N-GDI-CIT-4066
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8397
@SYMTestCaseDesc        case to check syllable with consonant in initial position
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8398
@SYMTestPriority        High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8399
@SYMTestActions         Call to CFont::GetCharacterPosition2/CFont::MeasureText to check the following using data from above requirements, each requirement above gives a consonant leading Unicode sequence. Each sequence falls into one of the following structure, then pass it to the calling.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8400
						1.Pass  consonant and Nukta sequence
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8401
						2.Pass two consonant and dependent vowel sequences to shaper, save both returned results. The consonant is first sequence is difference with that of the second sequence..
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8402
						3.Pass consonant and matra /i/ t sequence 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8403
						4.Pass the following Consonant, Virama and HA sequence 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8404
						  Another sequence:  Consonant , Virama and RA
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8405
						  Another sequence:  Consonant, Virama and VA
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8406
						  Another sequence:  Consonant, Virama and YA
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8407
						5.Pass Consonant  and Addak sequence to shaper 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8408
						  Pass Consonant, Addak and Consonant to shaper
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8409
						6.Pass Consonant and BINDI sequence:  
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8410
						  Sequence1:Consonant and BINDI,
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8411
						  Sequence2: Consonant, dependent vowel which is shown to the right of base consonant and BINDI,
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8412
						  Sequence3: Consonant, dependent vowel which is shown to the top of the base consonant and BINDI
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8413
						  Pass Consonant and TIPPI sequence:
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8414
						  Sequence1: Consonant and TIPPI, 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8415
						  Sequence2: Consonant, dependent vowel which is shown to the left of the base consonant and TIPPI.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8416
						  Sequence3: Consonant, dependent vowel which is shown to the bottom of the base consonant and TIPPI.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8417
						7.Pass Nukta, equavalent consonant, Nukta sequence to shaper sepeartely, save both result
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8418
@SYMTestExpectedResults 1.nukta is combined to the base consonant according to the returned shape info
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8419
						2.The matra position is different between two ShapeText calls according to the returned shaped info.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8420
						3.matra /i/ is combined to the left of the base consonant in position
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8421
						4.HA, RA, VA is on bottom of the base consonant and subscripted, YA in final form according to the returned shape info.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8422
						5.Addak is on top of consonant, addak belongs to the consonant precedes it.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8423
						6.BINDI is on top,  TIPPI is on bottom
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8424
						7.The combinationĄ¯s character count, glyph count, glyph indices info is the same as  the single nuktaĄ¯s
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8425
@SYMPREQ 1922: Gurmukhi support
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8426
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8427
void CTGlyphSelection::TestGurmukhiWithConsonantInitial( const CFbsFont& aFont )
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8428
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8429
	DoEachGurmukhiMalayalamCase( (TTestInput_PositionParam6*)Indic_GurmukhiConsonantLeading, aFont );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8430
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8431
#ifdef GEN_GURMUKHIMALAYALAMTESTDATA
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8432
    _LIT(KValidFontPath, "c:\\GurmukhiWithConsonantInitial.txt");
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8433
    GenerateGurmukhiMalayalamData(KValidFontPath, (TTestInput_PositionParam6*)Indic_GurmukhiDigit, aFont );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8434
#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8435
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8436
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8437
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8438
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8439
@SYMTestCaseID          GRAPHICS-TI18N-GDI-CIT-4067
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8440
@SYMTestCaseDesc        Case to check Malayalam digit support
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8441
@SYMTestPriority        High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8442
@SYMTestActions         Call to CFont::GetCharacterPosition2/CFont::MeasureText to check the following
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8443
						1.Pass Malayalam digit (0xd66 ~ 0x0d6f) sequence
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8444
						2.Pass any Consonant + Malayalam digit sequence 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8445
						3.Pass any Consonant + Malayalam digit + Matra sequence
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8446
						4.Repetitive callss with Unicode sequence from the first 3 action items 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8447
						5.Pass Modifer + digit sequence
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8448
						6.Pass Vowel and digit sequence
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8449
						7.Pass Virama and digit sequence 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8450
@SYMTestExpectedResults 1.Glyph count, character count for digit is 1 for each digit, and glyph indices depends on font
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8451
						2.Digit is recognized as a separate syllable
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8452
						3.Matra and digit is not combined together
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8453
						4.The shaper returned the same result as first 3 results
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8454
						5.digit is recognized, and not combined with Modifier
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8455
						6.digit is recognized, and not combined with Vowel.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8456
						7.digit is recognized, and not combined with Virama.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8457
@SYMPREQ 1922: Malayalam support
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8458
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8459
void CTGlyphSelection::TestMalayalamDigit( const CFbsFont& aFont )
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8460
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8461
	DoEachGurmukhiMalayalamCase( (TTestInput_PositionParam6*)Indic_MalayalamDigit, aFont );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8462
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8463
#ifdef GEN_GURMUKHIMALAYALAMTESTDATA
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8464
    _LIT(KValidFontPath, "c:\\MalayalamDigit.txt");
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8465
    GenerateGurmukhiMalayalamData(KValidFontPath, (TTestInput_PositionParam6*)Indic_GurmukhiDigit, aFont );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8466
#endif	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8467
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8468
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8469
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8470
@SYMTestCaseID          GRAPHICS-TI18N-GDI-CIT-4068
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8471
@SYMTestCaseDesc        case to check syllable with vowel in initial position
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8472
@SYMTestPriority        High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8473
@SYMTestActions         Call to CFont::GetCharacterPosition2/CFont::MeasureText to check the following using data from above requirements, 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8474
						each requirement above gives a vowel leading Unicode sequence. Each sequence falls into one of the following structure, 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8475
						then pass it to the calling.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8476
						1.Pass ARA, IRI to shaper, pass URA sequence
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8477
						2.Pass valid bearer  and vowel pair sequence
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8478
						  Pass invalid bearer and vowel pair sequence
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8479
@SYMTestExpectedResults 1.ARA character count is 1, IRI, URA character count is 0
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8480
						2.valid combination is combined together, invalid is not combined together
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8481
@SYMPREQ 1922: Gurmukhi support
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8482
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8483
void CTGlyphSelection::TestGurmukhiWithVowelInitial( const CFbsFont& aFont )
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8484
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8485
	DoEachGurmukhiMalayalamCase( (TTestInput_PositionParam6*)Indic_GurmukhiVowelLeading, aFont );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8486
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8487
#ifdef GEN_GURMUKHIMALAYALAMTESTDATA
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8488
    _LIT(KValidFontPath, "c:\\GurmukhiWithVowelInitial.txt");
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8489
    GenerateGurmukhiMalayalamData(KValidFontPath, (TTestInput_PositionParam6*)Indic_GurmukhiDigit, aFont );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8490
#endif  
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8491
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8492
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8493
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8494
@SYMTestCaseID          GRAPHICS-TI18N-GDI-CIT-4069
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8495
@SYMTestCaseDesc        case to check if shaper can render Malayalam with other implemented Indic scripts and Latin
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8496
@SYMTestPriority        High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8497
@SYMTestActions         Call to CFont::GetCharacterPosition2/CFont::MeasureText to check the following
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8498
						1.Pass Malayalam sentence and Latin to the function
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8499
						2.Pass Latin and Gurmukhi setence.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8500
						3.Pass syllable, Latin and syllable
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8501
						4.Pass phoneme, Latin and phoneme
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8502
						5.Pass Malayalam syllable and other Indic scripts together.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8503
						6.Pass Malayalam phoneme and other Indic script phoneme
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8504
@SYMTestExpectedResults Malayalam and Latin characters donĄ¯t mess up. Malayalam phoneme doesnĄ¯t combine with Latin into a new syllable, 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8505
						Malayalam phoneme doesnĄ¯t form a syllable with other Indic script.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8506
@SYMPREQ 1922: Malayalam support
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8507
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8508
void CTGlyphSelection::TestMalayalamAndLatin( const CFbsFont& aFont )
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8509
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8510
	DoEachGurmukhiMalayalamCase( (TTestInput_PositionParam6*)Indic_MalayalamAndLatin, aFont );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8511
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8512
#ifdef GEN_GURMUKHIMALAYALAMTESTDATA
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8513
    _LIT(KValidFontPath, "c:\\MalayalamAndLatin.txt");
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8514
    GenerateGurmukhiMalayalamData(KValidFontPath, (TTestInput_PositionParam6*)Indic_GurmukhiDigit, aFont );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8515
#endif  
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8516
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8517
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8518
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8519
@SYMTestCaseID          GRAPHICS-TI18N-GDI-CIT-4070
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8520
@SYMTestCaseDesc        case to check  Malayalam modifier after Consonant, Virama, ZWJ
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8521
@SYMTestPriority        High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8522
@SYMTestActions         Call to CFont::GetCharacterPosition2/CFont::MeasureText to check the following
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8523
						1. Pass Consonant + Virama + ZWJ + Modifier
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8524
@SYMTestExpectedResults Modifier is part of the syllable.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8525
@SYMPREQ 1922: Malayalam support, make sure DEF102858 fixing does not cause side effect 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8526
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8527
void CTGlyphSelection::TestMalayalamModifierAfterConsonantViramaZWJ( const CFbsFont& aFont )
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8528
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8529
	DoEachGurmukhiMalayalamCase( (TTestInput_PositionParam6*)Indic_MalayalamModifierAfterConsonantViramaZWJ, aFont );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8530
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8531
#ifdef GEN_GURMUKHIMALAYALAMTESTDATA
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8532
    _LIT(KValidFontPath, "c:\\MalayalamModifierAfterConsonantViramaZWJ.txt");
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8533
    GenerateGurmukhiMalayalamData(KValidFontPath, (TTestInput_PositionParam6*)Indic_GurmukhiDigit, aFont );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8534
#endif  
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8535
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8536
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8537
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8538
@SYMTestCaseID          GRAPHICS-TI18N-GDI-CIT-4071
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8539
@SYMTestCaseDesc        case to check syllable with consonant in initial position
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8540
@SYMTestPriority        High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8541
@SYMTestActions         Call to CFont::GetCharacterPosition2/CFont::MeasureText to check the following using data from above requirements, 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8542
						each requirement above gives a consonant leading Unicode sequence. Each sequence falls into one of the following structure, 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8543
						then pass it to the calling.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8544
						1.Pass consonant + vowel single code, and  consonant + its split representation to shaper
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8545
						  The following Single representation /Split representation is passed to shaper
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8546
						  0x0d14/0x0d12 + 0x0d57, 0x0d4a/0x0d46 + 0x0d3e, 0x0d4b/0x0d47 + 0x0d3e
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8547
						  0x0d4c/0x0d46 + 0x0d57
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8548
						2.Pass two Consonant and dependent Vowel sequences to shaper, save both returned results. 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8549
						  The Consonant is first sequence is difference with that of the second sequence, and the dependent Vowel is identical.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8550
						3.Pass Consonant and Matras /-e/, /-ee/, /-ai/ to shaper. 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8551
						4.Pass Consonant and Matras /-o/, /-oo/, /-au/ to shaper
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8552
						  Pass Consonant and 0x0d4c (first form of Matra /-au/ ) to shaper,
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8553
						  Pass Consonant, 0x0d46 and 0x0d57 (second form of Matra /-au/) to shaper002E
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8554
						5.Pass Consonant + 0x0d4d + Consonant to shaper
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8555
						  Pass Consonant + Virama + Consonant + 0x0d4d to shaper
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8556
						6.Pass Consonant (NNA, NA, RA, LA, LLA) + Virama + ZWJ to shaper
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8557
						  Pass KA + Virama + ZWJ to shaper.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8558
						  Pass other Consonant + Virama + ZWJ to shaper.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8559
						7.Pass RA + Virama + ZWJ to shaper,
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8560
						  Pass RRA + Viram + ZWJ to shaper.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8561
						8.Pass Chillu ( one of 6 special consontants + Virama + ZWJ) and Vowel to shaper
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8562
						  Pass Chillu and Modifier to shaper
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8563
						  Pass Chillu and Virama to shaper
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8564
						9.Pass one of (KA, GA, PA, BA, MA, LA, SHA, SA, HA), Virama and LA to shaper
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8565
						10.Pass CA, Virama and CA to shaper
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8566
						   Pass BA, Virama and BA to shaper
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8567
						   Pass YA, Virama and YA to shaper
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8568
						   Pass VA, Virama and VA to shaper
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8569
						   PASS other Consonant, Virama and the same Consonant to shaper.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8570
						11.Pass G.GA, C.CHA, K.TTA, SS.TTA, DD.DDA, NN.NNA, B.DA, B.DHA, P.PA, RR.RRA, SH.SHA, S.SA clusters to shaper.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8571
						12.Pass Consonant clusters from REQ1.3.11 to shaper.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8572
						13.Pass S.RR.RRA to shaper,
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8573
						   Pass N.RR.RRA to shaper
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8574
@SYMTestExpectedResults 1.First sequence is equivalent to the second sequence 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8575
						2.The dependent vowel position is different between the two sequence
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8576
						3.The visual position of the Matras is different with the logical order (The same as Keyboard input order).
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8577
						4.The Matra is split into halves from visual effect. And the second form of Matra /-au/ is recognized the same as the first form of it.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8578
						5.0x0d4d is recognized as a Virama in first sequence, itĄ¯s recognized as MATRA (mid-u sound) in the second sequence
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8579
						6.Virama and ZWJ is interpreted as Chillaksharam for the 6 consonants, for others itĄ¯s not interpreted that way.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8580
						7.Both sequences will interprete RA Chillu.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8581
						8.The combining character should not combine with Chillu.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8582
						9.LA takes subscript shape.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8583
						10.CA, BA, YA, VA double should result in a ligature, other consonants donĄ¯t.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8584
						11.The latter consonant in the cluster becomes a miniature subscript.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8585
						12.sequence forms a ligature.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8586
						13.sequence forms a ligature
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8587
@SYMPREQ 1922: Malayalam support
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8588
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8589
void CTGlyphSelection::TestMalayalamWithConsonantInitial( const CFbsFont& aFont )
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8590
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8591
	DoEachGurmukhiMalayalamCase( (TTestInput_PositionParam6*)Indic_MalayalamConsonantLeading, aFont );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8592
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8593
#ifdef GEN_GURMUKHIMALAYALAMTESTDATA
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8594
    _LIT(KValidFontPath, "c:\\MalayalamWithConsonantInitial.txt");
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8595
    GenerateGurmukhiMalayalamData(KValidFontPath, (TTestInput_PositionParam6*)Indic_GurmukhiDigit, aFont );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8596
#endif  
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8597
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8598
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8599
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8600
@SYMTestCaseID          GRAPHICS-TI18N-GDI-CIT-4072
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8601
@SYMTestCaseDesc        case to check if shaper can render Malayalam with other implemented Indic scripts and Latin
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8602
@SYMTestPriority        High
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8603
@SYMTestActions         Call to CFont::GetCharacterPosition2/CFont::MeasureText to check the following
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8604
						1.Pass Malayalam sentence and Latin to the function
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8605
						2.Pass Latin and Malayalam setence.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8606
						3.Pass syllable, Latin and syllable
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8607
						4.Pass phoneme, Latin and phoneme
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8608
						5.Pass Malayalam syllable and other Indic scripts together.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8609
						6.Pass Malayalam phoneme and other Indic script phoneme
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8610
@SYMTestExpectedResults Malayalam and Latin characters donĄ¯t mess up. Malayalam phoneme doesnĄ¯t combine with Latin into a new syllable, 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8611
						Malayalam phoneme doesnĄ¯t form a syllable with other Indic script.
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8612
@SYMPREQ 1922: Malayalam support
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8613
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8614
void CTGlyphSelection::TestMalayalamWithVowelInitial( const CFbsFont& aFont )
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8615
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8616
	DoEachGurmukhiMalayalamCase( (TTestInput_PositionParam6*)Indic_MalayalamVowelLeading, aFont );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8617
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8618
#ifdef GEN_GURMUKHIMALAYALAMTESTDATA
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8619
    _LIT(KValidFontPath, "c:\\MalayalamWithVowelInitial.txt");
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8620
    GenerateGurmukhiMalayalamData(KValidFontPath, (TTestInput_PositionParam6*)Indic_GurmukhiDigit, aFont );
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8621
#endif 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8622
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8623
64
f66674566702 201033_08
hgs
parents: 45
diff changeset
  8624
#ifdef TEST
f66674566702 201033_08
hgs
parents: 45
diff changeset
  8625
#undef TEST
f66674566702 201033_08
hgs
parents: 45
diff changeset
  8626
#define TEST(a)  testBooleanTrue((a), (TText8*)__FILE__, __LINE__)
f66674566702 201033_08
hgs
parents: 45
diff changeset
  8627
#endif
45
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8628
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8629
//--------------
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8630
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8631
__CONSTRUCT_STEP__(GlyphSelection)
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8632
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8633
void CTGlyphSelectionStep::TestSetupL()
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8634
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8635
#ifdef _GLOWCODE_LAUNCH_DELAY
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8636
	INFO_PRINTF1(_L("Time delay...."));
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8637
	TTime t1, t2;
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8638
	t1.UniversalTime();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8639
	t1 += TTimeIntervalSeconds(15);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8640
	do 
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8641
		{
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8642
		t2.UniversalTime();
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8643
		}
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8644
	while (t2 < t1);
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8645
#endif
662fa7de7023 201024_05
hgs
parents:
diff changeset
  8646
	}