New test.
[mono.git] / mcs / class / System.Data / Test / System.Data.Tests.Mainsoft / GHTUtils / genstrings.cs
1 // Authors:
2 //   Rafael Mizrahi   <rafim@mainsoft.com>
3 //   Erez Lotan       <erezl@mainsoft.com>
4 //   Oren Gurfinkel   <oreng@mainsoft.com>
5 //   Ofer Borstein
6 // 
7 // Copyright (c) 2004 Mainsoft Co.
8 // 
9 // Permission is hereby granted, free of charge, to any person obtaining
10 // a copy of this software and associated documentation files (the
11 // "Software"), to deal in the Software without restriction, including
12 // without limitation the rights to use, copy, modify, merge, publish,
13 // distribute, sublicense, and/or sell copies of the Software, and to
14 // permit persons to whom the Software is furnished to do so, subject to
15 // the following conditions:
16 // 
17 // The above copyright notice and this permission notice shall be
18 // included in all copies or substantial portions of the Software.
19 // 
20 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
21 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
23 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
24 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
25 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
26 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27 //
28
29 using System;
30 using System.IO;
31 using System.Globalization;
32 using System.Text;
33 using System.Collections;
34 using Microsoft.VisualBasic;
35
36 namespace GenStrings
37 {
38         public class IntlStrings
39         {
40                 //Random generator used to generate the random numbers.
41                 private Random rand;
42                 //*-------------------------------------------------------------------------------------------------
43                 //    Name           : IntlStrings ( constructor )
44                 //    Purpose        : Creates a random genrator and loads the default resources.
45                 //*-------------------------------------------------------------------------------------------------
46                 public IntlStrings()
47                 {
48                         //Create a random object.
49                         rand = new Random(10);//'cint(DateTime.Now.Ticks));
50                 }
51
52                 public IntlStrings(long lSeed):this(){}
53
54                 //*--------------------------------------------------------------------------------------------------
55                 //    Name           : GetRandString
56                 //    Purpose        : Generates a string composed of valid characters for the current locale ID. 
57                 //                     String is retrieved from TEXT block in the resouce file.
58                 //    Inputs         : iMaxChar -- int maximum number of unicode character to be generated.
59                 //                   : bAbsolute -- if set true, exact number (iMaxChar) will be generated,
60                 //                        if set false, number of generated chars will be random.
61                 //                   : bValidate -- boolean, if true, verify generated characters are valid
62                 //                        if false, does not verify generated characters
63                 //    Outputs        : Random generated string
64                 //*--------------------------------------------------------------------------------------------------        
65                 public string GetString(int iMaxChar, bool bAbsolute, bool bValidate, bool bNoLeadNum)
66                 {
67                         string strTemp ;
68                         if ( iMaxChar <= 0 )  // If the string length is zero, return an empty string
69                         {
70                                 return String.Empty;
71                         }
72             
73                         //'If (Not bAbsolute ) Then
74                         //'    iMaxChar = rand.Next( 1  , iMaxChar )
75                         //'End If
76
77                         strTemp = GetString(iMaxChar, true, true);
78             
79                         //Include all the intestring characters.
80                         //rafi strTemp = InsertInterestingChars( strTemp );
81                         return strTemp;
82
83                 }
84
85                 public string GetString(int iMaxChar, bool bAbsolute, bool bValidate)
86                 {
87                         int idx;
88                         char[] chr_arr = new char[iMaxChar] ;
89
90                         for (idx = 0 ;idx < iMaxChar ;idx++) //'GetString must return exact size of iMaxChar
91                         {  //genstring must be random, otherwise ,if generated strings will be repeated, tests will fail.
92                                 chr_arr[idx] = System.Convert.ToChar(64 + (System.DateTime.Now.Ticks + idx) % 60) ;
93                         }
94                         //'return strBuffer
95                         return new string(chr_arr);
96
97                 }
98         
99
100         }
101                       
102 }