textrendering/numberformatting/tsrc/testconv.cpp
changeset 0 1fb32624e06b
equal deleted inserted replaced
-1:000000000000 0:1fb32624e06b
       
     1 /*
       
     2 * Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description: 
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 #include <e32std.h>
       
    20 #include <e32test.h>
       
    21 #include <e32cons.h>
       
    22 #include <e32base.h>
       
    23 #include <e32svr.h>
       
    24 
       
    25 #include <f32file.h>
       
    26 
       
    27 #include "NumberConversion.h"
       
    28 
       
    29 RTest test(_L("NumberConversion Test"));
       
    30 CConsoleBase* console;
       
    31 
       
    32 
       
    33 void DriveEngineL();
       
    34 void SetupConsoleL();
       
    35 
       
    36 const TInt KCalypsoConsoleHeight = 15;
       
    37 const TInt KCalypsoConsoleWidth = 20;
       
    38 
       
    39 
       
    40 void RunTestsL();
       
    41 
       
    42 
       
    43 _LIT(KStringToNumber1, "123");	// plain western
       
    44 _LIT(KStringToNumber2, "\x0661\x0662\x0663");  // plain arabic
       
    45 _LIT(KStringToNumber3, "\x06F1\x06F2\x06F3");	// plain eastern-arabic
       
    46 _LIT(KStringToNumber4, "12\x0663");	// mixed western/arabic
       
    47 
       
    48 /**
       
    49 * Work around for DEF063276.
       
    50 * This literal is now loaded from a z:\test\data\KStringToNumber5.dat
       
    51 * Bullseye Coverage corrupts this literal, to avoid this it is stored in a file as to not be touched by Bullseye Coverage.
       
    52 */
       
    53 
       
    54 //_LIT(KStringToNumber5, "1\x06F2\x0033");	// mixed western/eastern-arabic
       
    55 _LIT(KStringToNumber6, "\x0661\x0662\x06F3");	// mixed arabic/eastern-arabic
       
    56 _LIT(KStringToNumber7, "1\x0662\x06F3");	// mixed western/arabic/eastern-arabic
       
    57 _LIT(KStringToNumber8, "\x0967\x0968\x0969"); // plain devanagari
       
    58 _LIT(KStringToNumber9, "\x0E51\x0E52\x0E53"); // plain thai
       
    59 _LIT(KStringToNumber10, "1\x0968\x0969"); // mixed western/devanagari
       
    60 _LIT(KStringToNumber11, "1\x0E52\x0E53"); // mixed western/thai
       
    61 _LIT(KStringToNumber12, "\x0967\x0E52\x0E53"); // mixed devanagari/thai
       
    62 _LIT(KStringToNumber13, "1\x0E52\x0969"); // mixed western/thai/devanagari
       
    63 _LIT(KStringToNumber14, "xxx");	// unknown symbols
       
    64 
       
    65 // DEF101816: TDigitType enum needs to be extended to inlcude Indic digits to enable number co101816: TDigitType enum needs to be extended to inlcude Indic digits to enable number co
       
    66 _LIT(KStringToNumber15, "\x09E7\x09E8\x09E9"); // plain bengali
       
    67 _LIT(KStringToNumber16, "\x0A67\x0A68\x0A69"); // plain gurmukhi
       
    68 _LIT(KStringToNumber17, "\x0AE7\x0AE8\x0AE9"); // plain gujarati
       
    69 _LIT(KStringToNumber18, "\x0B67\x0B68\x0B69"); // plain oriya
       
    70 _LIT(KStringToNumber19, "\x0BE7\x0BE8\x0BE9"); // plain tamil
       
    71 _LIT(KStringToNumber20, "\x0C67\x0C68\x0C69"); // plain telegu
       
    72 _LIT(KStringToNumber21, "\x0CE7\x0CE8\x0CE9"); // plain kannada
       
    73 _LIT(KStringToNumber22, "\x0D67\x0D68\x0D69"); // plain malayalam
       
    74 _LIT(KStringToNumber23, "\x0ED1\x0ED2\x0ED3"); // plain lao
       
    75 _LIT(KStringToNumber24, "\x0F21\x0F22\x0F32"); // plain tibetan
       
    76 _LIT(KStringToNumber25, "\x01041\x01042\x01043"); // plain mayanmar
       
    77 _LIT(KStringToNumber26, "\x017E1\x017E2\x017E3"); // plain khmer
       
    78 _LIT(KStringToNumber27, "1\x0968\x0969"); // mixed western/bengali
       
    79 _LIT(KStringToNumber28, "\x0CE7\x0E52\x0E53"); // mixed kannada/thai
       
    80 _LIT(KStringToNumber29, "1\x0E52\x0969"); // mixed western/thai/tibetan
       
    81 // End of DEF101816: TDigitType enum needs to be extended to inlcude Indic digits to enable number co
       
    82 
       
    83 _LIT(KPositionOfNextNumber1, "test1");	//western
       
    84 _LIT(KPositionOfNextNumber2, "testa\x0661");	//arabic
       
    85 _LIT(KPositionOfNextNumber3, "testaa\x06F1");	//eastern arabic
       
    86 _LIT(KPositionOfNextNumber4, "testaaa\x0967");	// devanagari
       
    87 _LIT(KPositionOfNextNumber5, "testaaaa\x0E51");	// thai
       
    88 _LIT(KPositionOfNextNumber6, "test");	// none
       
    89 
       
    90 // DEF101816: TDigitType enum needs to be extended to inlcude Indic digits to enable number co
       
    91 _LIT(KPositionOfNextNumber7, "testaaaaa\x09E7");	// bengali
       
    92 _LIT(KPositionOfNextNumber8, "testaaaaaa\x0A67");	// gurmukhi
       
    93 _LIT(KPositionOfNextNumber9, "testaaaaaaa\x0AE7");	// gujarati
       
    94 _LIT(KPositionOfNextNumber10, "testaaaaaaaa\x0B67");	// oriya
       
    95 _LIT(KPositionOfNextNumber11, "testaaaaaaaaa\x0BE7");	// tamil
       
    96 _LIT(KPositionOfNextNumber12, "testaaaaaaaaaa\x0C67");	// telegu
       
    97 _LIT(KPositionOfNextNumber13, "testaaaaaaaaaaa\x0CE7");	// kannada
       
    98 _LIT(KPositionOfNextNumber14, "testaaaaaaaaaaaa\x0D67");	// malayalam
       
    99 _LIT(KPositionOfNextNumber15, "testaaaaaaaaaaaaa\x0ED1");	// lao
       
   100 _LIT(KPositionOfNextNumber16, "testaaaaaaaaaaaaaa\x0F20");	// tibetan
       
   101 _LIT(KPositionOfNextNumber17, "testaaaaaaaaaaaaaaa\x01041");	// mayanmar
       
   102 _LIT(KPositionOfNextNumber18, "testaaaaaaaaaaaaaaaa\x017E1");	// khmer
       
   103 
       
   104 
       
   105 
       
   106 _LIT(KFormatNumber1, "123");	// plain western
       
   107 _LIT(KFormatNumber2, "1230");	// plain western
       
   108 _LIT(KFormatNumber3, "\x0661\x0662\x0663");  // plain arabic
       
   109 _LIT(KFormatNumber4, "\x06F1\x06F2\x06F3");	// plain eastern-arabic
       
   110 _LIT(KFormatNumber5, "\x0967\x0968\x0969");	// plain devanagari
       
   111 _LIT(KFormatNumber6, "\x0E51\x0E52\x0E53");	// plain thai
       
   112 
       
   113 // DEF101816: TDigitType enum needs to be extended to inlcude Indic digits to enable number co
       
   114 _LIT(KFormatNumber7, "\x09E7\x09E8\x09E9"); // plain bengali
       
   115 _LIT(KFormatNumber8, "\x0A67\x0A68\x0A69"); // plain gurmukhi
       
   116 _LIT(KFormatNumber9, "\x0AE7\x0AE8\x0AE9"); // plain gujarati
       
   117 _LIT(KFormatNumber10, "\x0B67\x0B68\x0B69"); // plain oriya
       
   118 _LIT(KFormatNumber11, "\x0BE7\x0BE8\x0BE9"); // plain tamil
       
   119 _LIT(KFormatNumber12, "\x0C67\x0C68\x0C69"); // plain telegu
       
   120 _LIT(KFormatNumber13, "\x0CE7\x0CE8\x0CE9"); // plain kannada
       
   121 _LIT(KFormatNumber14, "\x0D67\x0D68\x0D69"); // plain malayalam
       
   122 _LIT(KFormatNumber15, "\x0ED1\x0ED2\x0ED3"); // plain lao
       
   123 _LIT(KFormatNumber16, "\x0F21\x0F22\x0F23"); // plain tibetan
       
   124 _LIT(KFormatNumber17, "\x01041\x01042\x01043"); // plain mayanmar
       
   125 _LIT(KFormatNumber18, "\x017E1\x017E2\x017E3"); // plain khmer
       
   126 // End of DEF101816: TDigitType enum needs to be extended to inlcude Indic digits to enable number co
       
   127 
       
   128 _LIT(KAppendFormatNumber1, "test123");	// plain western
       
   129 _LIT(KAppendFormatNumber2, "test1231230");	// plain western
       
   130 _LIT(KAppendFormatNumber3, "test1231230\x0661\x0662\x0663");  // plain arabic
       
   131 _LIT(KAppendFormatNumber4, "test1231230\x0661\x0662\x0663\x06F1\x06F2\x06F3");	// plain eastern-arabic
       
   132 _LIT(KAppendFormatNumber5, "test1231230\x0661\x0662\x0663\x06F1\x06F2\x06F3\x0967\x0968\x0969");	// plain devanagari
       
   133 _LIT(KAppendFormatNumber6, "test1231230\x0661\x0662\x0663\x06F1\x06F2\x06F3\x0967\x0968\x0969\x0E51\x0E52\x0E53");	// plain thai
       
   134 
       
   135 // DEF101816: TDigitType enum needs to be extended to inlcude Indic digits to enable number co
       
   136 _LIT(KAppendFormatNumber7, "test1231230\x0661\x0662\x0663\x06F1\x06F2\x06F3\x0967\x0968\x0969\x0E51\x0E52\x0E53\x09E7\x09E8\x09E9");	// plain bengali
       
   137 _LIT(KAppendFormatNumber8, "test1231230\x0661\x0662\x0663\x06F1\x06F2\x06F3\x0967\x0968\x0969\x0E51\x0E52\x0E53\x09E7\x09E8\x09E9\x0A67\x0A68\x0A69");	// plain gurmukhi
       
   138 _LIT(KAppendFormatNumber9, "test1231230\x0661\x0662\x0663\x06F1\x06F2\x06F3\x0967\x0968\x0969\x0E51\x0E52\x0E53\x09E7\x09E8\x09E9\x0A67\x0A68\x0A69\x0AE7\x0AE8\x0AE9");	// plain gujarati
       
   139 _LIT(KAppendFormatNumber10, "test1231230\x0661\x0662\x0663\x06F1\x06F2\x06F3\x0967\x0968\x0969\x0E51\x0E52\x0E53\x09E7\x09E8\x09E9\x0A67\x0A68\x0A69\x0AE7\x0AE8\x0AE9\x0B67\x0B68\x0B69");	// plain oriya
       
   140 _LIT(KAppendFormatNumber11, "test1231230\x0661\x0662\x0663\x06F1\x06F2\x06F3\x0967\x0968\x0969\x0E51\x0E52\x0E53\x09E7\x09E8\x09E9\x0A67\x0A68\x0A69\x0AE7\x0AE8\x0AE9\x0B67\x0B68\x0B69\x0BE7\x0BE8\x0BE9");	// plain tamil
       
   141 _LIT(KAppendFormatNumber12, "test1231230\x0661\x0662\x0663\x06F1\x06F2\x06F3\x0967\x0968\x0969\x0E51\x0E52\x0E53\x09E7\x09E8\x09E9\x0A67\x0A68\x0A69\x0AE7\x0AE8\x0AE9\x0B67\x0B68\x0B69\x0BE7\x0BE8\x0BE9\x0C67\x0C68\x0C69");	// plain telegu
       
   142 _LIT(KAppendFormatNumber13, "test1231230\x0661\x0662\x0663\x06F1\x06F2\x06F3\x0967\x0968\x0969\x0E51\x0E52\x0E53\x09E7\x09E8\x09E9\x0A67\x0A68\x0A69\x0AE7\x0AE8\x0AE9\x0B67\x0B68\x0B69\x0BE7\x0BE8\x0BE9\x0C67\x0C68\x0C69\x0CE7\x0CE8\x0CE9");	// plain kannada
       
   143 _LIT(KAppendFormatNumber14, "test1231230\x0661\x0662\x0663\x06F1\x06F2\x06F3\x0967\x0968\x0969\x0E51\x0E52\x0E53\x09E7\x09E8\x09E9\x0A67\x0A68\x0A69\x0AE7\x0AE8\x0AE9\x0B67\x0B68\x0B69\x0BE7\x0BE8\x0BE9\x0C67\x0C68\x0C69\x0CE7\x0CE8\x0CE9\x0D67\x0D68\x0D69");	// plain malayalam
       
   144 _LIT(KAppendFormatNumber15, "test1231230\x0661\x0662\x0663\x06F1\x06F2\x06F3\x0967\x0968\x0969\x0E51\x0E52\x0E53\x09E7\x09E8\x09E9\x0A67\x0A68\x0A69\x0AE7\x0AE8\x0AE9\x0B67\x0B68\x0B69\x0BE7\x0BE8\x0BE9\x0C67\x0C68\x0C69\x0CE7\x0CE8\x0CE9\x0D67\x0D68\x0D69\x0ED1\x0ED2\x0ED3");	// plain lao
       
   145 _LIT(KAppendFormatNumber16, "test1231230\x0661\x0662\x0663\x06F1\x06F2\x06F3\x0967\x0968\x0969\x0E51\x0E52\x0E53\x09E7\x09E8\x09E9\x0A67\x0A68\x0A69\x0AE7\x0AE8\x0AE9\x0B67\x0B68\x0B69\x0BE7\x0BE8\x0BE9\x0C67\x0C68\x0C69\x0CE7\x0CE8\x0CE9\x0D67\x0D68\x0D69\x0ED1\x0ED2\x0ED3\x0F21\x0F22\x0F23");	// plain tibetan
       
   146 _LIT(KAppendFormatNumber17, "test1231230\x0661\x0662\x0663\x06F1\x06F2\x06F3\x0967\x0968\x0969\x0E51\x0E52\x0E53\x09E7\x09E8\x09E9\x0A67\x0A68\x0A69\x0AE7\x0AE8\x0AE9\x0B67\x0B68\x0B69\x0BE7\x0BE8\x0BE9\x0C67\x0C68\x0C69\x0CE7\x0CE8\x0CE9\x0D67\x0D68\x0D69\x0ED1\x0ED2\x0ED3\x0F21\x0F22\x0F23\x01041\x01042\x01043");	// plain mayanmar
       
   147 _LIT(KAppendFormatNumber18, "test1231230\x0661\x0662\x0663\x06F1\x06F2\x06F3\x0967\x0968\x0969\x0E51\x0E52\x0E53\x09E7\x09E8\x09E9\x0A67\x0A68\x0A69\x0AE7\x0AE8\x0AE9\x0B67\x0B68\x0B69\x0BE7\x0BE8\x0BE9\x0C67\x0C68\x0C69\x0CE7\x0CE8\x0CE9\x0D67\x0D68\x0D69\x0ED1\x0ED2\x0ED3\x0F21\x0F22\x0F23\x01041\x01042\x01043\x017E1\x017E2\x017E3");	// plain khmer
       
   148 // End of DEF101816: TDigitType enum needs to be extended to inlcude Indic digits to enable number co
       
   149 
       
   150 
       
   151 _LIT(KConvertDigits0, "xyz0000123xyz0");  // western to arabic / eastern-arabic / devanagari / thai / bengali / gurmukhi
       
   152 										  // gujarati / oriya / tamil / telegu / kannada / malayalam / lao / tibetan
       
   153 										  // mayanmar / khmer
       
   154 _LIT(KConvertDigits0Result1, "xyz\x0660\x0660\x0660\x0660\x0661\x0662\x0663xyz\x0660");
       
   155 _LIT(KConvertDigits0Result2, "xyz\x06F0\x06F0\x06F0\x06F0\x06F1\x06F2\x06F3xyz\x06F0");
       
   156 _LIT(KConvertDigits0Result3, "xyz\x0966\x0966\x0966\x0966\x0967\x0968\x0969xyz\x0966");
       
   157 _LIT(KConvertDigits0Result4, "xyz\x0E50\x0E50\x0E50\x0E50\x0E51\x0E52\x0E53xyz\x0E50");
       
   158 // DEF101816: TDigitType enum needs to be extended to inlcude Indic digits to enable number co
       
   159 _LIT(KConvertDigits0Result5, "xyz\x09E6\x09E6\x09E6\x09E6\x09E7\x09E8\x09E9xyz\x09E6");
       
   160 _LIT(KConvertDigits0Result6, "xyz\x0A66\x0A66\x0A66\x0A66\x0A67\x0A68\x0A69xyz\x0A66");
       
   161 _LIT(KConvertDigits0Result7, "xyz\x0AE6\x0AE6\x0AE6\x0AE6\x0AE7\x0AE8\x0AE9xyz\x0AE6");
       
   162 _LIT(KConvertDigits0Result8, "xyz\x0B66\x0B66\x0B66\x0B66\x0B67\x0B68\x0B69xyz\x0B66");
       
   163 //_LIT(KConvertDigits0Result9, "xyz\x0BE6\x0BE6\x0BE6\x0BE6\x0BE7\x0BE8\x0BE9xyz\x0BE6");
       
   164 _LIT(KConvertDigits0Result10, "xyz\x0C66\x0C66\x0C66\x0C66\x0C67\x0C68\x0C69xyz\x0C66");
       
   165 _LIT(KConvertDigits0Result11, "xyz\x0CE6\x0CE6\x0CE6\x0CE6\x0CE7\x0CE8\x0CE9xyz\x0CE6");
       
   166 _LIT(KConvertDigits0Result12, "xyz\x0D66\x0D66\x0D66\x0D66\x0D67\x0D68\x0D69xyz\x0D66");
       
   167 _LIT(KConvertDigits0Result13, "xyz\x0ED0\x0ED0\x0ED0\x0ED0\x0ED1\x0ED2\x0ED3xyz\x0ED0");
       
   168 _LIT(KConvertDigits0Result14, "xyz\x0F20\x0F20\x0F20\x0F20\x0F21\x0F22\x0F23xyz\x0F20");
       
   169 _LIT(KConvertDigits0Result15, "xyz\x01040\x01040\x01040\x01040\x01041\x01042\x01043xyz\x01040");
       
   170 _LIT(KConvertDigits0Result16, "xyz\x017E0\x017E0\x017E0\x017E0\x017E1\x017E2\x017E3xyz\x017E0");
       
   171 // End of DEF101816: TDigitType enum needs to be extended to inlcude Indic digits to enable number co
       
   172 
       
   173 _LIT(KConvertDigits1, "xyz123xyz");  // western to arabic / eastern-arabic / devanagari / thai / bengali / gurmukhi
       
   174 									 // gujarati / oriya / tamil / telegu / kannada / malayalam / lao / tibetan
       
   175 									 // mayanmar / khmer 
       
   176 _LIT(KConvertDigits1Result1, "xyz\x0661\x0662\x0663xyz");
       
   177 _LIT(KConvertDigits1Result2, "xyz\x06F1\x06F2\x06F3xyz");
       
   178 _LIT(KConvertDigits1Result3, "xyz\x0967\x0968\x0969xyz");
       
   179 _LIT(KConvertDigits1Result4, "xyz\x0E51\x0E52\x0E53xyz");
       
   180 // DEF101816: TDigitType enum needs to be extended to inlcude Indic digits to enable number co
       
   181 _LIT(KConvertDigits1Result5, "xyz\x09E7\x09E8\x09E9xyz");
       
   182 _LIT(KConvertDigits1Result6, "xyz\x0A67\x0A68\x0A69xyz");
       
   183 _LIT(KConvertDigits1Result7, "xyz\x0AE7\x0AE8\x0AE9xyz");
       
   184 _LIT(KConvertDigits1Result8, "xyz\x0B67\x0B68\x0B69xyz");
       
   185 _LIT(KConvertDigits1Result9, "xyz\x0BE7\x0BE8\x0BE9xyz");
       
   186 _LIT(KConvertDigits1Result10, "xyz\x0C67\x0C68\x0C69xyz");
       
   187 _LIT(KConvertDigits1Result11, "xyz\x0CE7\x0CE8\x0CE9xyz");
       
   188 _LIT(KConvertDigits1Result12, "xyz\x0D67\x0D68\x0D69xyz");
       
   189 _LIT(KConvertDigits1Result13, "xyz\x0ED1\x0ED2\x0ED3xyz");
       
   190 _LIT(KConvertDigits1Result14, "xyz\x0F21\x0F22\x0F23xyz");
       
   191 _LIT(KConvertDigits1Result15, "xyz\x01041\x01042\x01043xyz");
       
   192 _LIT(KConvertDigits1Result16, "xyz\x017E1\x017E2\x017E3xyz");
       
   193 // End of DEF101816: TDigitType enum needs to be extended to inlcude Indic digits to enable number co
       
   194 
       
   195 _LIT(KConvertDigits2, "xyz\x0661\x0662\x0663xyz");  // arabic to western / eastern-arabic/ devanagari/ thai / bengali / gurmukhi
       
   196 									 				// gujarati / oriya / tamil / telegu / kannada / malayalam / lao / tibetan
       
   197 									 				// mayanmar / khmer 
       
   198 _LIT(KConvertDigits2Result1, "xyz123xyz");
       
   199 _LIT(KConvertDigits2Result2, "xyz\x06F1\x06F2\x06F3xyz");
       
   200 _LIT(KConvertDigits2Result3, "xyz\x0967\x0968\x0969xyz");
       
   201 _LIT(KConvertDigits2Result4, "xyz\x0E51\x0E52\x0E53xyz");
       
   202 // DEF101816: TDigitType enum needs to be extended to inlcude Indic digits to enable number co
       
   203 _LIT(KConvertDigits2Result5, "xyz\x09E7\x09E8\x09E9xyz");
       
   204 _LIT(KConvertDigits2Result6, "xyz\x0A67\x0A68\x0A69xyz");
       
   205 _LIT(KConvertDigits2Result7, "xyz\x0AE7\x0AE8\x0AE9xyz");
       
   206 _LIT(KConvertDigits2Result8, "xyz\x0B67\x0B68\x0B69xyz");
       
   207 _LIT(KConvertDigits2Result9, "xyz\x0BE7\x0BE8\x0BE9xyz");
       
   208 _LIT(KConvertDigits2Result10, "xyz\x0C67\x0C68\x0C69xyz");
       
   209 _LIT(KConvertDigits2Result11, "xyz\x0CE7\x0CE8\x0CE9xyz");
       
   210 _LIT(KConvertDigits2Result12, "xyz\x0D67\x0D68\x0D69xyz");
       
   211 _LIT(KConvertDigits2Result13, "xyz\x0ED1\x0ED2\x0ED3xyz");
       
   212 _LIT(KConvertDigits2Result14, "xyz\x0F21\x0F22\x0F23xyz");
       
   213 _LIT(KConvertDigits2Result15, "xyz\x01041\x01042\x01043xyz");
       
   214 _LIT(KConvertDigits2Result16, "xyz\x017E1\x017E2\x017E3xyz");
       
   215 //End of DEF101816: TDigitType enum needs to be extended to inlcude Indic digits to enable number co
       
   216 
       
   217 _LIT(KConvertDigits3, "xyz\x06F1\x06F2\x06F3xyz");	// eastern arabic to western / arabic / devenagari/ thai / bengali / gurmukhi
       
   218 									 				// gujarati / oriya / tamil / telegu / kannada / malayalam / lao / tibetan
       
   219 									 				// mayanmar / khmer 
       
   220 _LIT(KConvertDigits3Result1, "xyz123xyz");
       
   221 _LIT(KConvertDigits3Result2, "xyz\x0661\x0662\x0663xyz");
       
   222 _LIT(KConvertDigits3Result3, "xyz\x0967\x0968\x0969xyz");
       
   223 _LIT(KConvertDigits3Result4, "xyz\x0E51\x0E52\x0E53xyz");
       
   224 // DEF101816: TDigitType enum needs to be extended to inlcude Indic digits to enable number co
       
   225 _LIT(KConvertDigits3Result5, "xyz\x09E7\x09E8\x09E9xyz");
       
   226 _LIT(KConvertDigits3Result6, "xyz\x0A67\x0A68\x0A69xyz");
       
   227 _LIT(KConvertDigits3Result7, "xyz\x0AE7\x0AE8\x0AE9xyz");
       
   228 _LIT(KConvertDigits3Result8, "xyz\x0B67\x0B68\x0B69xyz");
       
   229 _LIT(KConvertDigits3Result9, "xyz\x0BE7\x0BE8\x0BE9xyz");
       
   230 _LIT(KConvertDigits3Result10, "xyz\x0C67\x0C68\x0C69xyz");
       
   231 _LIT(KConvertDigits3Result11, "xyz\x0CE7\x0CE8\x0CE9xyz");
       
   232 _LIT(KConvertDigits3Result12, "xyz\x0D67\x0D68\x0D69xyz");
       
   233 _LIT(KConvertDigits3Result13, "xyz\x0ED1\x0ED2\x0ED3xyz");
       
   234 _LIT(KConvertDigits3Result14, "xyz\x0F21\x0F22\x0F23xyz");
       
   235 _LIT(KConvertDigits3Result15, "xyz\x01041\x01042\x01043xyz");
       
   236 _LIT(KConvertDigits3Result16, "xyz\x017E1\x017E2\x017E3xyz");
       
   237 // End of DEF101816: TDigitType enum needs to be extended to inlcude Indic digits to enable number co
       
   238 
       
   239 
       
   240 _LIT(KConvertDigits4, "xyz123xyz123xyz");  // western to arabic / eastern-arabic
       
   241 _LIT(KConvertDigits4Result1, "xyz\x0661\x0662\x0663xyz\x0661\x0662\x0663xyz");
       
   242 _LIT(KConvertDigits4Result2, "xyz\x06F1\x06F2\x06F3xyz\x06F1\x06F2\x06F3xyz");
       
   243 _LIT(KConvertDigits5, "xyz\x0661\x0662\x0663xyz\x0661\x0662\x0663xyz");  // arabic to western / eastern-arabic
       
   244 _LIT(KConvertDigits5Result1, "xyz123xyz123xyz");
       
   245 _LIT(KConvertDigits5Result2, "xyz\x06F1\x06F2\x06F3xyz\x06F1\x06F2\x06F3xyz");
       
   246 _LIT(KConvertDigits6, "xyz\x06F1\x06F2\x06F3xyz\x06F1\x06F2\x06F3xyz");	// eastern arabic to western / arabic
       
   247 _LIT(KConvertDigits6Result1, "xyz123xyz123xyz");
       
   248 _LIT(KConvertDigits6Result2, "xyz\x0661\x0662\x0663xyz\x0661\x0662\x0663xyz");
       
   249 
       
   250 _LIT(KConvertDigits7,"xyzxyz");
       
   251 
       
   252 _LIT(KConvertDigits8, "123");  // western to arabic simple 
       
   253 _LIT(KConvertDigits8Result1, "\x0661\x0662\x0663");
       
   254 
       
   255 _LIT(KConvertDigits9, "35840-1234567890123");
       
   256 _LIT(KConvertDigits9Result1, "35840-1234567890123");
       
   257 
       
   258 
       
   259 // DEF101816: TDigitType enum needs to be extended to inlcude Indic digits to enable number co
       
   260 _LIT(KConvertDigits10, "xyz\x0967\x0968\x0969xyz");	// devanagari to western / arabic / eastern arabic / thai / bengali / gurmukhi
       
   261 									 				// gujarati / oriya / tamil / telegu / kannada / malayalam / lao / tibetan
       
   262 									 				// mayanmar / khmer
       
   263 _LIT(KConvertDigits10Result1, "xyz123xyz");
       
   264 _LIT(KConvertDigits10Result2, "xyz\x0661\x0662\x0663xyz");
       
   265 _LIT(KConvertDigits10Result3, "xyz\x06F1\x06F2\x06F3xyz");
       
   266 _LIT(KConvertDigits10Result4, "xyz\x0E51\x0E52\x0E53xyz");
       
   267 _LIT(KConvertDigits10Result5, "xyz\x09E7\x09E8\x09E9xyz");
       
   268 _LIT(KConvertDigits10Result6, "xyz\x0A67\x0A68\x0A69xyz");
       
   269 _LIT(KConvertDigits10Result7, "xyz\x0AE7\x0AE8\x0AE9xyz");
       
   270 _LIT(KConvertDigits10Result8, "xyz\x0B67\x0B68\x0B69xyz");
       
   271 _LIT(KConvertDigits10Result9, "xyz\x0BE7\x0BE8\x0BE9xyz");
       
   272 _LIT(KConvertDigits10Result10, "xyz\x0C67\x0C68\x0C69xyz");
       
   273 _LIT(KConvertDigits10Result11, "xyz\x0CE7\x0CE8\x0CE9xyz");
       
   274 _LIT(KConvertDigits10Result12, "xyz\x0D67\x0D68\x0D69xyz");
       
   275 _LIT(KConvertDigits10Result13, "xyz\x0ED1\x0ED2\x0ED3xyz");
       
   276 _LIT(KConvertDigits10Result14, "xyz\x0F21\x0F22\x0F23xyz");
       
   277 _LIT(KConvertDigits10Result15, "xyz\x01041\x01042\x01043xyz");
       
   278 _LIT(KConvertDigits10Result16, "xyz\x017E1\x017E2\x017E3xyz");
       
   279 
       
   280 
       
   281 
       
   282 
       
   283 _LIT(KConvertDigits11, "xyz\x0CE7\x0CE8\x0CE9xyz");	// kannada to western / arabic / eastern arabic / devanagari /thai / bengali / gurmukhi
       
   284 									 				// gujarati / oriya / tamil / telegu / malayalam / lao / tibetan
       
   285 									 				// mayanmar / khmer
       
   286 _LIT(KConvertDigits11Result1, "xyz123xyz");
       
   287 _LIT(KConvertDigits11Result2, "xyz\x0661\x0662\x0663xyz");
       
   288 _LIT(KConvertDigits11Result3, "xyz\x06F1\x06F2\x06F3xyz");
       
   289 _LIT(KConvertDigits11Result4, "xyz\x0967\x0968\x0969xyz");
       
   290 _LIT(KConvertDigits11Result5, "xyz\x0E51\x0E52\x0E53xyz");
       
   291 _LIT(KConvertDigits11Result6, "xyz\x09E7\x09E8\x09E9xyz");
       
   292 _LIT(KConvertDigits11Result7, "xyz\x0A67\x0A68\x0A69xyz");
       
   293 _LIT(KConvertDigits11Result8, "xyz\x0AE7\x0AE8\x0AE9xyz");
       
   294 _LIT(KConvertDigits11Result9, "xyz\x0B67\x0B68\x0B69xyz");
       
   295 _LIT(KConvertDigits11Result10, "xyz\x0BE7\x0BE8\x0BE9xyz");
       
   296 _LIT(KConvertDigits11Result11, "xyz\x0C67\x0C68\x0C69xyz");
       
   297 _LIT(KConvertDigits11Result12, "xyz\x0D67\x0D68\x0D69xyz");
       
   298 _LIT(KConvertDigits11Result13, "xyz\x0ED1\x0ED2\x0ED3xyz");
       
   299 _LIT(KConvertDigits11Result14, "xyz\x0F21\x0F22\x0F23xyz");
       
   300 _LIT(KConvertDigits11Result15, "xyz\x01041\x01042\x01043xyz");
       
   301 _LIT(KConvertDigits11Result16, "xyz\x017E1\x017E2\x017E3xyz");
       
   302 
       
   303 
       
   304 
       
   305 _LIT(KConvertDigits12, "xyz\x0AE7\x0AE8\x0AE9xyz");	// gujarati to western / arabic / eastern arabic / devanagari /thai / bengali / gurmukhi
       
   306 									 				// oriya / tamil / telegu / kannada / malayalam / lao / tibetan
       
   307 									 				// mayanmar / khmer
       
   308 _LIT(KConvertDigits12Result1, "xyz123xyz");
       
   309 _LIT(KConvertDigits12Result2, "xyz\x0661\x0662\x0663xyz");
       
   310 _LIT(KConvertDigits12Result3, "xyz\x06F1\x06F2\x06F3xyz");
       
   311 _LIT(KConvertDigits12Result4, "xyz\x0967\x0968\x0969xyz");
       
   312 _LIT(KConvertDigits12Result5, "xyz\x0E51\x0E52\x0E53xyz");
       
   313 _LIT(KConvertDigits12Result6, "xyz\x09E7\x09E8\x09E9xyz");
       
   314 _LIT(KConvertDigits12Result7, "xyz\x0A67\x0A68\x0A69xyz");
       
   315 _LIT(KConvertDigits12Result8, "xyz\x0B67\x0B68\x0B69xyz");
       
   316 _LIT(KConvertDigits12Result9, "xyz\x0BE7\x0BE8\x0BE9xyz");
       
   317 _LIT(KConvertDigits12Result10, "xyz\x0C67\x0C68\x0C69xyz");
       
   318 _LIT(KConvertDigits12Result11, "xyz\x0CE7\x0CE8\x0CE9xyz");
       
   319 _LIT(KConvertDigits12Result12, "xyz\x0D67\x0D68\x0D69xyz");
       
   320 _LIT(KConvertDigits12Result13, "xyz\x0ED1\x0ED2\x0ED3xyz");
       
   321 _LIT(KConvertDigits12Result14, "xyz\x0F21\x0F22\x0F23xyz");
       
   322 _LIT(KConvertDigits12Result15, "xyz\x01041\x01042\x01043xyz");
       
   323 _LIT(KConvertDigits12Result16, "xyz\x017E1\x017E2\x017E3xyz");
       
   324 
       
   325 _LIT(KConvertDigits13, "xyz\x017E1\x017E2\x017E3xyz");	// khmer to mayanmar / tibetan / lao / malayalam / kannada / telugu / tamil / oriya 
       
   326 													// gujarati / gurmukhi / bengali / thai / devanagari / eastern arabic / arabic / wetern
       
   327 
       
   328 _LIT(KConvertDigits13Result1, "xyz123xyz");
       
   329 _LIT(KConvertDigits13Result2, "xyz\x0661\x0662\x0663xyz");
       
   330 _LIT(KConvertDigits13Result3, "xyz\x06F1\x06F2\x06F3xyz");
       
   331 _LIT(KConvertDigits13Result4, "xyz\x0967\x0968\x0969xyz");
       
   332 _LIT(KConvertDigits13Result5, "xyz\x0E51\x0E52\x0E53xyz");
       
   333 _LIT(KConvertDigits13Result6, "xyz\x09E7\x09E8\x09E9xyz");
       
   334 _LIT(KConvertDigits13Result7, "xyz\x0A67\x0A68\x0A69xyz");
       
   335 _LIT(KConvertDigits13Result8, "xyz\x0AE7\x0AE8\x0AE9xyz");
       
   336 _LIT(KConvertDigits13Result9, "xyz\x0B67\x0B68\x0B69xyz");
       
   337 _LIT(KConvertDigits13Result10, "xyz\x0BE7\x0BE8\x0BE9xyz");
       
   338 _LIT(KConvertDigits13Result11, "xyz\x0C67\x0C68\x0C69xyz");
       
   339 _LIT(KConvertDigits13Result12, "xyz\x0CE7\x0CE8\x0CE9xyz");
       
   340 _LIT(KConvertDigits13Result13, "xyz\x0D67\x0D68\x0D69xyz");
       
   341 _LIT(KConvertDigits13Result14, "xyz\x0ED1\x0ED2\x0ED3xyz");
       
   342 _LIT(KConvertDigits13Result15, "xyz\x0F21\x0F22\x0F23xyz");
       
   343 _LIT(KConvertDigits13Result16, "xyz\x01041\x01042\x01043xyz");
       
   344 // End of DEF101816: TDigitType enum needs to be extended to inlcude Indic digits to enable number co
       
   345 
       
   346 
       
   347 
       
   348 
       
   349 _LIT(KFormatString1,"%d");
       
   350 _LIT(KFormatResult1a,"123");
       
   351 _LIT(KFormatResult1b,"\x0661\x0662\x0663");
       
   352 _LIT(KFormatResult1c,"\x06F1\x06F2\x06F3");
       
   353 _LIT(KFormatResult1d,"\x0967\x0968\x0969");
       
   354 _LIT(KFormatResult1e,"\x0E51\x0E52\x0E53");
       
   355 // DEF101816: TDigitType enum needs to be extended to inlcude Indic digits to enable number co
       
   356 _LIT(KFormatResult1f, "\x09E7\x09E8\x09E9"); 
       
   357 _LIT(KFormatResult1g, "\x0A67\x0A68\x0A69"); 
       
   358 _LIT(KFormatResult1h, "\x0AE7\x0AE8\x0AE9"); 
       
   359 _LIT(KFormatResult1i, "\x0B67\x0B68\x0B69"); 
       
   360 _LIT(KFormatResult1j, "\x0BE7\x0BE8\x0BE9"); 
       
   361 _LIT(KFormatResult1k, "\x0C67\x0C68\x0C69"); 
       
   362 _LIT(KFormatResult1l, "\x0CE7\x0CE8\x0CE9"); 
       
   363 _LIT(KFormatResult1m, "\x0D67\x0D68\x0D69"); 
       
   364 _LIT(KFormatResult1n, "\x0ED1\x0ED2\x0ED3"); 
       
   365 _LIT(KFormatResult1o, "\x0F21\x0F22\x0F23"); 
       
   366 _LIT(KFormatResult1p, "\x01041\x01042\x01043"); 
       
   367 _LIT(KFormatResult1q, "\x017E1\x017E2\x017E3"); 
       
   368 // End of DEF101816: TDigitType enum needs to be extended to inlcude Indic digits to enable number co
       
   369 
       
   370 _LIT(KFormatString2,"abc%dxyz");
       
   371 _LIT(KFormatResult2a,"abc123xyz");
       
   372 _LIT(KFormatResult2b,"abc\x0661\x0662\x0663xyz");
       
   373 _LIT(KFormatResult2c,"abc\x06F1\x06F2\x06F3xyz");
       
   374 _LIT(KFormatResult2d,"abc\x0967\x0968\x0969xyz");
       
   375 _LIT(KFormatResult2e,"abc\x0E51\x0E52\x0E53xyz");
       
   376 // DEF101816: TDigitType enum needs to be extended to inlcude Indic digits to enable number co
       
   377 _LIT(KFormatResult2f, "abc\x09E7\x09E8\x09E9xyz"); 
       
   378 _LIT(KFormatResult2g, "abc\x0A67\x0A68\x0A69xyz"); 
       
   379 _LIT(KFormatResult2h, "abc\x0AE7\x0AE8\x0AE9xyz"); 
       
   380 _LIT(KFormatResult2i, "abc\x0B67\x0B68\x0B69xyz"); 
       
   381 _LIT(KFormatResult2j, "abc\x0BE7\x0BE8\x0BE9xyz"); 
       
   382 _LIT(KFormatResult2k, "abc\x0C67\x0C68\x0C69xyz"); 
       
   383 _LIT(KFormatResult2l, "abc\x0CE7\x0CE8\x0CE9xyz"); 
       
   384 _LIT(KFormatResult2m, "abc\x0D67\x0D68\x0D69xyz"); 
       
   385 _LIT(KFormatResult2n, "abc\x0ED1\x0ED2\x0ED3xyz"); 
       
   386 _LIT(KFormatResult2o, "abc\x0F21\x0F22\x0F23xyz"); 
       
   387 _LIT(KFormatResult2p, "abc\x01041\x01042\x01043xyz"); 
       
   388 _LIT(KFormatResult2q, "abc\x017E1\x017E2\x017E3xyz");
       
   389 // End of DEF101816: TDigitType enum needs to be extended to inlcude Indic digits to enable number co
       
   390 
       
   391 _LIT(KFormatString3,"abc%dxyz%dxyz");
       
   392 _LIT(KFormatResult3a,"abc123xyz456xyz");
       
   393 _LIT(KFormatResult3b,"abc\x0661\x0662\x0663xyz\x0664\x0665\x0666xyz");
       
   394 _LIT(KFormatResult3c,"abc\x06F1\x06F2\x06F3xyz\x06F4\x06F5\x06F6xyz");
       
   395 _LIT(KFormatResult3d,"abc\x0967\x0968\x0969xyz\x096A\x096B\x096Cxyz");
       
   396 _LIT(KFormatResult3e,"abc\x0E51\x0E52\x0E53xyz\x0E54\x0E55\x0E56xyz");
       
   397 
       
   398 _LIT(KString, "xyz");
       
   399 _LIT(KFormatString4,"abc%d%S%d%S");
       
   400 _LIT(KFormatResult4a,"abc123xyz456xyz");
       
   401 _LIT(KFormatResult4b,"abc\x0661\x0662\x0663xyz\x0664\x0665\x0666xyz");
       
   402 _LIT(KFormatResult4c,"abc\x06F1\x06F2\x06F3xyz\x06F4\x06F5\x06F6xyz");
       
   403 
       
   404 /**
       
   405 * Utility for DEF063276 fix.
       
   406 */
       
   407 
       
   408 _LIT(KStringToNumber5Filename, "z:\\test\\data\\KStringToNumber5.dat");
       
   409 
       
   410 static void ReadDesc(TDes& aDes, const TDesC& aFilename, RFs& aFs)
       
   411 	{
       
   412 	RFile file;
       
   413 	TInt err = file.Open(aFs, aFilename, EFileRead);
       
   414 	test(err == KErrNone);
       
   415 	CleanupClosePushL(file);
       
   416 	
       
   417 	TPtr8 ptr(reinterpret_cast<TUint8*>(const_cast<TUint16*>(aDes.Ptr())), aDes.MaxSize());
       
   418 	err = file.Read(ptr);
       
   419 	test(err == KErrNone);
       
   420 	aDes.SetLength(ptr.Length() / sizeof(TText));
       
   421 	CleanupStack::PopAndDestroy(&file);
       
   422 	}
       
   423 
       
   424 
       
   425 void TestStringToNumber()
       
   426 	{
       
   427 	TInt number = 0;
       
   428 	TInt length = 0;
       
   429 	TDigitType digitType = EDigitTypeUnknown;
       
   430 	number = NumberConversion::ConvertFirstNumber(KStringToNumber1, length, digitType);
       
   431 	test(number == 123);
       
   432 	test(length == 3);
       
   433 	test(digitType == EDigitTypeWestern);
       
   434 	number = NumberConversion::ConvertFirstNumber(KStringToNumber2, length, digitType);
       
   435 	test(number == 123);
       
   436 	test(length == 3);
       
   437 	test(digitType == EDigitTypeArabicIndic);
       
   438 	number = NumberConversion::ConvertFirstNumber(KStringToNumber3, length, digitType);
       
   439 	test(number == 123);
       
   440 	test(length == 3);
       
   441 	test(digitType == EDigitTypeEasternArabicIndic);
       
   442 	number = NumberConversion::ConvertFirstNumber(KStringToNumber4, length, digitType);
       
   443 	test(number == 123);
       
   444 	test(length == 3);
       
   445 	test(digitType == EDigitTypeAllTypes);
       
   446 	
       
   447 	// Fix for DEF063276
       
   448 	RFs fs;
       
   449 	test(fs.Connect() == KErrNone);
       
   450 	CleanupClosePushL(fs);
       
   451 	
       
   452 	TBuf<3> buf;
       
   453 	ReadDesc(buf, KStringToNumber5Filename, fs);
       
   454 	
       
   455 	CleanupStack::PopAndDestroy(&fs);
       
   456 	
       
   457 	number = NumberConversion::ConvertFirstNumber(buf, length, digitType);
       
   458 	// End fix
       
   459 	
       
   460 	test(number == 123);
       
   461 	test(length == 3);
       
   462 	test(digitType == EDigitTypeAllTypes);
       
   463 	number = NumberConversion::ConvertFirstNumber(KStringToNumber6, length, digitType);
       
   464 	test(number == 123);
       
   465 	test(length == 3);
       
   466 	test(digitType == EDigitTypeAllTypes);
       
   467 	number = NumberConversion::ConvertFirstNumber(KStringToNumber7, length, digitType);
       
   468 	test(number == 123);
       
   469 	test(length == 3);
       
   470 	test(digitType == EDigitTypeAllTypes);
       
   471 	number = NumberConversion::ConvertFirstNumber(KStringToNumber8, length, digitType);
       
   472 	test(number == 123);
       
   473 	test(length == 3);
       
   474 	test(digitType == EDigitTypeDevanagari);
       
   475 	number = NumberConversion::ConvertFirstNumber(KStringToNumber9, length, digitType);
       
   476 	test(number == 123);
       
   477 	test(length == 3);
       
   478 	test(digitType == EDigitTypeThai);
       
   479 	number = NumberConversion::ConvertFirstNumber(KStringToNumber10, length, digitType);
       
   480 	test(number == 123);
       
   481 	test(length == 3);
       
   482 	test(digitType == EDigitTypeAllTypes);
       
   483 	number = NumberConversion::ConvertFirstNumber(KStringToNumber11, length, digitType);
       
   484 	test(number == 123);
       
   485 	test(length == 3);
       
   486 	test(digitType == EDigitTypeAllTypes);
       
   487 	number = NumberConversion::ConvertFirstNumber(KStringToNumber12, length, digitType);
       
   488 	test(number == 123);
       
   489 	test(length == 3);
       
   490 	test(digitType == EDigitTypeAllTypes);
       
   491 	number = NumberConversion::ConvertFirstNumber(KStringToNumber13, length, digitType);
       
   492 	test(number == 123);
       
   493 	test(length == 3);
       
   494 	test(digitType == EDigitTypeAllTypes);
       
   495 	number = NumberConversion::ConvertFirstNumber(KStringToNumber14, length, digitType);
       
   496 	test(length == 0);
       
   497 	test(digitType == EDigitTypeUnknown);
       
   498 	
       
   499 	// DEF101816: TDigitType enum needs to be extended to inlcude Indic digits to enable number co
       
   500 	number = NumberConversion::ConvertFirstNumber(KStringToNumber15, length, digitType);
       
   501 	test(number == 123);
       
   502 	test(length == 3);
       
   503 	test(digitType == EDigitTypeBengali);
       
   504 	number = NumberConversion::ConvertFirstNumber(KStringToNumber16, length, digitType);
       
   505 	test(number == 123);
       
   506 	test(length == 3);
       
   507 	test(digitType == EDigitTypeGurmukhi);
       
   508 	number = NumberConversion::ConvertFirstNumber(KStringToNumber17, length, digitType);
       
   509 	test(number == 123);
       
   510 	test(length == 3);
       
   511 	test(digitType == EDigitTypeGujarati);
       
   512 	number = NumberConversion::ConvertFirstNumber(KStringToNumber18, length, digitType);
       
   513 	test(number == 123);
       
   514 	test(length == 3);
       
   515 	test(digitType == EDigitTypeOriya);
       
   516 	number = NumberConversion::ConvertFirstNumber(KStringToNumber19, length, digitType);
       
   517 	test(number == 123);
       
   518 	test(length == 3);
       
   519 	test(digitType == EDigitTypeTamil);
       
   520 	number = NumberConversion::ConvertFirstNumber(KStringToNumber20, length, digitType);
       
   521 	test(number == 123);
       
   522 	test(length == 3);
       
   523 	test(digitType == EDigitTypeTelugu);
       
   524 	number = NumberConversion::ConvertFirstNumber(KStringToNumber21, length, digitType);
       
   525 	test(number == 123);
       
   526 	test(length == 3);
       
   527 	test(digitType == EDigitTypeKannada);
       
   528 	number = NumberConversion::ConvertFirstNumber(KStringToNumber22, length, digitType);
       
   529 	test(number == 123);
       
   530 	test(length == 3);
       
   531 	test(digitType == EDigitTypeMalayalam);
       
   532 	number = NumberConversion::ConvertFirstNumber(KStringToNumber23, length, digitType);
       
   533 	test(number == 123);
       
   534 	test(length == 3);
       
   535 	test(digitType == EDigitTypeLao);
       
   536 	number = NumberConversion::ConvertFirstNumber(KStringToNumber24, length, digitType);
       
   537 	test(number == 138);
       
   538 	test(length == 3);
       
   539 	test(digitType == EDigitTypeTibetan);
       
   540 	number = NumberConversion::ConvertFirstNumber(KStringToNumber25, length, digitType);
       
   541 	test(number == 123);
       
   542 	test(length == 3);
       
   543 	test(digitType == EDigitTypeMayanmar);
       
   544 	number = NumberConversion::ConvertFirstNumber(KStringToNumber26, length, digitType);
       
   545 	test(number == 123);
       
   546 	test(length == 3);
       
   547 	test(digitType == EDigitTypeKhmer);
       
   548 	// End of DEF101816: TDigitType enum needs to be extended to inlcude Indic digits to enable number co
       
   549 
       
   550 
       
   551 	// Test matching a single type only
       
   552 	number = NumberConversion::ConvertFirstNumber(KStringToNumber1, length, digitType, NumberConversion::EMatchSingleTypeOnly);
       
   553 	test(number == 123);
       
   554 	test(length == 3);
       
   555 	test(digitType == EDigitTypeWestern);
       
   556 	number = NumberConversion::ConvertFirstNumber(KStringToNumber2, length, digitType, NumberConversion::EMatchSingleTypeOnly);
       
   557 	test(number == 123);
       
   558 	test(length == 3);
       
   559 	test(digitType == EDigitTypeArabicIndic);
       
   560 	number = NumberConversion::ConvertFirstNumber(KStringToNumber3, length, digitType, NumberConversion::EMatchSingleTypeOnly);
       
   561 	test(number == 123);
       
   562 	test(length == 3);
       
   563 	test(digitType == EDigitTypeEasternArabicIndic);
       
   564 	number = NumberConversion::ConvertFirstNumber(KStringToNumber4, length, digitType, NumberConversion::EMatchSingleTypeOnly);
       
   565 	test(number == 12);
       
   566 	test(length == 2);
       
   567 	test(digitType == EDigitTypeWestern);
       
   568 	// Fix for DEF063276
       
   569 	number = NumberConversion::ConvertFirstNumber(buf, length, digitType, NumberConversion::EMatchSingleTypeOnly);
       
   570 	// End fix
       
   571 
       
   572 	test(number == 1);
       
   573 	test(length == 1);
       
   574 	test(digitType == EDigitTypeWestern);
       
   575 	number = NumberConversion::ConvertFirstNumber(KStringToNumber6, length, digitType, NumberConversion::EMatchSingleTypeOnly);
       
   576 	test(number == 12);
       
   577 	test(length == 2);
       
   578 	test(digitType == EDigitTypeArabicIndic);
       
   579 	number = NumberConversion::ConvertFirstNumber(KStringToNumber7, length, digitType,NumberConversion:: EMatchSingleTypeOnly);
       
   580 	test(number == 1);
       
   581 	test(length == 1);
       
   582 	test(digitType == EDigitTypeWestern);
       
   583 	number = NumberConversion::ConvertFirstNumber(KStringToNumber8, length, digitType, NumberConversion::EMatchSingleTypeOnly);
       
   584 	test(number == 123);
       
   585 	test(length == 3);
       
   586 	test(digitType == EDigitTypeDevanagari);
       
   587 	number = NumberConversion::ConvertFirstNumber(KStringToNumber9, length, digitType, NumberConversion::EMatchSingleTypeOnly);
       
   588 	test(number == 123);
       
   589 	test(length == 3);
       
   590 	test(digitType == EDigitTypeThai);
       
   591 	// DEF101816: TDigitType enum needs to be extended to inlcude Indic digits to enable number co
       
   592 	number = NumberConversion::ConvertFirstNumber(KStringToNumber15, length, digitType, NumberConversion::EMatchSingleTypeOnly);
       
   593 	test(number == 123);
       
   594 	test(length == 3);
       
   595 	test(digitType == EDigitTypeBengali);
       
   596 	number = NumberConversion::ConvertFirstNumber(KStringToNumber16, length, digitType, NumberConversion::EMatchSingleTypeOnly);
       
   597 	test(number == 123);
       
   598 	test(length == 3);
       
   599 	test(digitType == EDigitTypeGurmukhi);
       
   600 	number = NumberConversion::ConvertFirstNumber(KStringToNumber17, length, digitType, NumberConversion::EMatchSingleTypeOnly);
       
   601 	test(number == 123);
       
   602 	test(length == 3);
       
   603 	test(digitType == EDigitTypeGujarati);
       
   604 	number = NumberConversion::ConvertFirstNumber(KStringToNumber18, length, digitType, NumberConversion::EMatchSingleTypeOnly);
       
   605 	test(number == 123);
       
   606 	test(length == 3);
       
   607 	test(digitType == EDigitTypeOriya);
       
   608 	number = NumberConversion::ConvertFirstNumber(KStringToNumber19, length, digitType, NumberConversion::EMatchSingleTypeOnly);
       
   609 	test(number == 123);
       
   610 	test(length == 3);
       
   611 	test(digitType == EDigitTypeTamil);
       
   612 	number = NumberConversion::ConvertFirstNumber(KStringToNumber20, length, digitType, NumberConversion::EMatchSingleTypeOnly);
       
   613 	test(number == 123);
       
   614 	test(length == 3);
       
   615 	test(digitType == EDigitTypeTelugu);
       
   616 	number = NumberConversion::ConvertFirstNumber(KStringToNumber21, length, digitType, NumberConversion::EMatchSingleTypeOnly);
       
   617 	test(number == 123);
       
   618 	test(length == 3);
       
   619 	test(digitType == EDigitTypeKannada);
       
   620 	number = NumberConversion::ConvertFirstNumber(KStringToNumber22, length, digitType, NumberConversion::EMatchSingleTypeOnly);
       
   621 	test(number == 123);
       
   622 	test(length == 3);
       
   623 	test(digitType == EDigitTypeMalayalam);
       
   624 	number = NumberConversion::ConvertFirstNumber(KStringToNumber23, length, digitType, NumberConversion::EMatchSingleTypeOnly);
       
   625 	test(number == 123);
       
   626 	test(length == 3);
       
   627 	test(digitType == EDigitTypeLao);
       
   628 	number = NumberConversion::ConvertFirstNumber(KStringToNumber24, length, digitType, NumberConversion::EMatchSingleTypeOnly);
       
   629 	test(number == 138);
       
   630 	test(length == 3);
       
   631 	test(digitType == EDigitTypeTibetan);
       
   632 	number = NumberConversion::ConvertFirstNumber(KStringToNumber25, length, digitType, NumberConversion::EMatchSingleTypeOnly);
       
   633 	test(number == 123);
       
   634 	test(length == 3);
       
   635 	test(digitType == EDigitTypeMayanmar);
       
   636 	number = NumberConversion::ConvertFirstNumber(KStringToNumber26, length, digitType, NumberConversion::EMatchSingleTypeOnly);
       
   637 	test(number == 123);
       
   638 	test(length == 3);
       
   639 	test(digitType == EDigitTypeKhmer);
       
   640 	// End of DEF101816: TDigitType enum needs to be extended to inlcude Indic digits to enable number co	
       
   641 	
       
   642 	number = NumberConversion::ConvertFirstNumber(KStringToNumber10, length, digitType, NumberConversion::EMatchSingleTypeOnly);
       
   643 	test(number == 1);
       
   644 	test(length == 1);
       
   645 	test(digitType == EDigitTypeWestern);
       
   646 	number = NumberConversion::ConvertFirstNumber(KStringToNumber11, length, digitType, NumberConversion::EMatchSingleTypeOnly);
       
   647 	test(number == 1);
       
   648 	test(length == 1);
       
   649 	test(digitType == EDigitTypeWestern);
       
   650 	number = NumberConversion::ConvertFirstNumber(KStringToNumber12, length, digitType, NumberConversion::EMatchSingleTypeOnly);
       
   651 	test(number == 1);
       
   652 	test(length == 1);
       
   653 	test(digitType == EDigitTypeDevanagari);
       
   654 	number = NumberConversion::ConvertFirstNumber(KStringToNumber13, length, digitType, NumberConversion::EMatchSingleTypeOnly);
       
   655 	test(number == 1);
       
   656 	test(length == 1);
       
   657 	test(digitType == EDigitTypeWestern);
       
   658 	number = NumberConversion::ConvertFirstNumber(KStringToNumber14, length, digitType, NumberConversion::EMatchSingleTypeOnly);
       
   659 	test(length == 0);
       
   660 	test(digitType == EDigitTypeUnknown);
       
   661 	
       
   662 	// DEF101816: TDigitType enum needs to be extended to inlcude Indic digits to enable number co
       
   663 	number = NumberConversion::ConvertFirstNumber(KStringToNumber27, length, digitType, NumberConversion::EMatchSingleTypeOnly);
       
   664 	test(number == 1);
       
   665 	test(length == 1);
       
   666 	test(digitType == EDigitTypeWestern);
       
   667 	number = NumberConversion::ConvertFirstNumber(KStringToNumber28, length, digitType, NumberConversion::EMatchSingleTypeOnly);
       
   668 	test(number == 1);
       
   669 	test(length == 1);
       
   670 	test(digitType == EDigitTypeKannada);
       
   671 	number = NumberConversion::ConvertFirstNumber(KStringToNumber29, length, digitType, NumberConversion::EMatchSingleTypeOnly);
       
   672 	test(number == 1);
       
   673 	test(length == 1);
       
   674 	test(digitType == EDigitTypeWestern);
       
   675 	// End of DEF101816: TDigitType enum needs to be extended to inlcude Indic digits to enable number co
       
   676 	}
       
   677 
       
   678 
       
   679 void TestPositionOfNextNumber()
       
   680 	{
       
   681 	TDigitType type = EDigitTypeUnknown;
       
   682 	TInt position = 0;
       
   683 	position = NumberConversion::PositionAndTypeOfNextNumber(KPositionOfNextNumber1, type);
       
   684 	test(position == 4);
       
   685 	test(type == EDigitTypeWestern);
       
   686 	position = NumberConversion::PositionAndTypeOfNextNumber(KPositionOfNextNumber2, type);
       
   687 	test(position == 5);
       
   688 	test(type == EDigitTypeArabicIndic);
       
   689 	position = NumberConversion::PositionAndTypeOfNextNumber(KPositionOfNextNumber3, type);
       
   690 	test(position == 6);
       
   691 	test(type == EDigitTypeEasternArabicIndic);
       
   692 	position = NumberConversion::PositionAndTypeOfNextNumber(KPositionOfNextNumber4, type);
       
   693 	test(position == 7);
       
   694 	test(type == EDigitTypeDevanagari);
       
   695 	position = NumberConversion::PositionAndTypeOfNextNumber(KPositionOfNextNumber5, type);
       
   696 	test(position == 8);
       
   697 	test(type == EDigitTypeThai);
       
   698 	position = NumberConversion::PositionAndTypeOfNextNumber(KPositionOfNextNumber6, type);
       
   699 	test(position == KErrNotFound);
       
   700 	test(type == EDigitTypeUnknown);
       
   701 	
       
   702 	// DEF101816: TDigitType enum needs to be extended to inlcude Indic digits to enable number co
       
   703 	position = NumberConversion::PositionAndTypeOfNextNumber(KPositionOfNextNumber7, type);
       
   704 	test(position == 9);
       
   705 	test(type == EDigitTypeBengali);
       
   706 	position = NumberConversion::PositionAndTypeOfNextNumber(KPositionOfNextNumber8, type);
       
   707 	test(position == 10);
       
   708 	test(type == EDigitTypeGurmukhi);
       
   709 	position = NumberConversion::PositionAndTypeOfNextNumber(KPositionOfNextNumber9, type);
       
   710 	test(position == 11);
       
   711 	test(type == EDigitTypeGujarati);
       
   712 	position = NumberConversion::PositionAndTypeOfNextNumber(KPositionOfNextNumber10, type);
       
   713 	test(position == 12);
       
   714 	test(type == EDigitTypeOriya);
       
   715 	position = NumberConversion::PositionAndTypeOfNextNumber(KPositionOfNextNumber11, type);
       
   716 	test(position == 13);
       
   717 	test(type == EDigitTypeTamil);
       
   718 	position = NumberConversion::PositionAndTypeOfNextNumber(KPositionOfNextNumber12, type);
       
   719 	test(position == 14);
       
   720 	test(type == EDigitTypeTelugu);
       
   721 	position = NumberConversion::PositionAndTypeOfNextNumber(KPositionOfNextNumber13, type);
       
   722 	test(position == 15);
       
   723 	test(type == EDigitTypeKannada);
       
   724 	position = NumberConversion::PositionAndTypeOfNextNumber(KPositionOfNextNumber14, type);
       
   725 	test(position == 16);
       
   726 	test(type == EDigitTypeMalayalam);
       
   727 	position = NumberConversion::PositionAndTypeOfNextNumber(KPositionOfNextNumber15, type);
       
   728 	test(position == 17);
       
   729 	test(type == EDigitTypeLao);
       
   730 	position = NumberConversion::PositionAndTypeOfNextNumber(KPositionOfNextNumber16, type);
       
   731 	test(position == 18);
       
   732 	test(type == EDigitTypeTibetan);
       
   733 	position = NumberConversion::PositionAndTypeOfNextNumber(KPositionOfNextNumber17, type);
       
   734 	test(position == 19);
       
   735 	test(type == EDigitTypeMayanmar);
       
   736 	position = NumberConversion::PositionAndTypeOfNextNumber(KPositionOfNextNumber18, type);
       
   737 	test(position == 20);
       
   738 	test(type == EDigitTypeKhmer);
       
   739 	// End of DEF101816: TDigitType enum needs to be extended to inlcude Indic digits to enable number co
       
   740 	
       
   741 	
       
   742 	}
       
   743 
       
   744 
       
   745 void TestFormatNumber()
       
   746 	{
       
   747 	TBuf<80> text;
       
   748 	NumberConversion::FormatNumber(text, 123, EDigitTypeWestern);
       
   749 	test(text.Compare(KFormatNumber1) == 0);
       
   750 	NumberConversion::FormatNumber(text, 1230, EDigitTypeWestern);
       
   751 	test(text.Compare(KFormatNumber2) == 0);
       
   752 	NumberConversion::FormatNumber(text, 123, EDigitTypeArabicIndic);
       
   753 	test(text.Compare(KFormatNumber3) == 0);
       
   754 	NumberConversion::FormatNumber(text, 123, EDigitTypeEasternArabicIndic);
       
   755 	test(text.Compare(KFormatNumber4) == 0);
       
   756 	NumberConversion::FormatNumber(text, 123, EDigitTypeDevanagari);
       
   757 	test(text.Compare(KFormatNumber5) == 0);
       
   758 	NumberConversion::FormatNumber(text, 123, EDigitTypeThai);
       
   759 	test(text.Compare(KFormatNumber6) == 0);
       
   760 	
       
   761 	// DEF101816: TDigitType enum needs to be extended to inlcude Indic digits to enable number co
       
   762 	NumberConversion::FormatNumber(text, 123, EDigitTypeBengali);
       
   763 	test(text.Compare(KFormatNumber7) == 0);
       
   764 	NumberConversion::FormatNumber(text, 123, EDigitTypeGurmukhi);
       
   765 	test(text.Compare(KFormatNumber8) == 0);
       
   766 	NumberConversion::FormatNumber(text, 123, EDigitTypeGujarati);
       
   767 	test(text.Compare(KFormatNumber9) == 0);
       
   768 	NumberConversion::FormatNumber(text, 123, EDigitTypeOriya);
       
   769 	test(text.Compare(KFormatNumber10) == 0);
       
   770 	NumberConversion::FormatNumber(text, 123, EDigitTypeTamil);
       
   771 	test(text.Compare(KFormatNumber11) == 0);
       
   772 	NumberConversion::FormatNumber(text, 123, EDigitTypeTelugu);
       
   773 	test(text.Compare(KFormatNumber12) == 0);
       
   774 	NumberConversion::FormatNumber(text, 123, EDigitTypeKannada);
       
   775 	test(text.Compare(KFormatNumber13) == 0);
       
   776 	NumberConversion::FormatNumber(text, 123, EDigitTypeMalayalam);
       
   777 	test(text.Compare(KFormatNumber14) == 0);
       
   778 	NumberConversion::FormatNumber(text, 123, EDigitTypeLao);
       
   779 	test(text.Compare(KFormatNumber15) == 0);
       
   780 	NumberConversion::FormatNumber(text, 123, EDigitTypeTibetan);
       
   781 	test(text.Compare(KFormatNumber16) == 0);
       
   782 	NumberConversion::FormatNumber(text, 123, EDigitTypeMayanmar);
       
   783 	test(text.Compare(KFormatNumber17) == 0);
       
   784 	NumberConversion::FormatNumber(text, 123, EDigitTypeKhmer);
       
   785 	test(text.Compare(KFormatNumber18) == 0);
       
   786 	// End of DEF101816: TDigitType enum needs to be extended to inlcude Indic digits to enable number co
       
   787 	
       
   788 	}
       
   789 
       
   790 void TestAppendFormatNumber()
       
   791 	{
       
   792 	TBuf<80> text(_L("test"));
       
   793 	NumberConversion::AppendFormatNumber(text, 123, EDigitTypeWestern);
       
   794 	test(text.Compare(KAppendFormatNumber1) == 0);
       
   795 	NumberConversion::AppendFormatNumber(text, 1230, EDigitTypeWestern);
       
   796 	test(text.Compare(KAppendFormatNumber2) == 0);
       
   797 	NumberConversion::AppendFormatNumber(text, 123, EDigitTypeArabicIndic);
       
   798 	test(text.Compare(KAppendFormatNumber3) == 0);
       
   799 	NumberConversion::AppendFormatNumber(text, 123, EDigitTypeEasternArabicIndic);
       
   800 	test(text.Compare(KAppendFormatNumber4) == 0);
       
   801 	NumberConversion::AppendFormatNumber(text, 123, EDigitTypeDevanagari);
       
   802 	test(text.Compare(KAppendFormatNumber5) == 0);
       
   803 	NumberConversion::AppendFormatNumber(text, 123, EDigitTypeThai);
       
   804 	test(text.Compare(KAppendFormatNumber6) == 0);
       
   805 	
       
   806 	// DEF101816: TDigitType enum needs to be extended to inlcude Indic digits to enable number co
       
   807 	NumberConversion::AppendFormatNumber(text, 123, EDigitTypeBengali);
       
   808 	test(text.Compare(KAppendFormatNumber7) == 0);
       
   809 	NumberConversion::AppendFormatNumber(text, 123, EDigitTypeGurmukhi);
       
   810 	test(text.Compare(KAppendFormatNumber8) == 0);
       
   811 	NumberConversion::AppendFormatNumber(text, 123, EDigitTypeGujarati);
       
   812 	test(text.Compare(KAppendFormatNumber9) == 0);
       
   813 	
       
   814 	NumberConversion::AppendFormatNumber(text, 123, EDigitTypeOriya);
       
   815 	test(text.Compare(KAppendFormatNumber10) == 0);
       
   816 	NumberConversion::AppendFormatNumber(text, 123, EDigitTypeTamil);
       
   817 	test(text.Compare(KAppendFormatNumber11) == 0);
       
   818 	NumberConversion::AppendFormatNumber(text, 123, EDigitTypeTelugu);
       
   819 	test(text.Compare(KAppendFormatNumber12) == 0);
       
   820 	NumberConversion::AppendFormatNumber(text, 123, EDigitTypeKannada);
       
   821 	test(text.Compare(KAppendFormatNumber13) == 0);
       
   822 	NumberConversion::AppendFormatNumber(text, 123, EDigitTypeMalayalam);
       
   823 	test(text.Compare(KAppendFormatNumber14) == 0);
       
   824 	NumberConversion::AppendFormatNumber(text, 123, EDigitTypeLao);
       
   825 	test(text.Compare(KAppendFormatNumber15) == 0);
       
   826 	NumberConversion::AppendFormatNumber(text, 123, EDigitTypeTibetan);
       
   827 	test(text.Compare(KAppendFormatNumber16) == 0);
       
   828 	NumberConversion::AppendFormatNumber(text, 123, EDigitTypeMayanmar);
       
   829 	test(text.Compare(KAppendFormatNumber17) == 0);
       
   830 	NumberConversion::AppendFormatNumber(text, 123, EDigitTypeKhmer);
       
   831 	test(text.Compare(KAppendFormatNumber18) == 0);
       
   832 	// End of DEF101816: TDigitType enum needs to be extended to inlcude Indic digits to enable number co
       
   833 	}
       
   834 
       
   835 void TestConvertDigits()
       
   836 	{
       
   837 	TBuf<80> text;
       
   838 
       
   839 	text = KConvertDigits0;
       
   840 	NumberConversion::ConvertDigits(text, EDigitTypeArabicIndic);
       
   841 	test(text.Compare(KConvertDigits0Result1) == 0);
       
   842 	NumberConversion::ConvertDigits(text, EDigitTypeEasternArabicIndic);
       
   843 	test(text.Compare(KConvertDigits0Result2) == 0);
       
   844 	NumberConversion::ConvertDigits(text, EDigitTypeDevanagari);
       
   845 	test(text.Compare(KConvertDigits0Result3) == 0);
       
   846 	NumberConversion::ConvertDigits(text, EDigitTypeThai);
       
   847 	test(text.Compare(KConvertDigits0Result4) == 0);
       
   848 	NumberConversion::ConvertDigits (text,EDigitTypeWestern);
       
   849 	test(text.Compare(KConvertDigits0) == 0);
       
   850 	// DEF101816: TDigitType enum needs to be extended to inlcude Indic digits to enable number co
       
   851 	NumberConversion::ConvertDigits(text, EDigitTypeBengali);
       
   852 	test(text.Compare(KConvertDigits0Result5) == 0);
       
   853 	NumberConversion::ConvertDigits(text, EDigitTypeGurmukhi);
       
   854 	test(text.Compare(KConvertDigits0Result6) == 0);
       
   855 	NumberConversion::ConvertDigits(text, EDigitTypeGujarati);
       
   856 	test(text.Compare(KConvertDigits0Result7) == 0);
       
   857 	NumberConversion::ConvertDigits(text, EDigitTypeOriya);
       
   858 	test(text.Compare(KConvertDigits0Result8) == 0);
       
   859 	/* Can't test TAMIL DIGIT 0 because it wasn't introduced until Unicode 4.1
       
   860 	   We currently use Unicode 2.0, and hence can only test this once we upgrade to 4.1 or higher
       
   861 	NumberConversion::ConvertDigits(text, EDigitTypeTamil);
       
   862 	test(text.Compare(KConvertDigits0Result9) == 0);*/
       
   863 	NumberConversion::ConvertDigits(text, EDigitTypeTelugu);
       
   864 	test(text.Compare(KConvertDigits0Result10) == 0);
       
   865 	NumberConversion::ConvertDigits(text, EDigitTypeKannada);
       
   866 	test(text.Compare(KConvertDigits0Result11) == 0);
       
   867 	NumberConversion::ConvertDigits(text, EDigitTypeMalayalam);
       
   868 	test(text.Compare(KConvertDigits0Result12) == 0);
       
   869 	NumberConversion::ConvertDigits(text, EDigitTypeLao);
       
   870 	test(text.Compare(KConvertDigits0Result13) == 0);
       
   871 	NumberConversion::ConvertDigits(text, EDigitTypeTibetan);
       
   872 	test(text.Compare(KConvertDigits0Result14) == 0);
       
   873 	NumberConversion::ConvertDigits(text, EDigitTypeMayanmar);
       
   874 	test(text.Compare(KConvertDigits0Result15) == 0);
       
   875 	NumberConversion::ConvertDigits(text, EDigitTypeKhmer);
       
   876 	test(text.Compare(KConvertDigits0Result16) == 0);
       
   877 	// End of DEF101816: TDigitType enum needs to be extended to inlcude Indic digits to enable number co
       
   878 
       
   879 	text = KConvertDigits1;
       
   880 	NumberConversion::ConvertDigits(text, EDigitTypeArabicIndic);
       
   881 	test(text.Compare(KConvertDigits1Result1) == 0);
       
   882 	text = KConvertDigits1;
       
   883 	NumberConversion::ConvertDigits(text, EDigitTypeEasternArabicIndic);
       
   884 	test(text.Compare(KConvertDigits1Result2) == 0);
       
   885 	text = KConvertDigits1;
       
   886 	NumberConversion::ConvertDigits(text, EDigitTypeDevanagari);
       
   887 	test(text.Compare(KConvertDigits1Result3) == 0);
       
   888 	text = KConvertDigits1;
       
   889 	NumberConversion::ConvertDigits(text, EDigitTypeThai);
       
   890 	test(text.Compare(KConvertDigits1Result4) == 0);
       
   891 	text = KConvertDigits1;
       
   892 	// DEF101816: TDigitType enum needs to be extended to inlcude Indic digits to enable number co
       
   893 	NumberConversion::ConvertDigits(text, EDigitTypeBengali);
       
   894 	test(text.Compare(KConvertDigits1Result5) == 0);
       
   895 	text = KConvertDigits1;
       
   896 	NumberConversion::ConvertDigits(text, EDigitTypeGurmukhi);
       
   897 	test(text.Compare(KConvertDigits1Result6) == 0);
       
   898 	text = KConvertDigits1;
       
   899 	NumberConversion::ConvertDigits(text, EDigitTypeGujarati);
       
   900 	test(text.Compare(KConvertDigits1Result7) == 0);
       
   901 	text = KConvertDigits1;
       
   902 	NumberConversion::ConvertDigits(text, EDigitTypeOriya);
       
   903 	test(text.Compare(KConvertDigits1Result8) == 0);
       
   904 	text = KConvertDigits1;
       
   905 	NumberConversion::ConvertDigits(text, EDigitTypeTamil);
       
   906 	test(text.Compare(KConvertDigits1Result9) == 0);
       
   907 	text = KConvertDigits1;
       
   908 	NumberConversion::ConvertDigits(text, EDigitTypeTelugu);
       
   909 	test(text.Compare(KConvertDigits1Result10) == 0);
       
   910 	text = KConvertDigits1;
       
   911 	NumberConversion::ConvertDigits(text, EDigitTypeKannada);
       
   912 	test(text.Compare(KConvertDigits1Result11) == 0);
       
   913 	text = KConvertDigits1;
       
   914 	NumberConversion::ConvertDigits(text, EDigitTypeMalayalam);
       
   915 	test(text.Compare(KConvertDigits1Result12) == 0);
       
   916 	text = KConvertDigits1;
       
   917 	NumberConversion::ConvertDigits(text, EDigitTypeLao);
       
   918 	test(text.Compare(KConvertDigits1Result13) == 0);
       
   919 	text = KConvertDigits1;
       
   920 	NumberConversion::ConvertDigits(text, EDigitTypeTibetan);
       
   921 	test(text.Compare(KConvertDigits1Result14) == 0);
       
   922 	text = KConvertDigits1;
       
   923 	NumberConversion::ConvertDigits(text, EDigitTypeMayanmar);
       
   924 	test(text.Compare(KConvertDigits1Result15) == 0);
       
   925 	text = KConvertDigits1;
       
   926 	NumberConversion::ConvertDigits(text, EDigitTypeKhmer);
       
   927 	test(text.Compare(KConvertDigits1Result16) == 0);
       
   928 	// End of DEF101816: TDigitType enum needs to be extended to inlcude Indic digits to enable number co
       
   929 	
       
   930 	text = KConvertDigits2;
       
   931 	NumberConversion::ConvertDigits(text, EDigitTypeWestern);
       
   932 	test(text.Compare(KConvertDigits2Result1) == 0);
       
   933 	text = KConvertDigits2;
       
   934 	NumberConversion::ConvertDigits(text, EDigitTypeEasternArabicIndic);
       
   935 	test(text.Compare(KConvertDigits2Result2) == 0);
       
   936 	text = KConvertDigits2;
       
   937 	NumberConversion::ConvertDigits(text, EDigitTypeDevanagari);
       
   938 	test(text.Compare(KConvertDigits2Result3) == 0);
       
   939 	text = KConvertDigits2;
       
   940 	NumberConversion::ConvertDigits(text, EDigitTypeThai);
       
   941 	test(text.Compare(KConvertDigits2Result4) == 0);
       
   942 	text = KConvertDigits2;
       
   943 	// DEF101816: TDigitType enum needs to be extended to inlcude Indic digits to enable number co
       
   944 	NumberConversion::ConvertDigits(text, EDigitTypeBengali);
       
   945 	test(text.Compare(KConvertDigits2Result5) == 0);
       
   946 	text = KConvertDigits2;
       
   947 	NumberConversion::ConvertDigits(text, EDigitTypeGurmukhi);
       
   948 	test(text.Compare(KConvertDigits2Result6) == 0);
       
   949 	text = KConvertDigits2;
       
   950 	NumberConversion::ConvertDigits(text, EDigitTypeGujarati);
       
   951 	test(text.Compare(KConvertDigits2Result7) == 0);
       
   952 	text = KConvertDigits2;
       
   953 	NumberConversion::ConvertDigits(text, EDigitTypeOriya);
       
   954 	test(text.Compare(KConvertDigits2Result8) == 0);
       
   955 	text = KConvertDigits2;
       
   956 	NumberConversion::ConvertDigits(text, EDigitTypeTamil);
       
   957 	test(text.Compare(KConvertDigits2Result9) == 0);
       
   958 	text = KConvertDigits2;
       
   959 	NumberConversion::ConvertDigits(text, EDigitTypeTelugu);
       
   960 	test(text.Compare(KConvertDigits2Result10) == 0);
       
   961 	text = KConvertDigits2;
       
   962 	NumberConversion::ConvertDigits(text, EDigitTypeKannada);
       
   963 	test(text.Compare(KConvertDigits2Result11) == 0);
       
   964 	text = KConvertDigits2;
       
   965 	NumberConversion::ConvertDigits(text, EDigitTypeMalayalam);
       
   966 	test(text.Compare(KConvertDigits2Result12) == 0);
       
   967 	text = KConvertDigits2;
       
   968 	NumberConversion::ConvertDigits(text, EDigitTypeLao);
       
   969 	test(text.Compare(KConvertDigits2Result13) == 0);
       
   970 	text = KConvertDigits2;
       
   971 	NumberConversion::ConvertDigits(text, EDigitTypeTibetan);
       
   972 	test(text.Compare(KConvertDigits2Result14) == 0);
       
   973 	text = KConvertDigits2;
       
   974 	NumberConversion::ConvertDigits(text, EDigitTypeMayanmar);
       
   975 	test(text.Compare(KConvertDigits2Result15) == 0);
       
   976 	text = KConvertDigits2;
       
   977 	NumberConversion::ConvertDigits(text, EDigitTypeKhmer);
       
   978 	test(text.Compare(KConvertDigits2Result16) == 0);
       
   979 	// End of DEF101816: TDigitType enum needs to be extended to inlcude Indic digits to enable number co
       
   980 
       
   981 	text = KConvertDigits3;
       
   982 	NumberConversion::ConvertDigits(text, EDigitTypeWestern);
       
   983 	test(text.Compare(KConvertDigits3Result1) == 0);
       
   984 	text = KConvertDigits3;
       
   985 	NumberConversion::ConvertDigits(text, EDigitTypeArabicIndic);
       
   986 	test(text.Compare(KConvertDigits3Result2) == 0);
       
   987 	text = KConvertDigits3;
       
   988 	NumberConversion::ConvertDigits(text, EDigitTypeDevanagari);
       
   989 	test(text.Compare(KConvertDigits3Result3) == 0);
       
   990 	text = KConvertDigits3;
       
   991 	NumberConversion::ConvertDigits(text, EDigitTypeThai);
       
   992 	test(text.Compare(KConvertDigits3Result4) == 0);
       
   993 	text = KConvertDigits3;
       
   994 	// DEF101816: TDigitType enum needs to be extended to inlcude Indic digits to enable number co
       
   995 	NumberConversion::ConvertDigits(text, EDigitTypeBengali);
       
   996 	test(text.Compare(KConvertDigits3Result5) == 0);
       
   997 	text = KConvertDigits3;
       
   998 	NumberConversion::ConvertDigits(text, EDigitTypeGurmukhi);
       
   999 	test(text.Compare(KConvertDigits3Result6) == 0);
       
  1000 	text = KConvertDigits3;
       
  1001 	NumberConversion::ConvertDigits(text, EDigitTypeGujarati);
       
  1002 	test(text.Compare(KConvertDigits3Result7) == 0);
       
  1003 	text = KConvertDigits3;
       
  1004 	NumberConversion::ConvertDigits(text, EDigitTypeOriya);
       
  1005 	test(text.Compare(KConvertDigits3Result8) == 0);
       
  1006 	text = KConvertDigits3;
       
  1007 	NumberConversion::ConvertDigits(text, EDigitTypeTamil);
       
  1008 	test(text.Compare(KConvertDigits3Result9) == 0);
       
  1009 	text = KConvertDigits3;
       
  1010 	NumberConversion::ConvertDigits(text, EDigitTypeTelugu);
       
  1011 	test(text.Compare(KConvertDigits3Result10) == 0);
       
  1012 	text = KConvertDigits3;
       
  1013 	NumberConversion::ConvertDigits(text, EDigitTypeKannada);
       
  1014 	test(text.Compare(KConvertDigits3Result11) == 0);
       
  1015 	text = KConvertDigits3;
       
  1016 	NumberConversion::ConvertDigits(text, EDigitTypeMalayalam);
       
  1017 	test(text.Compare(KConvertDigits3Result12) == 0);
       
  1018 	text = KConvertDigits3;
       
  1019 	NumberConversion::ConvertDigits(text, EDigitTypeLao);
       
  1020 	test(text.Compare(KConvertDigits3Result13) == 0);
       
  1021 	text = KConvertDigits3;
       
  1022 	NumberConversion::ConvertDigits(text, EDigitTypeTibetan);
       
  1023 	test(text.Compare(KConvertDigits3Result14) == 0);
       
  1024 	text = KConvertDigits3;
       
  1025 	NumberConversion::ConvertDigits(text, EDigitTypeMayanmar);
       
  1026 	test(text.Compare(KConvertDigits3Result15) == 0);
       
  1027 	text = KConvertDigits3;
       
  1028 	NumberConversion::ConvertDigits(text, EDigitTypeKhmer);
       
  1029 	test(text.Compare(KConvertDigits3Result16) == 0);
       
  1030 	// End of DEF101816: TDigitType enum needs to be extended to inlcude Indic digits to enable number co
       
  1031 
       
  1032 	text = KConvertDigits4;
       
  1033 	NumberConversion::ConvertDigits(text, EDigitTypeArabicIndic);
       
  1034 	test(text.Compare(KConvertDigits4Result1) == 0);
       
  1035 	text = KConvertDigits4;
       
  1036 	NumberConversion::ConvertDigits(text, EDigitTypeEasternArabicIndic);
       
  1037 	test(text.Compare(KConvertDigits4Result2) == 0);
       
  1038 
       
  1039 	text = KConvertDigits5;
       
  1040 	NumberConversion::ConvertDigits(text, EDigitTypeWestern);
       
  1041 	test(text.Compare(KConvertDigits5Result1) == 0);
       
  1042 	text = KConvertDigits5;
       
  1043 	NumberConversion::ConvertDigits(text, EDigitTypeEasternArabicIndic);
       
  1044 	test(text.Compare(KConvertDigits5Result2) == 0);
       
  1045 
       
  1046 	text = KConvertDigits6;
       
  1047 	NumberConversion::ConvertDigits(text, EDigitTypeWestern);
       
  1048 	test(text.Compare(KConvertDigits6Result1) == 0);
       
  1049 	text = KConvertDigits6;
       
  1050 	NumberConversion::ConvertDigits(text, EDigitTypeArabicIndic);
       
  1051 	test(text.Compare(KConvertDigits6Result2) == 0);
       
  1052 
       
  1053 	text = KConvertDigits7;
       
  1054 	NumberConversion::ConvertDigits(text, EDigitTypeWestern);
       
  1055 	test(text.Compare(KConvertDigits7) == 0);
       
  1056 
       
  1057 	text = KConvertDigits8;
       
  1058 	NumberConversion::ConvertDigits(text, EDigitTypeArabicIndic);
       
  1059 	test(text.Compare(KConvertDigits8Result1) == 0);
       
  1060 
       
  1061 	text = KConvertDigits9;
       
  1062 	NumberConversion::ConvertDigits(text, EDigitTypeWestern);
       
  1063 	test(text.Compare(KConvertDigits9Result1) == 0);
       
  1064 	
       
  1065 	// DEF101816: TDigitType enum needs to be extended to inlcude Indic digits to enable number co
       
  1066 	text = KConvertDigits10;
       
  1067 	NumberConversion::ConvertDigits(text, EDigitTypeWestern);
       
  1068 	test(text.Compare(KConvertDigits10Result1) == 0);
       
  1069 	text = KConvertDigits10;
       
  1070 	NumberConversion::ConvertDigits(text, EDigitTypeArabicIndic);
       
  1071 	test(text.Compare(KConvertDigits10Result2) == 0);
       
  1072 	text = KConvertDigits10;
       
  1073 	NumberConversion::ConvertDigits(text, EDigitTypeEasternArabicIndic);
       
  1074 	test(text.Compare(KConvertDigits10Result3) == 0);
       
  1075 	text = KConvertDigits10;
       
  1076 	NumberConversion::ConvertDigits(text, EDigitTypeThai);
       
  1077 	test(text.Compare(KConvertDigits10Result4) == 0);
       
  1078 	text = KConvertDigits10;
       
  1079 	NumberConversion::ConvertDigits(text, EDigitTypeBengali);
       
  1080 	test(text.Compare(KConvertDigits10Result5) == 0);
       
  1081 	text = KConvertDigits10;
       
  1082 	NumberConversion::ConvertDigits(text, EDigitTypeGurmukhi);
       
  1083 	test(text.Compare(KConvertDigits10Result6) == 0);
       
  1084 	text = KConvertDigits10;
       
  1085 	NumberConversion::ConvertDigits(text, EDigitTypeGujarati);
       
  1086 	test(text.Compare(KConvertDigits10Result7) == 0);
       
  1087 	text = KConvertDigits10;
       
  1088 	NumberConversion::ConvertDigits(text, EDigitTypeOriya);
       
  1089 	test(text.Compare(KConvertDigits10Result8) == 0);
       
  1090 	text = KConvertDigits10;
       
  1091 	NumberConversion::ConvertDigits(text, EDigitTypeTamil);
       
  1092 	test(text.Compare(KConvertDigits10Result9) == 0);
       
  1093 	text = KConvertDigits10;
       
  1094 	NumberConversion::ConvertDigits(text, EDigitTypeTelugu);
       
  1095 	test(text.Compare(KConvertDigits10Result10) == 0);
       
  1096 	text = KConvertDigits10;
       
  1097 	NumberConversion::ConvertDigits(text, EDigitTypeKannada);
       
  1098 	test(text.Compare(KConvertDigits10Result11) == 0);
       
  1099 	text = KConvertDigits10;
       
  1100 	NumberConversion::ConvertDigits(text, EDigitTypeMalayalam);
       
  1101 	test(text.Compare(KConvertDigits10Result12) == 0);
       
  1102 	text = KConvertDigits10;
       
  1103 	NumberConversion::ConvertDigits(text, EDigitTypeLao);
       
  1104 	test(text.Compare(KConvertDigits10Result13) == 0);
       
  1105 	text = KConvertDigits10;
       
  1106 	NumberConversion::ConvertDigits(text, EDigitTypeTibetan);
       
  1107 	test(text.Compare(KConvertDigits10Result14) == 0);
       
  1108 	text = KConvertDigits10;
       
  1109 	NumberConversion::ConvertDigits(text, EDigitTypeMayanmar);
       
  1110 	test(text.Compare(KConvertDigits10Result15) == 0);
       
  1111 	text = KConvertDigits10;
       
  1112 	NumberConversion::ConvertDigits(text, EDigitTypeKhmer);
       
  1113 	test(text.Compare(KConvertDigits10Result16) == 0);
       
  1114 	
       
  1115 	text = KConvertDigits11;
       
  1116 	NumberConversion::ConvertDigits(text, EDigitTypeWestern);
       
  1117 	test(text.Compare(KConvertDigits11Result1) == 0);
       
  1118 	text = KConvertDigits11;
       
  1119 	NumberConversion::ConvertDigits(text, EDigitTypeArabicIndic);
       
  1120 	test(text.Compare(KConvertDigits11Result2) == 0);
       
  1121 	text = KConvertDigits11;
       
  1122 	NumberConversion::ConvertDigits(text, EDigitTypeEasternArabicIndic);
       
  1123 	test(text.Compare(KConvertDigits11Result3) == 0);
       
  1124 	text = KConvertDigits11;
       
  1125 	NumberConversion::ConvertDigits(text, EDigitTypeDevanagari);
       
  1126 	test(text.Compare(KConvertDigits11Result4) == 0);
       
  1127 	text = KConvertDigits11;
       
  1128 	NumberConversion::ConvertDigits(text, EDigitTypeThai);
       
  1129 	test(text.Compare(KConvertDigits11Result5) == 0);
       
  1130 	text = KConvertDigits11;
       
  1131 	NumberConversion::ConvertDigits(text, EDigitTypeBengali);
       
  1132 	test(text.Compare(KConvertDigits11Result6) == 0);
       
  1133 	text = KConvertDigits11;
       
  1134 	NumberConversion::ConvertDigits(text, EDigitTypeGurmukhi);
       
  1135 	test(text.Compare(KConvertDigits11Result7) == 0);
       
  1136 	text = KConvertDigits11;
       
  1137 	NumberConversion::ConvertDigits(text, EDigitTypeGujarati);
       
  1138 	test(text.Compare(KConvertDigits11Result8) == 0);
       
  1139 	text = KConvertDigits11;
       
  1140 	NumberConversion::ConvertDigits(text, EDigitTypeOriya);
       
  1141 	test(text.Compare(KConvertDigits11Result9) == 0);
       
  1142 	text = KConvertDigits11;
       
  1143 	NumberConversion::ConvertDigits(text, EDigitTypeTamil);
       
  1144 	test(text.Compare(KConvertDigits11Result10) == 0);
       
  1145 	text = KConvertDigits11;
       
  1146 	NumberConversion::ConvertDigits(text, EDigitTypeTelugu);
       
  1147 	test(text.Compare(KConvertDigits11Result11) == 0);
       
  1148 	text = KConvertDigits11;
       
  1149 	NumberConversion::ConvertDigits(text, EDigitTypeMalayalam);
       
  1150 	test(text.Compare(KConvertDigits11Result12) == 0);
       
  1151 	text = KConvertDigits11;
       
  1152 	NumberConversion::ConvertDigits(text, EDigitTypeLao);
       
  1153 	test(text.Compare(KConvertDigits11Result13) == 0);
       
  1154 	text = KConvertDigits11;
       
  1155 	NumberConversion::ConvertDigits(text, EDigitTypeTibetan);
       
  1156 	test(text.Compare(KConvertDigits11Result14) == 0);
       
  1157 	text = KConvertDigits11;
       
  1158 	NumberConversion::ConvertDigits(text, EDigitTypeMayanmar);
       
  1159 	test(text.Compare(KConvertDigits11Result15) == 0);
       
  1160 	text = KConvertDigits11;
       
  1161 	NumberConversion::ConvertDigits(text, EDigitTypeKhmer);
       
  1162 	test(text.Compare(KConvertDigits11Result16) == 0);
       
  1163 	
       
  1164 	text = KConvertDigits12;
       
  1165 	NumberConversion::ConvertDigits(text, EDigitTypeWestern);
       
  1166 	test(text.Compare(KConvertDigits12Result1) == 0);
       
  1167 	text = KConvertDigits12;
       
  1168 	NumberConversion::ConvertDigits(text, EDigitTypeArabicIndic);
       
  1169 	test(text.Compare(KConvertDigits12Result2) == 0);
       
  1170 	text = KConvertDigits12;
       
  1171 	NumberConversion::ConvertDigits(text, EDigitTypeEasternArabicIndic);
       
  1172 	test(text.Compare(KConvertDigits12Result3) == 0);
       
  1173 	text = KConvertDigits12;
       
  1174 	NumberConversion::ConvertDigits(text, EDigitTypeDevanagari);
       
  1175 	test(text.Compare(KConvertDigits12Result4) == 0);
       
  1176 	text = KConvertDigits12;
       
  1177 	NumberConversion::ConvertDigits(text, EDigitTypeThai);
       
  1178 	test(text.Compare(KConvertDigits12Result5) == 0);
       
  1179 	text = KConvertDigits12;
       
  1180 	NumberConversion::ConvertDigits(text, EDigitTypeBengali);
       
  1181 	test(text.Compare(KConvertDigits12Result6) == 0);
       
  1182 	text = KConvertDigits12;
       
  1183 	NumberConversion::ConvertDigits(text, EDigitTypeGurmukhi);
       
  1184 	test(text.Compare(KConvertDigits12Result7) == 0);
       
  1185 	text = KConvertDigits12;
       
  1186 	NumberConversion::ConvertDigits(text, EDigitTypeOriya);
       
  1187 	test(text.Compare(KConvertDigits12Result8) == 0);
       
  1188 	text = KConvertDigits12;
       
  1189 	NumberConversion::ConvertDigits(text, EDigitTypeTamil);
       
  1190 	test(text.Compare(KConvertDigits12Result9) == 0);
       
  1191 	text = KConvertDigits12;
       
  1192 	NumberConversion::ConvertDigits(text, EDigitTypeTelugu);
       
  1193 	test(text.Compare(KConvertDigits12Result10) == 0);
       
  1194 	text = KConvertDigits12;
       
  1195 	NumberConversion::ConvertDigits(text, EDigitTypeKannada);
       
  1196 	test(text.Compare(KConvertDigits12Result11) == 0);
       
  1197 	text = KConvertDigits12;
       
  1198 	NumberConversion::ConvertDigits(text, EDigitTypeMalayalam);
       
  1199 	test(text.Compare(KConvertDigits12Result12) == 0);
       
  1200 	text = KConvertDigits12;
       
  1201 	NumberConversion::ConvertDigits(text, EDigitTypeLao);
       
  1202 	test(text.Compare(KConvertDigits12Result13) == 0);
       
  1203 	text = KConvertDigits12;
       
  1204 	NumberConversion::ConvertDigits(text, EDigitTypeTibetan);
       
  1205 	test(text.Compare(KConvertDigits12Result14) == 0);
       
  1206 	text = KConvertDigits12;
       
  1207 	NumberConversion::ConvertDigits(text, EDigitTypeMayanmar);
       
  1208 	test(text.Compare(KConvertDigits12Result15) == 0);
       
  1209 	text = KConvertDigits12;
       
  1210 	NumberConversion::ConvertDigits(text, EDigitTypeKhmer);
       
  1211 	test(text.Compare(KConvertDigits12Result16) == 0);
       
  1212 	
       
  1213 	text = KConvertDigits13;
       
  1214 	NumberConversion::ConvertDigits(text, EDigitTypeMayanmar);
       
  1215 	test(text.Compare(KConvertDigits13Result16) == 0);
       
  1216 	NumberConversion::ConvertDigits(text, EDigitTypeTibetan);
       
  1217 	test(text.Compare(KConvertDigits13Result15) == 0);
       
  1218 	NumberConversion::ConvertDigits(text, EDigitTypeLao);
       
  1219 	test(text.Compare(KConvertDigits13Result14) == 0);
       
  1220 	NumberConversion::ConvertDigits(text, EDigitTypeMalayalam);
       
  1221 	test(text.Compare(KConvertDigits13Result13) == 0);
       
  1222 	NumberConversion::ConvertDigits(text, EDigitTypeKannada);
       
  1223 	test(text.Compare(KConvertDigits13Result12) == 0);
       
  1224 	NumberConversion::ConvertDigits(text, EDigitTypeTelugu);
       
  1225 	test(text.Compare(KConvertDigits13Result11) == 0);
       
  1226 	NumberConversion::ConvertDigits(text, EDigitTypeTamil);
       
  1227 	test(text.Compare(KConvertDigits13Result10) == 0);
       
  1228 	NumberConversion::ConvertDigits(text, EDigitTypeOriya);
       
  1229 	test(text.Compare(KConvertDigits13Result9) == 0);
       
  1230 	NumberConversion::ConvertDigits(text, EDigitTypeGujarati);
       
  1231 	test(text.Compare(KConvertDigits13Result8) == 0);
       
  1232 	NumberConversion::ConvertDigits(text, EDigitTypeGurmukhi);
       
  1233 	test(text.Compare(KConvertDigits13Result7) == 0);
       
  1234 	NumberConversion::ConvertDigits(text, EDigitTypeBengali);
       
  1235 	test(text.Compare(KConvertDigits13Result6) == 0);
       
  1236 	NumberConversion::ConvertDigits(text, EDigitTypeThai);
       
  1237 	test(text.Compare(KConvertDigits13Result5) == 0);
       
  1238 	NumberConversion::ConvertDigits(text, EDigitTypeDevanagari);
       
  1239 	test(text.Compare(KConvertDigits13Result4) == 0);
       
  1240 	NumberConversion::ConvertDigits(text, EDigitTypeEasternArabicIndic);
       
  1241 	test(text.Compare(KConvertDigits13Result3) == 0);
       
  1242 	NumberConversion::ConvertDigits(text, EDigitTypeArabicIndic);
       
  1243 	test(text.Compare(KConvertDigits13Result2) == 0);
       
  1244 	NumberConversion::ConvertDigits(text, EDigitTypeWestern);
       
  1245 	test(text.Compare(KConvertDigits13Result1) == 0);
       
  1246 	// End of DEF101816: TDigitType enum needs to be extended to inlcude Indic digits to enable number co
       
  1247 	}
       
  1248 
       
  1249 
       
  1250 void TestLengthOfConvertedText()
       
  1251 	{
       
  1252 	TBuf<80> text;
       
  1253 	text = KConvertDigits1;
       
  1254 	test(NumberConversion::LengthOfConvertedText(text, EDigitTypeArabicIndic) == text.Length());
       
  1255 	}
       
  1256 
       
  1257 void TestFormat()
       
  1258 	{
       
  1259 	TBuf<80> text;
       
  1260 	text = KFormatString1;
       
  1261 	NumberConversion::Format(EDigitTypeWestern, TRefByValue<TDes>(text), 123);
       
  1262 	test(text.Compare(KFormatResult1a) == 0);
       
  1263 	text = KFormatString1;
       
  1264 	NumberConversion::Format(EDigitTypeArabicIndic, TRefByValue<TDes>(text), 123);
       
  1265 	test(text.Compare(KFormatResult1b) == 0);
       
  1266 	text = KFormatString1;
       
  1267 	NumberConversion::Format(EDigitTypeEasternArabicIndic, TRefByValue<TDes>(text), 123);
       
  1268 	test(text.Compare(KFormatResult1c) == 0);
       
  1269 	text = KFormatString1;
       
  1270 	NumberConversion::Format(EDigitTypeDevanagari, TRefByValue<TDes>(text), 123);
       
  1271 	test(text.Compare(KFormatResult1d) == 0);
       
  1272 	text = KFormatString1;
       
  1273 	NumberConversion::Format(EDigitTypeThai, TRefByValue<TDes>(text), 123);
       
  1274 	test(text.Compare(KFormatResult1e) == 0);
       
  1275 	text = KFormatString1;
       
  1276 	// DEF101816: TDigitType enum needs to be extended to inlcude Indic digits to enable number co
       
  1277 	NumberConversion::Format(EDigitTypeBengali, TRefByValue<TDes>(text), 123);
       
  1278 	test(text.Compare(KFormatResult1f) == 0);
       
  1279 	text = KFormatString1;
       
  1280 	NumberConversion::Format(EDigitTypeGurmukhi, TRefByValue<TDes>(text), 123);
       
  1281 	test(text.Compare(KFormatResult1g) == 0);
       
  1282 	text = KFormatString1;
       
  1283 	NumberConversion::Format(EDigitTypeGujarati, TRefByValue<TDes>(text), 123);
       
  1284 	test(text.Compare(KFormatResult1h) == 0);
       
  1285 	text = KFormatString1;
       
  1286 	NumberConversion::Format(EDigitTypeOriya, TRefByValue<TDes>(text), 123);
       
  1287 	test(text.Compare(KFormatResult1i) == 0);
       
  1288 	text = KFormatString1;
       
  1289 	NumberConversion::Format(EDigitTypeTamil, TRefByValue<TDes>(text), 123);
       
  1290 	test(text.Compare(KFormatResult1j) == 0);
       
  1291 	text = KFormatString1;
       
  1292 	NumberConversion::Format(EDigitTypeTelugu, TRefByValue<TDes>(text), 123);
       
  1293 	test(text.Compare(KFormatResult1k) == 0);
       
  1294 	text = KFormatString1;
       
  1295 	NumberConversion::Format(EDigitTypeKannada, TRefByValue<TDes>(text), 123);
       
  1296 	test(text.Compare(KFormatResult1l) == 0);
       
  1297 	text = KFormatString1;
       
  1298 	NumberConversion::Format(EDigitTypeMalayalam, TRefByValue<TDes>(text), 123);
       
  1299 	test(text.Compare(KFormatResult1m) == 0);
       
  1300 	text = KFormatString1;
       
  1301 	NumberConversion::Format(EDigitTypeLao, TRefByValue<TDes>(text), 123);
       
  1302 	test(text.Compare(KFormatResult1n) == 0);
       
  1303 	text = KFormatString1;
       
  1304 	NumberConversion::Format(EDigitTypeTibetan, TRefByValue<TDes>(text), 123);
       
  1305 	test(text.Compare(KFormatResult1o) == 0);
       
  1306 	text = KFormatString1;
       
  1307 	NumberConversion::Format(EDigitTypeMayanmar, TRefByValue<TDes>(text), 123);
       
  1308 	test(text.Compare(KFormatResult1p) == 0);
       
  1309 	text = KFormatString1;
       
  1310 	NumberConversion::Format(EDigitTypeKhmer, TRefByValue<TDes>(text), 123);
       
  1311 	test(text.Compare(KFormatResult1q) == 0);
       
  1312 	text = KFormatString1;
       
  1313 	// End of DEF101816: TDigitType enum needs to be extended to inlcude Indic digits to enable number co
       
  1314 	
       
  1315 	text = KFormatString2;
       
  1316 	NumberConversion::Format(EDigitTypeWestern, TRefByValue<TDes>(text), 123);
       
  1317 	test(text.Compare(KFormatResult2a) == 0);
       
  1318 	text = KFormatString2;
       
  1319 	NumberConversion::Format(EDigitTypeArabicIndic, TRefByValue<TDes>(text), 123);
       
  1320 	test(text.Compare(KFormatResult2b) == 0);
       
  1321 	text = KFormatString2;
       
  1322 	NumberConversion::Format(EDigitTypeEasternArabicIndic, TRefByValue<TDes>(text), 123);
       
  1323 	test(text.Compare(KFormatResult2c) == 0);
       
  1324 	text = KFormatString2;
       
  1325 	NumberConversion::Format(EDigitTypeDevanagari, TRefByValue<TDes>(text), 123);
       
  1326 	test(text.Compare(KFormatResult2d) == 0);
       
  1327 	text = KFormatString2;
       
  1328 	NumberConversion::Format(EDigitTypeThai, TRefByValue<TDes>(text), 123);
       
  1329 	test(text.Compare(KFormatResult2e) == 0);
       
  1330 	text = KFormatString2;
       
  1331 	// DEF101816: TDigitType enum needs to be extended to inlcude Indic digits to enable number co
       
  1332 	NumberConversion::Format(EDigitTypeBengali, TRefByValue<TDes>(text), 123);
       
  1333 	test(text.Compare(KFormatResult2f) == 0);
       
  1334 	text = KFormatString2;
       
  1335 	NumberConversion::Format(EDigitTypeGurmukhi, TRefByValue<TDes>(text), 123);
       
  1336 	test(text.Compare(KFormatResult2g) == 0);
       
  1337 	text = KFormatString2;
       
  1338 	NumberConversion::Format(EDigitTypeGujarati, TRefByValue<TDes>(text), 123);
       
  1339 	test(text.Compare(KFormatResult2h) == 0);
       
  1340 	text = KFormatString2;
       
  1341 	NumberConversion::Format(EDigitTypeOriya, TRefByValue<TDes>(text), 123);
       
  1342 	test(text.Compare(KFormatResult2i) == 0);
       
  1343 	text = KFormatString2;
       
  1344 	NumberConversion::Format(EDigitTypeTamil, TRefByValue<TDes>(text), 123);
       
  1345 	test(text.Compare(KFormatResult2j) == 0);
       
  1346 	text = KFormatString2;
       
  1347 	NumberConversion::Format(EDigitTypeTelugu, TRefByValue<TDes>(text), 123);
       
  1348 	test(text.Compare(KFormatResult2k) == 0);
       
  1349 	text = KFormatString2;
       
  1350 	NumberConversion::Format(EDigitTypeKannada, TRefByValue<TDes>(text), 123);
       
  1351 	test(text.Compare(KFormatResult2l) == 0);
       
  1352 	text = KFormatString2;
       
  1353 	NumberConversion::Format(EDigitTypeMalayalam, TRefByValue<TDes>(text), 123);
       
  1354 	test(text.Compare(KFormatResult2m) == 0);
       
  1355 	text = KFormatString2;
       
  1356 	NumberConversion::Format(EDigitTypeLao, TRefByValue<TDes>(text), 123);
       
  1357 	test(text.Compare(KFormatResult2n) == 0);
       
  1358 	text = KFormatString2;
       
  1359 	NumberConversion::Format(EDigitTypeTibetan, TRefByValue<TDes>(text), 123);
       
  1360 	test(text.Compare(KFormatResult2o) == 0);
       
  1361 	text = KFormatString2;
       
  1362 	NumberConversion::Format(EDigitTypeMayanmar, TRefByValue<TDes>(text), 123);
       
  1363 	test(text.Compare(KFormatResult2p) == 0);
       
  1364 	text = KFormatString2;
       
  1365 	NumberConversion::Format(EDigitTypeKhmer, TRefByValue<TDes>(text), 123);
       
  1366 	test(text.Compare(KFormatResult2q) == 0);
       
  1367 	text = KFormatString2;
       
  1368 	// End of DEF101816: TDigitType enum needs to be extended to inlcude Indic digits to enable number co
       
  1369 
       
  1370 
       
  1371 	text = KFormatString3;
       
  1372 	NumberConversion::Format(EDigitTypeWestern, TRefByValue<TDes>(text), 123, 456);
       
  1373 	test(text.Compare(KFormatResult3a) == 0);
       
  1374 	text = KFormatString3;
       
  1375 	NumberConversion::Format(EDigitTypeArabicIndic, TRefByValue<TDes>(text), 123, 456);
       
  1376 	test(text.Compare(KFormatResult3b) == 0);
       
  1377 	text = KFormatString3;
       
  1378 	NumberConversion::Format(EDigitTypeEasternArabicIndic, TRefByValue<TDes>(text), 123, 456);
       
  1379 	test(text.Compare(KFormatResult3c) == 0);
       
  1380 	text = KFormatString3;
       
  1381 	NumberConversion::Format(EDigitTypeDevanagari, TRefByValue<TDes>(text), 123, 456);
       
  1382 	test(text.Compare(KFormatResult3d) == 0);
       
  1383 	text = KFormatString3;
       
  1384 	NumberConversion::Format(EDigitTypeThai, TRefByValue<TDes>(text), 123, 456);
       
  1385 	test(text.Compare(KFormatResult3e) == 0);
       
  1386 
       
  1387 
       
  1388 //	text.Format(KFormatString4, 123, &KString, 456, &KString);
       
  1389 
       
  1390 	text = KFormatString4;
       
  1391 	NumberConversion::Format(EDigitTypeWestern, TRefByValue<TDes>(text), 123, &KString, 456, &KString);
       
  1392 	test(text.Compare(KFormatResult4a) == 0);
       
  1393 	text = KFormatString4;
       
  1394 	NumberConversion::Format(EDigitTypeArabicIndic, TRefByValue<TDes>(text), 123, &KString, 456, &KString);
       
  1395 	test(text.Compare(KFormatResult4b) == 0);
       
  1396 	text = KFormatString4;
       
  1397 	NumberConversion::Format(EDigitTypeEasternArabicIndic, TRefByValue<TDes>(text), 123, &KString, 456, &KString);
       
  1398 	test(text.Compare(KFormatResult4c) == 0);
       
  1399 
       
  1400 	}
       
  1401 
       
  1402 void TestLocale()
       
  1403 	{
       
  1404 	TLocale testLocale1;
       
  1405 	TLocale testLocale2;
       
  1406 	TDigitType testDigitType;
       
  1407 
       
  1408 	testLocale1.SetDigitType(EDigitTypeThai);
       
  1409 	testLocale2.SetDigitType(EDigitTypeArabicIndic);
       
  1410 
       
  1411 	testDigitType = testLocale1.DigitType();
       
  1412 	test(testDigitType==EDigitTypeThai);
       
  1413 	testDigitType = testLocale2.DigitType();
       
  1414 	test(testDigitType==EDigitTypeArabicIndic);
       
  1415 	}
       
  1416 
       
  1417 void TestConvertDigit()
       
  1418 	{
       
  1419 	struct TDigitInfo
       
  1420 		{
       
  1421 		TDigitInfo(TDigitType aDigitType, const TDesC& aName) :
       
  1422 			iDigitType(aDigitType),
       
  1423 			iName(aName)
       
  1424 			{
       
  1425 			}
       
  1426 		TDigitType iDigitType;
       
  1427 		TBuf<32> iName;
       
  1428 		} digitTypes[] = 
       
  1429 			{
       
  1430 			TDigitInfo(EDigitTypeWestern, _L("Western")),
       
  1431 			TDigitInfo(EDigitTypeArabicIndic, _L("ArabicIndic")),
       
  1432 			TDigitInfo(EDigitTypeEasternArabicIndic, _L("EasternArabicIndic")),
       
  1433 			TDigitInfo(EDigitTypeDevanagari, _L("Devanagari")),
       
  1434 			TDigitInfo(EDigitTypeThai, _L("Thai")),
       
  1435 			};
       
  1436 
       
  1437 	test.Printf(_L("\r\nConverDigit()\r\n"));
       
  1438 	for(TInt i=0;i<TInt(sizeof(digitTypes)/sizeof(digitTypes[0]));++i)
       
  1439 		{
       
  1440 		test.Printf(_L("%S\r\n"), &(digitTypes[i].iName));
       
  1441 		for(TInt j=0;j<TInt(sizeof(digitTypes)/sizeof(digitTypes[0]));++j)
       
  1442 			{
       
  1443 			test.Printf(_L("...to %S\r\n"), &(digitTypes[j].iName));
       
  1444 			for(TInt k=0;k<10;++k)
       
  1445 				{
       
  1446 				TChar c = TChar(digitTypes[i].iDigitType + k);
       
  1447 				test(NumberConversion::ConvertDigit(c, digitTypes[j].iDigitType) == 
       
  1448 					TChar(digitTypes[j].iDigitType + k));
       
  1449 				}
       
  1450 			}
       
  1451 		}
       
  1452 	}
       
  1453 
       
  1454 void RunTestsL()
       
  1455 	{
       
  1456 	test.Start(_L(" @SYMTestCaseID:SYSLIBS-NUMBERCONVERSION-LEGACY-TESTCONV-0001 Testing NumberConversion "));
       
  1457 	__UHEAP_MARK;
       
  1458 	test.Next(_L("Test String->Number"));
       
  1459 	TestStringToNumber();
       
  1460 	__UHEAP_MARKEND;
       
  1461 	__UHEAP_MARK;
       
  1462 	test.Next(_L("Test PositionOfNextNumber"));
       
  1463 	TestPositionOfNextNumber();
       
  1464 	__UHEAP_MARKEND;
       
  1465 	__UHEAP_MARK;
       
  1466 	test.Next(_L("Test FormatNumber"));
       
  1467 	TestFormatNumber();
       
  1468 	__UHEAP_MARKEND;
       
  1469 	__UHEAP_MARK;
       
  1470 	test.Next(_L("Test AppendFormatNumber"));
       
  1471 	TestAppendFormatNumber();
       
  1472 	__UHEAP_MARKEND;
       
  1473 	__UHEAP_MARK;
       
  1474 	test.Next(_L("Test ConvertDigits"));
       
  1475 	TestConvertDigits();
       
  1476 	__UHEAP_MARKEND;
       
  1477 	__UHEAP_MARK;
       
  1478 	test.Next(_L("Test LengthOfConvertedText"));
       
  1479 	TestLengthOfConvertedText();
       
  1480 	__UHEAP_MARKEND;
       
  1481 	__UHEAP_MARK;
       
  1482 	test.Next(_L("Test Format"));
       
  1483 	TestFormat();
       
  1484 	__UHEAP_MARKEND;
       
  1485 	__UHEAP_MARK;
       
  1486 	test.Next(_L("Test Locale"));
       
  1487 	TestLocale();
       
  1488 	__UHEAP_MARKEND;
       
  1489 	__UHEAP_MARK;
       
  1490 	test.Next(_L("Test ConvertDigit"));
       
  1491 	TestConvertDigit();
       
  1492 	__UHEAP_MARKEND;
       
  1493 
       
  1494 	}
       
  1495 
       
  1496 
       
  1497 void SetupConsoleL() // initialize and call example code under cleanup stack
       
  1498 	{
       
  1499 	console=Console::NewL(_L("NumberConversion Test"),	TSize(KCalypsoConsoleWidth,KCalypsoConsoleHeight));
       
  1500 	CleanupStack::PushL(console);
       
  1501 	test.SetConsole(console);
       
  1502 
       
  1503 	// Set up an active scheduler, for multitap testing
       
  1504 	CActiveScheduler*  scheduler = new (ELeave) CActiveScheduler;
       
  1505 	  // Push onto the cleanup stack
       
  1506 	CleanupStack::PushL(scheduler);
       
  1507 	 
       
  1508 	  // Install as the active scheduler
       
  1509 	CActiveScheduler::Install(scheduler);
       
  1510 
       
  1511 	// DriveEngineL is the real thing being tested here
       
  1512 	TRAPD(error,RunTestsL()); // perform example function
       
  1513 
       
  1514 	test(error == KErrNone);
       
  1515 	test.End();
       
  1516 
       
  1517 	CleanupStack::PopAndDestroy(2); // close console, scheduler
       
  1518 	}
       
  1519 
       
  1520 
       
  1521 GLDEF_C TInt E32Main() // main function called by E32
       
  1522 	{
       
  1523 	CTrapCleanup* cleanup=CTrapCleanup::New(); // get clean-up stack
       
  1524 	TRAPD(error,SetupConsoleL()); // more initialization, then do example
       
  1525 	__ASSERT_ALWAYS(!error,User::Panic(_L("NumberConversion Test"),error));
       
  1526 	delete cleanup; // destroy clean-up stack
       
  1527 	return 0; // and return
       
  1528 	}