Cosmos/source/FrodeTest/Test/StringTest.cs
Scalpel_cp 6f177b05c1 Fixed Path.GetDirectoryName
Minor changes
2008-09-08 20:25:43 +00:00

207 lines
8.3 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace FrodeTest.Test
{
public class StringTest
{
public static void RunTest()
{
Check.SetHeadingText("Testing System.String - Static methods");
//Static methods
//Check.Text = "String.Compare";
//Check.Validate(String.Compare("test", "test") == 0);
//Check.Validate(String.Compare("test", "other") == 1);
Check.Text = "String.CompareOrdinal";
Check.Validate(String.CompareOrdinal("test", "test") == 0);
Check.Validate(String.CompareOrdinal("test", "other") == 5);
Check.Text = "String.Concat";
Check.Validate(String.Concat("A", "B", "C", "D").Equals("ABCD"));
Check.Text = "String.Copy";
Check.Validate(String.Copy("test").Equals("test"));
Check.Text = "String.Equals";
Check.Validate(String.Equals("test", "test", StringComparison.OrdinalIgnoreCase));
Check.Validate(!String.Equals("test", "other", StringComparison.CurrentCulture));
Check.Text = "String.Format";
Check.Validate(String.Format("Word:{0}", "Format").Equals("Word:Format"));
//Check.Text = "String.Intern";
//Check.Validate(String.Intern("test").Equals("test"));
//Check.Text = "String.IsInterned";
//Check.Validate(String.IsInterned("test").Equals("test"));
Check.Text = "String.IsNullOrEmpty";
Check.Validate(String.IsNullOrEmpty(null));
Check.Validate(String.IsNullOrEmpty(String.Empty));
Check.Validate(!String.IsNullOrEmpty("not empty"));
Check.Text = "String.Join";
Check.Validate(String.Join(":", new string[] { "Hello", "World" }, 0, 2).Equals("Hello:World"));
Console.WriteLine("Press any key to continue");
Console.ReadLine();
Check.SetHeadingText("Testing System.String - Instance methods");
Check.Text = "String.Clone";
Check.Validate("test".Clone().ToString() == "test");
Check.Text = "String.CompareTo";
Check.Validate("test".CompareTo("test") == 0);
Check.Text = "String.Contains";
Check.Validate("test".Contains("e"));
Check.Text = "String.CopyTo";
char[] destination = new char[10];
"test".CopyTo(0, destination, 0, 4);
Check.Validate((destination[0] == 't') && (destination[1] == 'e') && (destination[2] == 's') && (destination[3] == 't'));
Check.Text = "String.EndsWith";
Check.Validate("test".EndsWith("st"));
Check.Validate("test".EndsWith("st", StringComparison.CurrentCulture));
Check.Validate("test".EndsWith("st", true, null));
Check.Validate("test".EndsWith("test"));
Check.Validate(!"test".EndsWith("VeryLongText"));
Check.Text = "String.IndexOf";
Check.Validate("test".IndexOf('t', 0, 2) == 0);
Check.Validate("test".IndexOf('B', 1, 1) == -1);
Check.Validate("test".IndexOf("st") == 2);
Check.Validate("test".IndexOf("es", 1, 3, StringComparison.CurrentCulture) == 1);
Check.Text = "String.IndexOfAny";
Check.Validate("test".IndexOfAny(new char[] { 'a', 'b' }, 0, 4) == -1);
Check.Validate("test".IndexOfAny(new char[] { 'e', 's' }, 0, 4) == 1);
Check.Text = "String.Insert";
Check.Validate("Hello".Insert(5, " World").Equals("Hello World"));
//Check.Text = "String.IsNormalized";
//Check.Validate("test".IsNormalized());
Check.Text = "String.LastIndexOf";
Check.Validate("Readme.txt".LastIndexOf('.') == 6);
Console.WriteLine("Press any key to continue");
Console.ReadLine();
Check.Text = "String.LastIndexOfAny";
Check.Validate("test".LastIndexOfAny(new char[] { 'a', 'b' }, 0, 4) == -1);
Check.Validate("test".LastIndexOfAny(new char[] { 'a', 't' }, 3, 4) == 3);
Check.Text = "String.Length";
Check.Validate("StringWithLength18".Length == 18);
//Check.Text = "String.Normalize";
//Check.Validate("test".Normalize(NormalizationForm.FormKD).Equals("test"));
Check.Text = "String.PadLeft";
Check.Validate("test".PadLeft(8, '!').Equals("!!!!test"));
Check.Text = "String.PadRight";
Check.Validate("test".PadRight(8, '!').Equals("test!!!!"));
Check.Text = "String.Remove";
Check.Validate("test".Remove(2).Equals("te"));
Check.Validate("test".Remove(1, 2).Equals("tt"));
Check.Text = "String.Replace(char, char)";
Check.Validate("test".Replace('t', 'p').Equals("pesp"));
Check.Text = "String.Replace(string, string)";
Check.Validate("test".Replace("es", "amti").Equals("tamtit"));
Check.Text = "String.Split";
Check.Validate("Hello World".Split(new string[] { "l" }, 30, StringSplitOptions.RemoveEmptyEntries).Length == 3);
Check.Text = "String.StartsWith";
Check.Validate("test".StartsWith("te"));
Check.Validate("test".StartsWith("te", StringComparison.CurrentCulture));
Check.Validate(!"test".StartsWith("boo", false, System.Globalization.CultureInfo.CurrentCulture));
Check.Validate("test".StartsWith("test"));
Check.Validate(!"test".StartsWith("testlong"));
Check.Text = "String.Substring";
Check.Validate("test".Substring(1, 2).Equals("es"));
Check.Text = "String.ToCharArray";
Check.Validate("test".ToCharArray().Length == 4);
Check.Validate(("test".ToCharArray()[0] == 't') && ("test".ToCharArray()[2] == 's'));
Check.Text = "String.ToLower";
Check.Validate("TEST!".ToLower().Equals("test!"));
Check.Validate("wOrDs".ToLower(null).Equals("words"));
Check.Text = "String.ToLowerInvariant";
Check.Validate("tESt".ToLowerInvariant().Equals("test"));
Check.Text = "String.ToString";
Check.Validate("test".ToString().Equals("test"));
Check.Text = "String.ToUpper";
Check.Validate("test".ToUpper().Equals("TEST"));
Check.Text = "String.ToUpperInvariant";
Check.Validate("test".ToUpperInvariant().Equals("TEST"));
Check.Text = "String.Trim";
Check.Validate(" test .".Trim(new char[] { ' ', '.' }).Equals("test"));
Check.Text = "String.TrimEnd";
Check.Validate("test".TrimEnd(new char[] {'t'}).Equals("tes"));
Check.Text = "String.TrimStart";
Check.Validate("test".TrimStart(new char[] { 't' }).Equals("est"));
// VARIOUS BUGS ETC.
//Add char and string
//Bug discovered 7.june. SysFault when adding char and string.
//string added = string.Empty;
//added = ((char)('c')) + "oncatenating char and string works.";
//Console.WriteLine(added);
//StringBuilder sb = new StringBuilder();
//sb.Append("String");
//sb.Append("Builder");
//sb.Append(Environment.NewLine);
//sb.Append("Works");
//Console.WriteLine(sb.ToString());
//Bug, found 4.aug
//Printing 0:\ will print previous string in buffer instead!
//Console.WriteLine("This should be printed ONCE");
//Console.WriteLine("\\");
//Console.WriteLine(@"0:\");
//Console.WriteLine(@"\");
//Console.WriteLine("Long string \\ Long String");
//Console.WriteLine("Back to normal");
//Bug
//string xTemp = "\\";
//Console.WriteLine(xTemp.Length);
//for (int i = 0; i < xTemp.Length; i++)
//{
// Console.Write(((byte)xTemp[i]).ToString());
//}
// Add \t as Tab
//Console.WriteLine("Column1\tColumn2");
}
}
}