diff --git a/VERSION b/VERSION
index 64799d5..5f7d27c 100644
Binary files a/VERSION and b/VERSION differ
diff --git a/make.ps1 b/make.ps1
index 242b325..4904c1c 100644
--- a/make.ps1
+++ b/make.ps1
@@ -158,8 +158,6 @@ if($buildType -eq "package"){
build
test
pack
-
- exit
}
if($buildType -eq "clean"){
diff --git a/src/TestDataGenerator.Core.Tests/TestDataGenerator.Core.Tests.csproj b/src/TestDataGenerator.Core.Tests/TestDataGenerator.Core.Tests.csproj
index a28bedf..54893c4 100644
--- a/src/TestDataGenerator.Core.Tests/TestDataGenerator.Core.Tests.csproj
+++ b/src/TestDataGenerator.Core.Tests/TestDataGenerator.Core.Tests.csproj
@@ -57,9 +57,9 @@
false
-
+
False
- ..\packages\Eloquent.1.0.1.1\lib\net45\Eloquent.dll
+ ..\packages\Eloquent.1.0.2.0\lib\net45\Eloquent.dll
diff --git a/src/TestDataGenerator.Core.Tests/TextTests.cs b/src/TestDataGenerator.Core.Tests/TextTests.cs
index 4d0aee7..e73c60b 100644
--- a/src/TestDataGenerator.Core.Tests/TextTests.cs
+++ b/src/TestDataGenerator.Core.Tests/TextTests.cs
@@ -1,13 +1,13 @@
using System;
+using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.Globalization;
using System.IO;
+using System.Linq;
using System.Text.RegularExpressions;
using Eloquent;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using TestDataGenerator.Core;
-using TestDataGenerator.Core.Exceptions;
-using TestDataGenerator.Core.Generators;
namespace TestDataGenerator.Tests
{
@@ -23,7 +23,7 @@ public class TextTests
public void Can_GenerateFromTemplate_Overload()
{
var template = @"Generated <<\L\L>>";
- string text = AlphaNumericGenerator.GenerateFromTemplate(template);
+ string text = AlphanumericGenerator.GenerateFromTemplate(template);
Console.WriteLine(@"'{0}' produced '{1}'", template, text);
StringAssert.Matches(text, new Regex(@"Generated [A-Z]{2}"));
}
@@ -34,7 +34,7 @@ public void Can_GenerateFromTemplate_Overload2()
{
var template = @"Generated <<\L\L>>";
var random = new Random(100);
- string text = AlphaNumericGenerator.GenerateFromTemplate(template, random);
+ string text = AlphanumericGenerator.GenerateFromTemplate(template, random);
Console.WriteLine(@"'{0}' produced '{1}'", template, text);
StringAssert.Matches(text, new Regex(@"Generated [A-Z]{2}"));
}
@@ -45,7 +45,7 @@ public void Can_GenerateFromTemplate_Overload3()
{
var template = @"Generated <<\L\L>>";
var config = new GenerationConfig() {Seed = 100};
- string text = AlphaNumericGenerator.GenerateFromTemplate(template, config);
+ string text = AlphanumericGenerator.GenerateFromTemplate(template, config);
Console.WriteLine(@"'{0}' produced '{1}'", template, text);
StringAssert.Matches(text, new Regex(@"Generated [A-Z]{2}"));
}
@@ -58,7 +58,7 @@ public void Can_GenerateFromTemplate_Overload4()
var namedPatterns = new NamedPatterns();
namedPatterns.Patterns.Add(new NamedPattern(){Name = "superhero", Pattern = "(Batman|Superman|Spiderman)"});
- string text = AlphaNumericGenerator.GenerateFromTemplate(template, namedPatterns);
+ string text = AlphanumericGenerator.GenerateFromTemplate(template, namedPatterns);
Console.WriteLine(@"'{0}' produced '{1}'", template, text);
StringAssert.Matches(text, new Regex(@"(Batman|Superman|Spiderman)"));
}
@@ -72,7 +72,7 @@ public void Can_GenerateFromTemplate_Overload5()
var namedPatterns = new NamedPatterns();
namedPatterns.Patterns.Add(new NamedPattern() { Name = "superhero", Pattern = "(Batman|Superman|Spiderman)" });
var config = new GenerationConfig() { Seed = 100 };
- string text = AlphaNumericGenerator.GenerateFromTemplate(template, namedPatterns, config);
+ string text = AlphanumericGenerator.GenerateFromTemplate(template, namedPatterns, config);
Console.WriteLine(@"'{0}' produced '{1}'", template, text);
StringAssert.Matches(text, new Regex(@"(Batman|Superman|Spiderman)"));
}
@@ -88,7 +88,7 @@ public void Can_Load_File_Supplied_In_Config_Absolute()
config.Random = random;
config.PatternFiles.Add(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "tdg-patterns", "language.tdg-patterns"));
- string text = AlphaNumericGenerator.GenerateFromTemplate(template, config);
+ string text = AlphanumericGenerator.GenerateFromTemplate(template, config);
Console.WriteLine(@"'{0}' produced '{1}'", template, text);
Assert.IsTrue(text.Length > 0);
}
@@ -102,7 +102,7 @@ public void Can_Load_File_Supplied_In_Config_Relative()
var config = new GenerationConfig() { Seed = 100 };
config.PatternFiles.Add("language.tdg-patterns");
- string text = AlphaNumericGenerator.GenerateFromTemplate(template, config);
+ string text = AlphanumericGenerator.GenerateFromTemplate(template, config);
Console.WriteLine(@"'{0}' produced '{1}'", template, text);
Assert.IsTrue(text.Length > 0);
}
@@ -116,7 +116,7 @@ public void Can_Load_File_Supplied_In_Config_Relative_No_Extension()
var config = new GenerationConfig() { Seed = 100 };
config.PatternFiles.Add("language");
- string text = AlphaNumericGenerator.GenerateFromTemplate(template, config);
+ string text = AlphanumericGenerator.GenerateFromTemplate(template, config);
Console.WriteLine(@"'{0}' produced '{1}'", template, text);
Assert.IsTrue(text.Length > 0);
}
@@ -126,7 +126,7 @@ public void Can_Load_File_Supplied_In_Config_Relative_No_Extension()
public void Can_Escape_Template()
{
var template = @"Generated \<<\L\L>>";
- string text = AlphaNumericGenerator.GenerateFromTemplate(template);
+ string text = AlphanumericGenerator.GenerateFromTemplate(template);
Console.WriteLine(@"'{0}' produced '{1}'", template, text);
Assert.AreEqual(text, @"Generated <<\L\L>>");
}
@@ -136,7 +136,7 @@ public void Can_Escape_Template()
public void Can_UnEscape_Template()
{
var template = @"Generated \\<<\L\L>>";
- string text = AlphaNumericGenerator.GenerateFromTemplate(template);
+ string text = AlphanumericGenerator.GenerateFromTemplate(template);
Console.WriteLine(@"'{0}' produced '{1}'", template, text);
StringAssert.Matches(text, new Regex(@"Generated \\\\[A-Z]{2}"));
}
@@ -147,13 +147,13 @@ public void Can_UnEscape_Template()
public void Can_Escape_Config()
{
var template = @"\<# blah #>abc";
- string text = AlphaNumericGenerator.GenerateFromTemplate(template);
+ string text = AlphanumericGenerator.GenerateFromTemplate(template);
Console.WriteLine(@"'{0}' produced '{1}'", template, text);
Assert.AreEqual(@"\<# blah #>abc", text);
// space at start
template = @". <# blah #>abc";
- text = AlphaNumericGenerator.GenerateFromTemplate(template);
+ text = AlphanumericGenerator.GenerateFromTemplate(template);
Console.WriteLine(@"'{0}' produced '{1}'", template, text);
Assert.AreEqual(@". <# blah #>abc", text);
}
@@ -163,7 +163,7 @@ public void Can_Escape_Config()
public void Can_Generate_From_Template_No_Symbols()
{
var template = "Generated <>";
- string text = AlphaNumericGenerator.GenerateFromTemplate(template);
+ string text = AlphanumericGenerator.GenerateFromTemplate(template);
Console.WriteLine(@"'{0}' produced '{1}'", template, text);
StringAssert.Matches(text, new Regex(@"Generated [L]{2}"));
}
@@ -173,7 +173,7 @@ public void Can_Generate_From_Template_No_Symbols()
public void Can_Generate_From_Template_for_ReadMe1()
{
var template = @"Hi there <<\L\v{0,2}\l{0,2}\v \L\v{0,2}\l{0,2}\v{0,2}\l{0,2}\l>> how are you doing?";
- string text = AlphaNumericGenerator.GenerateFromTemplate(template);
+ string text = AlphanumericGenerator.GenerateFromTemplate(template);
Console.WriteLine(@"'{0}' produced '{1}'", template, text);
StringAssert.Matches(text, new Regex(@"Hi there [A-Z][aeiou]{0,2}[a-z]{0,2}[aeiou] [A-Z][aeiou]{0,2}[a-z]{0,2}[aeiou]{0,2}[a-z]{0,2}[a-z] how are you doing\?"));
}
@@ -183,7 +183,7 @@ public void Can_Generate_From_Template_for_ReadMe1()
public void Can_Generate_From_Template_for_ReadMe2()
{
var template = @"<>";
- string text = AlphaNumericGenerator.GenerateFromTemplate(template);
+ string text = AlphanumericGenerator.GenerateFromTemplate(template);
Console.WriteLine(@"'{0}' produced '{1}'", template, text);
StringAssert.Matches(text, new Regex(@"aa[1-9]\d{2}-\d{2}-\d{4}"));
}
@@ -194,7 +194,7 @@ public void Can_Generate_From_Template_for_ReadMe3()
{
var template = @"Hi there <<\L\v{0,2}\l{0,2}\v \L\v{0,2}\l{0,2}\v{0,2}\l{0,2}\l>> how are you doing? Your SSN is <<[1-9]\d\d-\d\d-\d\d\d\d>>";
- string text = AlphaNumericGenerator.GenerateFromTemplate(template);
+ string text = AlphanumericGenerator.GenerateFromTemplate(template);
Console.WriteLine(@"'{0}' produced '{1}'", template, text);
StringAssert.Matches(text, new Regex(@"Hi there [A-Z][aeiou]{0,2}[a-z]{0,2}[aeiou] [A-Z][aeiou]{0,2}[a-z]{0,2}[aeiou]{0,2}[a-z]{0,2}[a-z] how are you doing\? Your SSN is [1-9]\d{2}-\d{2}-\d{4}"));
@@ -205,7 +205,7 @@ public void Can_Generate_From_Template_for_ReadMe3()
public void Can_Generate_From_Template_with_Symbols()
{
var template = @"Generated <>";
- string text = AlphaNumericGenerator.GenerateFromTemplate(template);
+ string text = AlphanumericGenerator.GenerateFromTemplate(template);
Console.WriteLine(@"'{0}' produced '{1}'", template, text);
StringAssert.Matches(text, new Regex(@"Generated [L][A-Z]"));
}
@@ -215,7 +215,7 @@ public void Can_Generate_From_Template_with_Symbols()
public void Can_Generate_From_Template_Multiple()
{
var template = @"Generated <<\L\L>> and <<(\d){5}>> with <<\d>>";
- string text = AlphaNumericGenerator.GenerateFromTemplate(template);
+ string text = AlphanumericGenerator.GenerateFromTemplate(template);
Console.WriteLine(@"'{0}' produced '{1}'", template, text);
StringAssert.Matches(text, new Regex(@"Generated [A-Z]{2} and [0-9]{5} with [0-9]"));
}
@@ -225,7 +225,7 @@ public void Can_Generate_From_Template_Multiple()
public void Can_Generate_From_Template_Harder()
{
var template = @"This is a very basic <<(\l){10}>> which can be used to create <<\l\l\l\l>> of varying <<\l\l\l\l\l>>. The main purpose is to generate dummy <<\L\l\l\l>> which can be used for <<\l\l\l\l\l\l\l>>.";
- string text = AlphaNumericGenerator.GenerateFromTemplate(template);
+ string text = AlphanumericGenerator.GenerateFromTemplate(template);
Console.WriteLine(@"'{0}' produced '{1}'", template, text);
StringAssert.Matches(text, new Regex(@"This is a very basic [a-z]{10} which can be used to create [a-z]{4} of varying [a-z]{5}. The main purpose is to generate dummy [A-Z][a-z]{3} which can be used for [a-z]{7}."));
}
@@ -235,7 +235,7 @@ public void Can_Generate_From_Template_Harder()
public void Can_Generate_From_Template_With_Alternatives_Symbols()
{
var template = @"<<\C|\c{10}|\V\V\V|\v{2,3}>>";
- string text = AlphaNumericGenerator.GenerateFromTemplate(template);
+ string text = AlphanumericGenerator.GenerateFromTemplate(template);
Console.WriteLine(@"'{0}' produced '{1}'", template, text);
StringAssert.Matches(text, new Regex(@"[BCDFGHJKLMNPQRSTVWXYZ]{1}|[bcdfghjklmnpqrstvwxyz]{10}|[AEIOU]{3}|[aeiou]{2,3}"));
}
@@ -245,7 +245,7 @@ public void Can_Generate_From_Template_With_Alternatives_Symbols()
public void Can_Generate_From_Template_With_Alternative_Groups()
{
var template = @"<<(\C)|\c{10}|(\V\V\V){20}|(\v\v\v\v\v){2,3}>>";
- string text = AlphaNumericGenerator.GenerateFromTemplate(template);
+ string text = AlphanumericGenerator.GenerateFromTemplate(template);
Console.WriteLine(@"'{0}' produced '{1}'", template, text);
StringAssert.Matches(text, new Regex(@"[BCDFGHJKLMNPQRSTVWXYZ]{1}|[bcdfghjklmnpqrstvwxyz]{10}|[AEIOU]{60}|[aeiou]{10,15}"));
}
@@ -255,7 +255,7 @@ public void Can_Generate_From_Template_With_Alternative_Groups()
public void Can_Generate_From_Pattern_With_Alternatives()
{
var template = @"Alternatives <<\C|(\c){10}|\V\V\V|\v{2,3}>>";
- string text = AlphaNumericGenerator.GenerateFromTemplate(template);
+ string text = AlphanumericGenerator.GenerateFromTemplate(template);
Console.WriteLine(@"'{0}' produced '{1}'", template, text);
StringAssert.Matches(text, new Regex(@"Alternatives ([BCDFGHJKLMNPQRSTVWXYZ]{1}|[bcdfghjklmnpqrstvwxyz]{10}|[AEIOU]{3}|[aeiou]{2,3})"));
}
@@ -265,7 +265,7 @@ public void Can_Generate_From_Pattern_With_Alternatives()
public void Can_Generate_From_Pattern_With_Alternatives2()
{
var template = @"Alternatives <<(A|B){1000}>>";
- string text = AlphaNumericGenerator.GenerateFromTemplate(template);
+ string text = AlphanumericGenerator.GenerateFromTemplate(template);
Console.WriteLine(@"'{0}' produced '{1}'", template, text);
StringAssert.Matches(text, new Regex(@"Alternatives ([BCDFGHJKLMNPQRSTVWXYZ]{1}|[bcdfghjklmnpqrstvwxyz]{10}|[AEIOU]{3}|[aeiou]{2,3})"));
}
@@ -276,7 +276,7 @@ public void Can_Generate_From_Pattern_With_Alternatives2()
public void Can_Generate_From_Pattern_With_Alternatives_Repeated_Symbols()
{
var template = @"Alternatives <<(\C{1}|\c{10}|\V{3}|\v{2,3})>>";
- string text = AlphaNumericGenerator.GenerateFromTemplate(template);
+ string text = AlphanumericGenerator.GenerateFromTemplate(template);
Console.WriteLine(@"'{0}' produced '{1}'", template, text);
StringAssert.Matches(text, new Regex(@"Alternatives ([BCDFGHJKLMNPQRSTVWXYZ]{1})|([bcdfghjklmnpqrstvwxyz]{10})|([AEIOU]{3}|[aeiou]{2,3})"));
if (text.Contains("|")) Assert.Fail(text);
@@ -287,7 +287,7 @@ public void Can_Generate_From_Pattern_With_Alternatives_Repeated_Symbols()
public void Can_Generate_From_Pattern_With_calculated_quantity()
{
var template = @"<<\v{2,3}>>";
- string text = AlphaNumericGenerator.GenerateFromTemplate(template);
+ string text = AlphanumericGenerator.GenerateFromTemplate(template);
Console.WriteLine(@"'{0}' produced '{1}'", template, text);
StringAssert.Matches(text, new Regex(@"([aeiou]{2,3})"));
if (text.Contains("|")) Assert.Fail(text);
@@ -302,7 +302,7 @@ public void Can_Generate_From_Pattern_With_calculated_quantity()
public void Can_Escape_Sets()
{
var template = @"<<\[LL]>>";
- string text = AlphaNumericGenerator.GenerateFromTemplate(template);
+ string text = AlphanumericGenerator.GenerateFromTemplate(template);
Console.WriteLine(@"'{0}' produced '{1}'", template, text);
StringAssert.Matches(text, new Regex(@"^\[LL]$"));
}
@@ -312,7 +312,7 @@ public void Can_Escape_Sets()
public void Can_Generate_NonRange_Set()
{
var template = @"<<[AEI]>>";
- string text = AlphaNumericGenerator.GenerateFromTemplate(template);
+ string text = AlphanumericGenerator.GenerateFromTemplate(template);
Console.WriteLine(@"'{0}' produced '{1}'", template, text);
StringAssert.Matches(text, new Regex(@"^[AEI]{1}$"));
}
@@ -322,7 +322,7 @@ public void Can_Generate_NonRange_Set()
public void Can_Generate_Range_Set()
{
var template = @"<<[A-I]>>";
- string text = AlphaNumericGenerator.GenerateFromTemplate(template);
+ string text = AlphanumericGenerator.GenerateFromTemplate(template);
Console.WriteLine(@"'{0}' produced '{1}'", template, text);
StringAssert.Matches(text, new Regex(@"^[ABCDEFGHI]{1}$"));
}
@@ -332,7 +332,7 @@ public void Can_Generate_Range_Set()
public void Can_Generate_Range_Set_Lower()
{
var template = @"<<[a-i]>>";
- string text = AlphaNumericGenerator.GenerateFromTemplate(template);
+ string text = AlphanumericGenerator.GenerateFromTemplate(template);
Console.WriteLine(@"'{0}' produced '{1}'", template, text);
StringAssert.Matches(text, new Regex(@"^[abcdefghi]{1}$"));
}
@@ -342,7 +342,7 @@ public void Can_Generate_Range_Set_Lower()
public void Can_Generate_Range_Set2()
{
var template = @"<<[A-B]>>";
- string text = AlphaNumericGenerator.GenerateFromTemplate(template);
+ string text = AlphanumericGenerator.GenerateFromTemplate(template);
Console.WriteLine(@"'{0}' produced '{1}'", template, text);
StringAssert.Matches(text, new Regex(@"^[AB]{1}$"));
}
@@ -352,7 +352,7 @@ public void Can_Generate_Range_Set2()
public void Can_Generate_Range_Set3()
{
var template = @"<<[W-X]>>";
- string text = AlphaNumericGenerator.GenerateFromTemplate(template);
+ string text = AlphanumericGenerator.GenerateFromTemplate(template);
Console.WriteLine(@"'{0}' produced '{1}'", template, text);
StringAssert.Matches(text, new Regex(@"^[W-X]{1}$"));
}
@@ -362,7 +362,7 @@ public void Can_Generate_Range_Set3()
public void Can_Generate_Range_Repeated_Set1()
{
var template = @"<<[W-X]{10}>>";
- string text = AlphaNumericGenerator.GenerateFromTemplate(template);
+ string text = AlphanumericGenerator.GenerateFromTemplate(template);
Console.WriteLine(@"'{0}' produced '{1}'", template, text);
StringAssert.Matches(text, new Regex(@"^[W-X]{10}$"));
}
@@ -373,7 +373,7 @@ public void Can_Generate_Range_Repeated_Set1()
public void Can_Generate_Range_Repeated_Set2()
{
var template = @"<<([W-X]{10}[W-X]{10})>>";
- string text = AlphaNumericGenerator.GenerateFromTemplate(template);
+ string text = AlphanumericGenerator.GenerateFromTemplate(template);
Console.WriteLine(@"'{0}' produced '{1}'", template, text);
StringAssert.Matches(text, new Regex(@"^[W-X]{10}[W-X]{10}$"));
}
@@ -383,7 +383,7 @@ public void Can_Generate_Range_Repeated_Set2()
public void Can_Generate_Range_Repeated_Set3()
{
var template = @"<<([W-X]{10,100}[1-9]{10,100})>>";
- string text = AlphaNumericGenerator.GenerateFromTemplate(template);
+ string text = AlphanumericGenerator.GenerateFromTemplate(template);
Console.WriteLine(@"'{0}' produced '{1}'", template, text);
StringAssert.Matches(text, new Regex(@"^[W-X]{10,100}[1-9]{10,100}$"));
}
@@ -394,7 +394,7 @@ public void Can_Generate_Range_Repeated_Set4()
{
// empty repeat expressions should result in a single instance - {} == {1}
var template = @"<<([W-X]{})>>";
- string text = AlphaNumericGenerator.GenerateFromTemplate(template);
+ string text = AlphanumericGenerator.GenerateFromTemplate(template);
Console.WriteLine(@"'{0}' produced '{1}'", template, text);
StringAssert.Matches(text, new Regex(@"^[W-X]$"));
}
@@ -405,7 +405,7 @@ public void Can_Generate_Range_Repeated_Set4()
public void Can_Generate_Range_Numeric()
{
var template = @"<<[1-9]>>";
- string text = AlphaNumericGenerator.GenerateFromTemplate(template);
+ string text = AlphanumericGenerator.GenerateFromTemplate(template);
Console.WriteLine(@"'{0}' produced '{1}'", template, text);
StringAssert.Matches(text, new Regex(@"^[1-9]$"));
}
@@ -415,7 +415,7 @@ public void Can_Generate_Range_Numeric()
public void Can_Generate_Range_Numeric5()
{
var template = @"<<[1-8]>>";
- string text = AlphaNumericGenerator.GenerateFromTemplate(template);
+ string text = AlphanumericGenerator.GenerateFromTemplate(template);
Console.WriteLine(@"'{0}' produced '{1}'", template, text);
StringAssert.Matches(text, new Regex(@"^[1-8]$"));
}
@@ -425,7 +425,7 @@ public void Can_Generate_Range_Numeric5()
public void Can_Generate_Range_Numeric2()
{
var template = @"<<[100-150]>>";
- string text = AlphaNumericGenerator.GenerateFromTemplate(template);
+ string text = AlphanumericGenerator.GenerateFromTemplate(template);
Console.WriteLine(@"'{0}' produced '{1}'", template, text);
int e = int.Parse(text);
if(e < 100 || e>150) Assert.Fail("Number not between 100 and 150.");
@@ -436,7 +436,7 @@ public void Can_Generate_Range_Numeric2()
public void Can_Generate_Range_Numeric3()
{
var template = @"<<(.[100-101]){3}>>";
- string text = AlphaNumericGenerator.GenerateFromTemplate(template);
+ string text = AlphanumericGenerator.GenerateFromTemplate(template);
Console.WriteLine(@"'{0}' produced '{1}'", template, text);
StringAssert.Matches(text, new Regex(@"^(.(100|101)){1}(.(100|101)){1}(.(100|101)){1}$"));
}
@@ -446,7 +446,7 @@ public void Can_Generate_Range_Numeric3()
public void Can_Generate_Range_Numeric4()
{
var template = @"<<(.[100-101]){1,3}>>";
- string text = AlphaNumericGenerator.GenerateFromTemplate(template);
+ string text = AlphanumericGenerator.GenerateFromTemplate(template);
Console.WriteLine(@"'{0}' produced '{1}'", template, text);
StringAssert.Matches(text, new Regex(@"^(.(100|101))?(.(100|101))?(.(100|101))?$"));
}
@@ -456,7 +456,7 @@ public void Can_Generate_Range_Numeric4()
public void Can_Generate_Range_Numeric_DecimalFormat()
{
var template = @"<<([1.00-10.00])>>";
- string text = AlphaNumericGenerator.GenerateFromTemplate(template);
+ string text = AlphanumericGenerator.GenerateFromTemplate(template);
Console.WriteLine(@"'{0}' produced '{1}'", template, text);
double d;
if (!double.TryParse(text, out d))
@@ -469,7 +469,7 @@ public void Can_Generate_Range_Numeric_DecimalFormat()
public void Can_Generate_Range_Numeric_DecimalFormat2()
{
var template = @"<<([1.00-2.00])>>";
- string text = AlphaNumericGenerator.GenerateFromTemplate(template);
+ string text = AlphanumericGenerator.GenerateFromTemplate(template);
Console.WriteLine(@"'{0}' produced '{1}'", template, text);
double d;
if (!double.TryParse(text, out d))
@@ -482,7 +482,7 @@ public void Can_Generate_Range_Numeric_DecimalFormat2()
public void Can_Generate_Range_Numeric_DecimalFormat3()
{
var template = @"<<([1.1-1.2])>>";
- string text = AlphaNumericGenerator.GenerateFromTemplate(template);
+ string text = AlphanumericGenerator.GenerateFromTemplate(template);
Console.WriteLine(@"'{0}' produced '{1}'", template, text);
double d;
if (!double.TryParse(text, out d))
@@ -495,7 +495,7 @@ public void Can_Generate_Range_Numeric_DecimalFormat3()
public void Can_Generate_Range_Numeric_DecimalFormat4()
{
var template = @"<<([12345.12345-12345.12346])>>";
- string text = AlphaNumericGenerator.GenerateFromTemplate(template);
+ string text = AlphanumericGenerator.GenerateFromTemplate(template);
Console.WriteLine(@"'{0}' produced '{1}'", template, text);
double d;
if (!double.TryParse(text, out d))
@@ -508,7 +508,7 @@ public void Can_Generate_Range_Numeric_DecimalFormat4()
public void Can_Generate_Range_Numeric_DecimalFormat5()
{
var template = @"<<([12345.9999-12346])>>";
- string text = AlphaNumericGenerator.GenerateFromTemplate(template);
+ string text = AlphanumericGenerator.GenerateFromTemplate(template);
Console.WriteLine(@"'{0}' produced '{1}'", template, text);
double d;
if (!double.TryParse(text, out d))
@@ -521,7 +521,7 @@ public void Can_Generate_Range_Numeric_DecimalFormat5()
public void Can_Generate_MultipleRange_Set()
{
var template = @"<<[A-B][1-3]>>";
- string text = AlphaNumericGenerator.GenerateFromTemplate(template);
+ string text = AlphanumericGenerator.GenerateFromTemplate(template);
Console.WriteLine(@"'{0}' produced '{1}'", template, text);
StringAssert.Matches(text, new Regex(@"^[A-B]{1}[1-3]{1}$"));
}
@@ -531,7 +531,7 @@ public void Can_Generate_MultipleRange_Set()
public void Can_Generate_MultipleRange_Set2()
{
var template = @"<<[1-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9][0-9][0-9]>>";
- string text = AlphaNumericGenerator.GenerateFromTemplate(template);
+ string text = AlphanumericGenerator.GenerateFromTemplate(template);
Console.WriteLine(@"'{0}' produced '{1}'", template, text);
StringAssert.Matches(text, new Regex(@"^[1-9]{1}[0-9]{1}[0-9]{1}-[0-9]{1}[0-9]{1}-[0-9]{1}[0-9]{1}[0-9]{1}[0-9]{1}$"));
}
@@ -541,7 +541,7 @@ public void Can_Generate_MultipleRange_Set2()
public void Can_Generate_MultipleRange_Set3()
{
var template = @"<<[1-28]/[1-12]/[1960-2013]>>";
- string text = AlphaNumericGenerator.GenerateFromTemplate(template);
+ string text = AlphanumericGenerator.GenerateFromTemplate(template);
Console.WriteLine(@"'{0}' produced '{1}'", template, text);
DateTime dt;
if(DateTime.TryParseExact(text, @"d/M/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.AssumeLocal, out dt) == false) Assert.Fail("invalid Date");
@@ -553,7 +553,7 @@ public void Can_Generate_MultipleRange_Set3()
public void Can_Generate_MultipleRange_Set4()
{
var template = @"<<[a-c1-3_]{100}>>";
- string text = AlphaNumericGenerator.GenerateFromTemplate(template);
+ string text = AlphanumericGenerator.GenerateFromTemplate(template);
Console.WriteLine(@"'{0}' produced '{1}'", template, text);
StringAssert.Matches(text, new Regex(@"^[a-c1-3_]{100}$"));
Assert.IsTrue(text.Contains("_")); // check that we have produced at least 1 underscore.
@@ -564,7 +564,7 @@ public void Can_Generate_MultipleRange_Set4()
public void Can_Generate_MultipleRange_Set5()
{
var template = @"<<[a-c1-3_*?ABC]{100}>>";
- string text = AlphaNumericGenerator.GenerateFromTemplate(template);
+ string text = AlphanumericGenerator.GenerateFromTemplate(template);
Console.WriteLine(@"'{0}' produced '{1}'", template, text);
StringAssert.Matches(text, new Regex(@"^[a-c1-3_*?ABC]{100}$"));
Assert.IsTrue(text.Contains("_"));
@@ -585,11 +585,11 @@ public void Can_BuildErrorSnippet_Start()
{
var template = @"This is a long string. This is a long string. This is a long string. This is a long string. This is a long string. This is a long string. This is a long string. This is a long string. This is a long string. This is a long string. ";
int ndx = 0;
- string text = AlphaNumericGenerator.BuildErrorSnippet(template, ndx);
+ string text = AlphanumericGenerator.BuildErrorSnippet(template, ndx);
Console.WriteLine(@"Error Snippet for '{0}'
at index {1} produced
'{2}'", template, ndx, text);
- Assert.AreEqual(AlphaNumericGenerator.ErrorContext*2+4, text.Length);
+ Assert.AreEqual(AlphanumericGenerator.ErrorContext*2+4, text.Length);
}
[TestMethod]
@@ -598,11 +598,11 @@ public void Can_BuildErrorSnippet_End()
{
var template = @"This is a long string. This is a long string. This is a long string. This is a long string. This is a long string. This is a long string. This is a long string. This is a long string. This is a long string. This is a long string. ";
int ndx = template.Length-1;
- string text = AlphaNumericGenerator.BuildErrorSnippet(template, ndx);
+ string text = AlphanumericGenerator.BuildErrorSnippet(template, ndx);
Console.WriteLine(@"Error Snippet for '{0}'
at index {1} produced
'{2}'", template, ndx, text);
- Assert.AreEqual(AlphaNumericGenerator.ErrorContext*2+4, text.Length);
+ Assert.AreEqual(AlphanumericGenerator.ErrorContext*2+4, text.Length);
}
[TestMethod]
@@ -610,12 +610,12 @@ at index {1} produced
public void Can_BuildErrorSnippet_Middle()
{
var template = @"This is a long string. This is a long string. This is a long string. This is a long string. This is a long string. This is a long string. This is a long string. This is a long string. This is a long string. This is a long string. ";
- int ndx = AlphaNumericGenerator.ErrorContext + 20;
- string text = AlphaNumericGenerator.BuildErrorSnippet(template, ndx);
+ int ndx = AlphanumericGenerator.ErrorContext + 20;
+ string text = AlphanumericGenerator.BuildErrorSnippet(template, ndx);
Console.WriteLine(@"Error Snippet for '{0}'
at index {1} produced
'{2}'", template, ndx, text);
- Assert.AreEqual(AlphaNumericGenerator.ErrorContext * 4 + 4, text.Length);
+ Assert.AreEqual(AlphanumericGenerator.ErrorContext * 4 + 4, text.Length);
}
[TestMethod]
@@ -624,7 +624,7 @@ public void Can_BuildErrorSnippet1()
{
var template = @"([100-900]{40])";
int ndx = 12;
- string text = AlphaNumericGenerator.BuildErrorSnippet(template, ndx);
+ string text = AlphanumericGenerator.BuildErrorSnippet(template, ndx);
Console.WriteLine(@"Error Snippet for '{0}'
at index {1} produced
'{2}'", template, ndx, text);
@@ -637,7 +637,7 @@ public void Can_BuildErrorSnippet2()
{
var template = @"([100-900]{40])";
int ndx = 12;
- string text = AlphaNumericGenerator.BuildErrorSnippet(template, ndx);
+ string text = AlphanumericGenerator.BuildErrorSnippet(template, ndx);
Console.WriteLine(@"Error Snippet for '{0}'
at index {1} produced
'{2}'", template, ndx, text);
@@ -653,7 +653,7 @@ at index {1} produced
public void GeneratePattern_Overloads()
{
var pattern = @"\L\L\L\L\L\L-\L\L-\L\L\L\L\L";
- var text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ var text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
Assert.AreEqual(15, text.Length);
StringAssert.Matches(text, new Regex("[A-Z]{6}-[A-Z]{2}-[A-Z]{5}"));
@@ -665,7 +665,7 @@ public void GeneratePattern_Overloads2()
{
var pattern = @"\L\L\L\L\L\L-\L\L-\L\L\L\L\L";
var config = new GenerationConfig(){Seed = 300};
- var text = AlphaNumericGenerator.GenerateFromPattern(pattern, config);
+ var text = AlphanumericGenerator.GenerateFromPattern(pattern, config);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
Assert.AreEqual(15, text.Length);
Assert.AreEqual(text,"LVMPQS-IY-CXIRW");
@@ -681,7 +681,7 @@ public void GeneratePattern_Overloads3()
var namedPatterns = new NamedPatterns();
namedPatterns.Patterns.Add(new NamedPattern(){Name = "superhero", Pattern = "(Batman|Superman|Spiderman)"});
- var text = AlphaNumericGenerator.GenerateFromPattern(pattern, namedPatterns);
+ var text = AlphanumericGenerator.GenerateFromPattern(pattern, namedPatterns);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
StringAssert.Matches(text, new Regex("^(Batman|Superman|Spiderman)$"));
}
@@ -696,7 +696,7 @@ public void GeneratePattern_Overloads4()
namedPatterns.Patterns.Add(new NamedPattern() { Name = "superhero", Pattern = "(Batman|Superman|Spiderman)" });
var config = new GenerationConfig() {Seed = 300};
- var text = AlphaNumericGenerator.GenerateFromPattern(pattern, namedPatterns,config);
+ var text = AlphanumericGenerator.GenerateFromPattern(pattern, namedPatterns,config);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
StringAssert.Matches(text, new Regex("^(Batman|Superman|Spiderman)$"));
}
@@ -709,7 +709,7 @@ public void GeneratePattern_Overloads5()
var random = new Random(1);
- var text = AlphaNumericGenerator.GenerateFromPattern(pattern, random);
+ var text = AlphanumericGenerator.GenerateFromPattern(pattern, random);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
StringAssert.Matches(text, new Regex("^[A-Z]{2}$"));
Assert.AreEqual("CU", text);
@@ -726,7 +726,7 @@ public void GeneratePattern_Overloads6()
var config = new GenerationConfig() {Seed = 300};
- var text = AlphaNumericGenerator.GenerateFromPattern(pattern, namedPatterns, config);
+ var text = AlphanumericGenerator.GenerateFromPattern(pattern, namedPatterns, config);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
StringAssert.Matches(text, new Regex("^(Batman|Superman|Spiderman)$"));
Assert.AreEqual("Superman", text);
@@ -739,32 +739,32 @@ public void Can_Generate_AlphaNumeric_multiple()
{
var pattern = @"\L\L\L\L\L\L-\L\L-\L\L\L\L\L";
- var text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ var text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
Assert.AreEqual(15, text.Length);
StringAssert.Matches(text, new Regex("[A-Z]{6}-[A-Z]{2}-[A-Z]{5}"));
pattern = @"\l\l\l\l\l\l";
- text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
Assert.AreEqual(6, text.Length);
StringAssert.Matches(text, new Regex("[a-z]*"));
pattern = @"\d\d\d\d\d\d\L\L\L\L\l\l\l\l";
- text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
Assert.AreEqual(14, text.Length);
StringAssert.Matches(text, new Regex("[0-9]{6}[A-Z]{4}[a-z]{4}"));
pattern = @"\d\d\d-\d\d-\d\d\d\d";
- text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
Assert.AreEqual(11, text.Length);
StringAssert.Matches(text, new Regex(@"[\d]{3}-[\d]{2}-[\d]{4}"));
//Test for escaped characters.
pattern = @"L\LLLLL";
- text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
Assert.AreEqual(6, text.Length);
StringAssert.Matches(text, new Regex("L[A-Z]{1}LLLL"));
@@ -776,7 +776,7 @@ public void Can_Generate_AlphaNumeric()
{
var pattern = @"\L\l\V\v\C\c\d\d";
- string text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ string text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
StringAssert.Matches(text, new Regex(@"[A-Z]{1}[a-z]{1}[AEIOU]{1}[aeiou]{1}[QWRTYPSDFGHJKLZXCVBNM]{1}[qwrtypsdfghjklzxcvbnm]{1}[\d]{1}[\d]{1}"));
@@ -787,32 +787,32 @@ public void Can_Generate_AlphaNumeric()
public void Can_Generate_Simple_Patterns()
{
var pattern = @"\L\L\L\L\L\L-\L\L-\L\L\L\L\L";
- string text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ string text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
Assert.AreEqual(15, text.Length);
StringAssert.Matches(text, new Regex("[A-Z]{6}-[A-Z]{2}-[A-Z]{5}"));
pattern = @"\l\l\l\l\l\l";
- text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
Assert.AreEqual(6, text.Length);
StringAssert.Matches(text, new Regex("[a-z]*"));
pattern = @"\d\d\d\d\d\d\L\L\L\L\l\l\l\l";
- text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
Assert.AreEqual(14, text.Length);
StringAssert.Matches(text, new Regex("[0-9]{6}[A-Z]{4}[a-z]{4}"));
pattern = @"[1-9]\d\d-\d\d-\d\d\d\d";
- text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
Assert.AreEqual(11, text.Length);
StringAssert.Matches(text, new Regex(@"[1-9]\d{2}-\d{2}-\d{4}"));
//Test for escaped characters.
pattern = @"L\LLLLL";
- text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
Assert.AreEqual(6, text.Length);
StringAssert.Matches(text, new Regex("L[A-Z]{1}LLLL"));
@@ -824,7 +824,7 @@ public void Can_Generate_Simple_Patterns()
public void Can_Generate_Repeat_Character()
{
var pattern = @"w{3}";
- var text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ var text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
StringAssert.Matches(text, new Regex(@"w{3}"));
@@ -835,7 +835,7 @@ public void Can_Generate_Repeat_Character()
public void Can_Generate_Repeat_Character_Inside_Group()
{
var pattern = @"(\dC{3}\d{3}){3}";
- var text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ var text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
StringAssert.Matches(text, new Regex(@"^(\dC{3}\d{3}){3}$"));
}
@@ -845,7 +845,7 @@ public void Can_Generate_Repeat_Character_Inside_Group()
public void Can_Generate_Repeat_Character_Inside_Group2()
{
var pattern = @"(\d(C){3}){3}";
- var text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ var text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
StringAssert.Matches(text, new Regex(@"^(\d(C){3}){3}$"));
}
@@ -855,7 +855,7 @@ public void Can_Generate_Repeat_Character_Inside_Group2()
public void Can_Generate_Repeat_Character_Inside_Group3()
{
var pattern = @"(\d(C){3})";
- var text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ var text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
StringAssert.Matches(text, new Regex(@"^(\d(C){3})$"));
}
@@ -865,7 +865,7 @@ public void Can_Generate_Repeat_Character_Inside_Group3()
public void Can_Generate_Repeat_Character_Inside_Group4()
{
var pattern = @"(\d(\\)\d)";
- var text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ var text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
StringAssert.Matches(text, new Regex(@"^(\d(\\)\d$)"));
}
@@ -875,7 +875,7 @@ public void Can_Generate_Repeat_Character_Inside_Group4()
public void Can_Generate_Repeat_Symbol_Inside_Group()
{
var pattern = @"(\w{3})";
- var text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ var text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
StringAssert.Matches(text, new Regex(@"\w{3}"));
@@ -886,7 +886,7 @@ public void Can_Generate_Repeat_Symbol_Inside_Group()
public void Can_Generate_Repeat_Symbol_Inside_Group2()
{
var pattern = @"(\w(\d{2}|\v{2})\w{3})";
- var text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ var text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
StringAssert.Matches(text, new Regex(@"\w(\d{2}|[aeiou]{2})\w{3}"));
@@ -897,7 +897,7 @@ public void Can_Generate_Repeat_Symbol_Inside_Group2()
public void Can_Generate_Repeat_Pattern()
{
var pattern = @"(\L\L\d\d){3}";
- var text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ var text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
StringAssert.Matches(text, new Regex(@"[A-Z]{2}[0-9]{2}[A-Z]{2}[0-9]{2}[A-Z]{2}[0-9]{2}"));
@@ -908,7 +908,7 @@ public void Can_Generate_Repeat_Pattern()
public void Can_Generate_Repeat_Symbol()
{
var pattern = @"\L{3}";
- var text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ var text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
StringAssert.Matches(text, new Regex(@"[A-Z]{3}"));
}
@@ -918,7 +918,7 @@ public void Can_Generate_Repeat_Symbol()
public void Can_Generate_Mixed_Pattern_With_Random_Length()
{
string pattern = @"\L{10,20}";
- var text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ var text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
StringAssert.Matches(text, new Regex(@"[A-Z]{10,20}"));
@@ -929,7 +929,7 @@ public void Can_Generate_Mixed_Pattern_With_Random_Length()
public void Can_Output_NonEscaped_Symbols()
{
string pattern = @"X";
- var text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ var text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
StringAssert.Matches(text, new Regex(@"X"));
}
@@ -939,7 +939,7 @@ public void Can_Output_NonEscaped_Symbols()
public void Can_Output_Repeated_Symbols()
{
string pattern = @"\d{10}";
- var text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ var text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
StringAssert.Matches(text, new Regex(@"[\d]{10}"));
}
@@ -949,7 +949,7 @@ public void Can_Output_Repeated_Symbols()
public void Can_Output_Escaped_Slash()
{
string pattern = @"[\\]{1,10}";
- var text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ var text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
StringAssert.Matches(text, new Regex(@"[\\]{1,10}"));
}
@@ -959,7 +959,7 @@ public void Can_Output_Escaped_Slash()
public void Can_Generate_Mixed_Pattern()
{
string pattern = @"\L\L(\L\L\d\d){3}\L\L(\L){23}";
- var text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ var text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
StringAssert.Matches(text, new Regex(@"[A-Z]{2}[A-Z]{2}[0-9]{2}[A-Z]{2}[0-9]{2}[A-Z]{2}[0-9]{2}[A-Z]{2}[A-Z]{23}"));
}
@@ -969,7 +969,7 @@ public void Can_Generate_Mixed_Pattern()
public void Can_Generate_Repeat_Pattern_Long()
{
var pattern = @"(\L){1}(\d){1}(\L){2}(\d){2}(\L){4}(\d){4}(\L){8}(\d){8}(\L){16}(\d){16}(\L){32}(\d){32}(\L){64}(\d){64}(\L){128}(\d){128}(\L){256}(\d){256}(\L){512}(\d){512}(\L){1024}(\d){1024}";
- var text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ var text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
StringAssert.Matches(text, new Regex(@"[A-Z]{1}[0-9]{1}[A-Z]{2}[0-9]{2}[A-Z]{4}[0-9]{4}[A-Z]{8}[0-9]{8}[A-Z]{16}[0-9]{16}[A-Z]{32}[0-9]{32}[A-Z]{64}[0-9]{64}[A-Z]{128}[0-9]{128}[A-Z]{256}[0-9]{256}[A-Z]{512}[0-9]{512}[A-Z]{1024}[0-9]{1024}"));
Assert.AreEqual((1+2+4+8+16+32+64+128+256+512+1024)*2, text.Length);
@@ -980,7 +980,7 @@ public void Can_Generate_Repeat_Pattern_Long()
public void Can_Generate_Expressions_With_Alternates()
{
var pattern = @"(\L\L|\d\d)";
- var text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ var text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
StringAssert.Matches(text, new Regex(@"^([A-Z]{2}|[0-9]{2})$"));
}
@@ -990,7 +990,7 @@ public void Can_Generate_Expressions_With_Alternates()
public void Can_Generate_Expressions_With_Alternates2()
{
var pattern = @"(\L\L|\d\d|[AEIOU]|[100-120])";
- var text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ var text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
StringAssert.Matches(text, new Regex(@"^([A-Z]{2}|[0-9]{2}|[AEIOU]|\d\d\d)$"));
}
@@ -1000,7 +1000,7 @@ public void Can_Generate_Expressions_With_Alternates2()
public void Can_Generate_Zero_Repeats_Invalid_End()
{
var pattern = @"(\L\L\d\d)33}";
- var text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ var text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
StringAssert.Matches(text, new Regex(@"^[A-Z]{2}[0-9]{2}33}$"));
}
@@ -1010,7 +1010,7 @@ public void Can_Generate_Zero_Repeats_Invalid_End()
public void Can_Generate_Zero_Repeats()
{
var pattern = @"\L\L\d\d";
- var text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ var text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
StringAssert.Matches(text, new Regex(@"^[A-Z]{2}[0-9]{2}$"));
}
@@ -1021,7 +1021,7 @@ public void Can_Generate_Zero_Repeats()
public void Can_Generate_Complex1()
{
var pattern = @"\{'\w':('\w{3,25}'|[1-100])\}";
- var text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ var text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
StringAssert.Matches(text, new Regex(@"^\{'\w':('\w{3,25}'|\d{1,3})\}$"));
}
@@ -1036,87 +1036,87 @@ public void Can_Generate_Complex1()
public void Can_Generate_All_Symbols()
{
var pattern = @"\.";
- var text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ var text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
StringAssert.Matches(text, new Regex(@"^.$"));
pattern = @"\a";
- text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
StringAssert.Matches(text, new Regex(@"^[A-Za-z]$"));
pattern = @"\W";
- text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
StringAssert.Matches(text, new Regex(@"^\W$"));
pattern = @"\w";
- text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
StringAssert.Matches(text, new Regex(@"^\w$"));
pattern = @"\L";
- text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
StringAssert.Matches(text, new Regex(@"^[A-Z]$"));
pattern = @"\l";
- text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
StringAssert.Matches(text, new Regex(@"^[a-z]$"));
pattern = @"\V";
- text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
StringAssert.Matches(text, new Regex(@"^[AEIOU]$"));
pattern = @"\v";
- text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
StringAssert.Matches(text, new Regex(@"^[aeiou]$"));
pattern = @"\C";
- text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
StringAssert.Matches(text, new Regex(@"^[BCDFGHJKLMNPQRSTVWXYZ]$"));
pattern = @"\c";
- text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
StringAssert.Matches(text, new Regex(@"^[bcdfghjklmnpqrstvwxyz]$"));
pattern = @"\D";
- text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
StringAssert.Matches(text, new Regex(@"^\D$"));
pattern = @"\d";
- text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
StringAssert.Matches(text, new Regex(@"^\d$"));
pattern = @"\s";
- text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text.ToLiteral());
StringAssert.Matches(text, new Regex(@"^\s$"));
pattern = @"\t";
- text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text.ToLiteral());
StringAssert.Matches(text, new Regex(@"^\t$"));
pattern = @"\n";
- text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text.ToLiteral());
StringAssert.Matches(text, new Regex(@"^\n$"));
pattern = @"\r";
- text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text.ToLiteral());
StringAssert.Matches(text, new Regex(@"^\r$"));
pattern = @"\\";
- text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text.ToLiteral());
StringAssert.Matches(text, new Regex(@"^\\$"));
}
@@ -1132,7 +1132,7 @@ public void Can_Generate_NamedPatterns()
//var namedPatterns = FileReader.LoadNamedPatterns("default.tdg-patterns");
var pattern = @"<<(@name_firstname_male@)>>";
- var text = AlphaNumericGenerator.GenerateFromTemplate(pattern);
+ var text = AlphanumericGenerator.GenerateFromTemplate(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
Assert.IsTrue(text.Length>0);
@@ -1145,7 +1145,7 @@ public void Can_Generate_NamedPatterns_CompoundPattern()
//var namedPatterns = FileReader.LoadNamedPatterns("default.tdg-patterns");
var pattern = @"<<(@address_us_type1@)>>";
- var text = AlphaNumericGenerator.GenerateFromTemplate(pattern);
+ var text = AlphanumericGenerator.GenerateFromTemplate(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
Assert.IsTrue(text.Length>0);
@@ -1162,7 +1162,7 @@ public void Can_Generate_NamedPatterns_All_Defaults_Name()
foreach (var dic in namedPatterns.Patterns)
{
- var text = AlphaNumericGenerator.GenerateFromPattern("@"+dic.Name+"@");
+ var text = AlphanumericGenerator.GenerateFromPattern("@"+dic.Name+"@");
Console.WriteLine(@"'{0}' produced '{1}'", dic.Name, text);
Assert.IsTrue(text.Length > 0);
}
@@ -1183,7 +1183,7 @@ public void Can_Generate_NamedPatterns_All_Defaults_Patterns()
foreach (var dic in namedPatterns.Patterns)
{
- var text = AlphaNumericGenerator.GenerateFromPattern(dic.Pattern);
+ var text = AlphanumericGenerator.GenerateFromPattern(dic.Pattern);
Console.WriteLine(@"'{0}' produced '{1}'", dic.Name, text);
Assert.IsTrue(text.Length > 0);
}
@@ -1208,7 +1208,7 @@ public void Profile_Random_Repeat()
sw.Start();
for (var i = 0; i < testLimit; i++)
{
- var text = AlphaNumericGenerator.GenerateFromTemplate(pattern);
+ var text = AlphanumericGenerator.GenerateFromTemplate(pattern);
//Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
}
sw.Stop();
@@ -1226,7 +1226,7 @@ public void Profile_NonRandom_Repeat()
sw.Start();
for (var i = 0; i < testLimit; i++)
{
- var text = AlphaNumericGenerator.GenerateFromTemplate(pattern);
+ var text = AlphanumericGenerator.GenerateFromTemplate(pattern);
//Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
}
sw.Stop();
@@ -1244,7 +1244,7 @@ public void Profile_Large_NonRandom_Repeat()
sw.Start();
for (var i = 0; i < testLimit; i++)
{
- var text = AlphaNumericGenerator.GenerateFromTemplate(pattern);
+ var text = AlphanumericGenerator.GenerateFromTemplate(pattern);
//Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
}
sw.Stop();
@@ -1261,7 +1261,7 @@ public void Profile_Large_NonRandom_Repeat()
public void Can_Generate_Correct_Output_from_Negated_Set()
{
var pattern = @"[^0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]";
- var text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ var text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
Assert.IsTrue(Regex.IsMatch(text, "^"+pattern+"$"));
}
@@ -1271,7 +1271,7 @@ public void Can_Generate_Correct_Output_from_Negated_Set()
public void Can_Generate_Correct_Output_from_Negated_Set_Range()
{
var pattern = @"[^A-Z]";
- var text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ var text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
Assert.IsTrue(Regex.IsMatch(text, "^" + pattern + "$"));
}
@@ -1281,7 +1281,7 @@ public void Can_Generate_Correct_Output_from_Negated_Set_Range()
public void Can_Generate_Correct_Output_from_Negated_Set_Range2()
{
var pattern = @"[^3-6]";
- var text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ var text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
Assert.IsTrue(Regex.IsMatch(text, "^" + pattern + "$"));
}
@@ -1291,7 +1291,7 @@ public void Can_Generate_Correct_Output_from_Negated_Set_Range2()
public void Can_Generate_Correct_Output_from_Negated_Set_Range_Multiple()
{
var pattern = @"[^A-Za-z]";
- var text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ var text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
Assert.IsTrue(Regex.IsMatch(text, "^" + pattern + "$"));
}
@@ -1301,7 +1301,7 @@ public void Can_Generate_Correct_Output_from_Negated_Set_Range_Multiple()
public void Can_Generate_Correct_Output_from_Negated_Set_Range_Repeated()
{
var pattern = @"[^3-6]{10}";
- var text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ var text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
Assert.IsTrue(Regex.IsMatch(text, "^" + pattern + "$"));
}
@@ -1311,7 +1311,7 @@ public void Can_Generate_Correct_Output_from_Negated_Set_Range_Repeated()
public void Can_Generate_Correct_Output_from_Negated_Set_Range_Multiple_Repeated()
{
var pattern = @"[^A-Za-z]{10}";
- var text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ var text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
Assert.IsTrue(Regex.IsMatch(text, "^" + pattern + "$"));
}
@@ -1326,7 +1326,7 @@ public void Can_Generate_Correct_Output_from_Negated_Set_Range_Multiple_Repeated
public void Can_Throw_Exception_Missing_Placeholder_End()
{
var template = "This is a very basic <<(l){10}>> which can be used to create <>. The main purpose is to generate dummy <> which can be used for <>.";
- AlphaNumericGenerator.GenerateFromTemplate(template);
+ AlphanumericGenerator.GenerateFromTemplate(template);
}
[TestMethod]
@@ -1335,7 +1335,7 @@ public void Can_Throw_Exception_Missing_Placeholder_End()
public void Can_Throw_Exception_Missing_Placeholder_End_End()
{
var template = "This is a very basic <<(l){10}>> which can be used to create <> of varying <>. The main purpose is to generate dummy <> which can be used for <>";
- AlphaNumericGenerator.GenerateFromTemplate(pattern);
+ AlphanumericGenerator.GenerateFromTemplate(pattern);
}
[TestMethod]
@@ -1415,7 +1415,7 @@ public void Can_Throw_Exception_Unknown_NamedPatterns()
public void Can_Throw_Exception_Negated_Set_Range_InvalidNumeric()
{
var pattern = @"[^30-60]";
- AlphaNumericGenerator.GenerateFromPattern(pattern);
+ AlphanumericGenerator.GenerateFromPattern(pattern);
}
[TestMethod]
@@ -1424,7 +1424,7 @@ public void Can_Throw_Exception_Negated_Set_Range_InvalidNumeric()
public void Can_Throw_Exception_Negated_Set_Range_InvalidNumeric2()
{
var pattern = @"[^3-60]";
- AlphaNumericGenerator.GenerateFromPattern(pattern);
+ AlphanumericGenerator.GenerateFromPattern(pattern);
}
[TestMethod]
@@ -1433,7 +1433,7 @@ public void Can_Throw_Exception_Negated_Set_Range_InvalidNumeric2()
public void Can_Throw_Exception_Negated_Set_Range_InvalidNumeric3()
{
var pattern = @"[^3.00-6]";
- AlphaNumericGenerator.GenerateFromPattern(pattern);
+ AlphanumericGenerator.GenerateFromPattern(pattern);
}
[TestMethod]
@@ -1442,7 +1442,7 @@ public void Can_Throw_Exception_Negated_Set_Range_InvalidNumeric3()
public void Can_Throw_Exception_Invalid_Config()
{
var pattern = @"<#{ asdsd }#>";
- AlphaNumericGenerator.GenerateFromTemplate(pattern);
+ AlphanumericGenerator.GenerateFromTemplate(pattern);
}
[TestMethod]
@@ -1451,7 +1451,7 @@ public void Can_Throw_Exception_Invalid_Config()
public void Can_Throw_Exception_Invalid_Config2()
{
var pattern = @"<#";
- AlphaNumericGenerator.GenerateFromTemplate(pattern);
+ AlphanumericGenerator.GenerateFromTemplate(pattern);
}
[TestMethod]
@@ -1467,7 +1467,7 @@ public void Can_Throw_Missing_Pattern_File()
var config = new GenerationConfig() { Seed = 100 };
config.PatternFiles.Add(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "tdg-patterns", "notpresent.tdg-pattern"));
- string text = AlphaNumericGenerator.GenerateFromTemplate(template, namedPatterns, config);
+ string text = AlphanumericGenerator.GenerateFromTemplate(template, namedPatterns, config);
Console.WriteLine(@"'{0}' produced '{1}'", template, text);
StringAssert.Matches(text, new Regex(@"(Batman|Superman|Spiderman)"));
}
@@ -1486,7 +1486,7 @@ public void Can_Throw_Invalid_Pattern_File()
var config = new GenerationConfig() { Seed = 100 };
config.PatternFiles.Add(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "tdg.exe"));
- string text = AlphaNumericGenerator.GenerateFromTemplate(template, namedPatterns, config);
+ string text = AlphanumericGenerator.GenerateFromTemplate(template, namedPatterns, config);
Console.WriteLine(@"'{0}' produced '{1}'", template, text);
StringAssert.Matches(text, new Regex(@"(Batman|Superman|Spiderman)"));
}
@@ -1503,7 +1503,7 @@ public void Can_Configure_Random_Seed_From_Config()
var configStr = "<# { 'Seed':100 } #>";
var template = configStr+@"Generated <>";
- var config = AlphaNumericGenerator.GetConfiguration(template, ref ndx);
+ var config = AlphanumericGenerator.GetConfiguration(template, ref ndx);
Assert.AreEqual(100, config.Seed);
Assert.AreEqual(configStr.Length, ndx);
}
@@ -1513,10 +1513,10 @@ public void Can_Configure_Random_Seed_From_Config()
public void Can_Configure_And_Produce_Output_With_Seed()
{
var template = @"<# { 'Seed':100 } #>Generated <>";
- string text = AlphaNumericGenerator.GenerateFromTemplate(template);
+ string text = AlphanumericGenerator.GenerateFromTemplate(template);
Console.WriteLine(@"'{0}' produced '{1}'", template, text);
- Assert.AreEqual(text, "Generated LZ");
+ Assert.AreEqual("Generated LZ", text);
}
[TestMethod]
@@ -1524,10 +1524,10 @@ public void Can_Configure_And_Produce_Output_With_Seed()
public void Can_Configure_And_Produce_Output_With_Seed2()
{
var template = @"<# { 'Seed':100 } #>Generated <<\.\w\W\L\l\V\v\d\D\S\s>>";
- string text = AlphaNumericGenerator.GenerateFromTemplate(template);
+ string text = AlphanumericGenerator.GenerateFromTemplate(template);
Console.WriteLine(@"'{0}' produced '{1}'", template, text);
- Assert.AreEqual(text, @"Generated |k*XjUo6Eo");
+ Assert.AreEqual(@"Generated |k*XjUo6Eo", text);
}
[TestMethod]
@@ -1536,7 +1536,7 @@ public void Can_Catch_Config_Not_At_Beginning_Template()
{
var template = @"<# { 'Seed':100 } #>Generated <<\.\w\W\L\l\V\v\d\D\S\s>>";
int index = 1;
- var config = AlphaNumericGenerator.GetConfiguration(template, ref index);
+ var config = AlphanumericGenerator.GetConfiguration(template, ref index);
Assert.IsNull(config);
}
@@ -1572,10 +1572,10 @@ public void Can_Serialize()
[TestMethod]
[TestCategory("Pattern")]
- public void Can_Generate_Anagram()
+ public void Can_Generate_Set_Anagram()
{
var pattern = @"[ABC]{:anagram:}";
- var text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ var text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
Assert.AreEqual(3, text.Length);
Assert.IsTrue(text.Contains("A"));
@@ -1585,11 +1585,11 @@ public void Can_Generate_Anagram()
[TestMethod]
[TestCategory("Pattern")]
- public void Can_Generate_Anagram_Long()
+ public void Can_Generate_Set_Anagram_Long()
{
var input = "abcdefghijklmnopqrstuvwxyz";
var pattern = @"["+input+"]{:anagram:}";
- var text = AlphaNumericGenerator.GenerateFromPattern(pattern);
+ var text = AlphanumericGenerator.GenerateFromPattern(pattern);
Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
Assert.AreEqual(input.Length, text.Length);
foreach (var ch in input.ToCharArray())
@@ -1598,6 +1598,142 @@ public void Can_Generate_Anagram_Long()
}
}
+ [TestMethod]
+ [TestCategory("Pattern")]
+ public void Can_Generate_Section_Anagram()
+ {
+ var input = "ABC";
+ var pattern = @"("+input+"){:anagram:}";
+
+ var text = AlphanumericGenerator.GenerateFromPattern(pattern, new GenerationConfig(){Seed=100});
+ Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
+
+ Assert.AreEqual(@"ABCACBBACBCACBACAB", text.RegexReplace(@"\W", ""));
+ }
+
+ [TestMethod]
+ [TestCategory("Pattern")]
+ public void Can_Generate_Section_Anagram_Long()
+ {
+ var input = "1234567";
+ var pattern = @"(" + input + "){:anagram:}";
+
+ var text = AlphanumericGenerator.GenerateFromPattern(pattern, new GenerationConfig() { Seed = 100 });
+ Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
+ }
+
+ [TestMethod]
+ [TestCategory("Pattern")]
+ [ExpectedException(typeof(GenerationException))]
+ public void Can_Generate_Section_Anagram_Too_Long_Exception()
+ {
+ var input = "12345678";
+ var pattern = @"(" + input + "){:anagram:}";
+
+ var text = AlphanumericGenerator.GenerateFromPattern(pattern, new GenerationConfig() { Seed = 100 });
+ Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
+ }
+
+ [TestMethod]
+ [TestCategory("Pattern")]
+ public void Can_Generate_Section_Anagram_With_Suffix()
+ {
+ var input = "abc";
+ var pattern = @"(" + input + "){:anagram:, }";
+
+ var text = AlphanumericGenerator.GenerateFromPattern(pattern, new GenerationConfig() { Seed = 100 });
+ Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
+ }
+
+
+ private double CalcStandardDeviation(IEnumerable values)
+ {
+ double ret = 0;
+ var enumerable = values as int[] ?? values.ToArray();
+ if (enumerable.Count() > 0)
+ {
+ double avg = enumerable.Average();
+ double squaredDifference = enumerable.Sum(d => Math.Pow(d - avg, 2));
+ double stdVariance = squaredDifference / enumerable.Count();
+ ret = Math.Sqrt(stdVariance);
+ }
+ return ret;
+ }
+
+ [TestMethod]
+ [TestCategory("Pattern")]
+ public void Output_is_Random_Unseeded()
+ {
+ var pattern = @"\w{100000}";
+
+ var text = AlphanumericGenerator.GenerateFromPattern(pattern);
+
+
+ var data = new Dictionary();
+ foreach (var c in text.ToCharArray())
+ {
+ if (data.ContainsKey(c))
+ data[c]++;
+ else
+ data[c] = 1;
+ }
+
+ var stdev = CalcStandardDeviation(data.Values);
+ Console.WriteLine("Standard Deviation=" + stdev);
+
+ var rStdev = 1 * stdev / data.Values.Average();
+ Console.WriteLine("Relative Standard Deviation=" + rStdev);
+
+ Assert.IsTrue(rStdev < 0.05, "relative stantard deviation appears higher than expected");
+
+ var list = data.Keys.ToList();
+ list.Sort();
+
+ foreach (var item in list)
+ {
+ Console.WriteLine(item + ":" + data[item]);
+ }
+ Console.WriteLine();
+ Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
+ }
+
+ [TestMethod]
+ [TestCategory("Pattern")]
+ public void Output_is_Random_Seeded()
+ {
+ var pattern = @"\w{100000}";
+
+ var text = AlphanumericGenerator.GenerateFromPattern(pattern, new GenerationConfig() { Seed = 100 });
+
+
+ var data = new Dictionary();
+ foreach (var c in text.ToCharArray())
+ {
+ if(data.ContainsKey(c))
+ data[c]++;
+ else
+ data[c] = 1;
+ }
+
+ var stdev = CalcStandardDeviation(data.Values);
+ Console.WriteLine("Standard Deviation=" + stdev);
+
+ var rStdev = 1*stdev/data.Values.Average();
+ Console.WriteLine("Relative Standard Deviation=" + rStdev);
+
+ Assert.IsTrue(rStdev < 0.05, "relative stantard deviation appears higher than expected");
+
+ var list = data.Keys.ToList();
+ list.Sort();
+
+ foreach (var item in list)
+ {
+ Console.WriteLine(item + ":" +data[item]);
+ }
+ Console.WriteLine();
+ Console.WriteLine(@"'{0}' produced '{1}'", pattern, text);
+ }
+
#endregion
}
}
diff --git a/src/TestDataGenerator.Core.Tests/packages.config b/src/TestDataGenerator.Core.Tests/packages.config
index 48a2ba4..b3a83dd 100644
--- a/src/TestDataGenerator.Core.Tests/packages.config
+++ b/src/TestDataGenerator.Core.Tests/packages.config
@@ -1,4 +1,4 @@
-
+
\ No newline at end of file
diff --git a/src/TestDataGenerator.Core.sln b/src/TestDataGenerator.Core.sln
index cc0bbfb..d8f56a3 100644
--- a/src/TestDataGenerator.Core.sln
+++ b/src/TestDataGenerator.Core.sln
@@ -7,6 +7,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
ProjectSection(SolutionItems) = preProject
DataGenerator.vsmdi = DataGenerator.vsmdi
LocalTestRun.testrunconfig = LocalTestRun.testrunconfig
+ Performance1.psess = Performance1.psess
..\..\VERSION = ..\..\VERSION
EndProjectSection
EndProject
@@ -39,6 +40,9 @@ Global
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
+ GlobalSection(Performance) = preSolution
+ HasPerformanceSessions = true
+ EndGlobalSection
GlobalSection(TestCaseManagementSettings) = postSolution
CategoryFile = DataGenerator.vsmdi
EndGlobalSection
diff --git a/src/TestDataGenerator.Core/Exceptions/GenerationException.cs b/src/TestDataGenerator.Core/Exceptions/GenerationException.cs
index 59cc749..1456a5f 100644
--- a/src/TestDataGenerator.Core/Exceptions/GenerationException.cs
+++ b/src/TestDataGenerator.Core/Exceptions/GenerationException.cs
@@ -1,6 +1,6 @@
using System;
-namespace TestDataGenerator.Core.Exceptions
+namespace TestDataGenerator.Core
{
///
/// Used when a exception needs to be thrown by the test data generator.
diff --git a/src/TestDataGenerator.Core/FileReader.cs b/src/TestDataGenerator.Core/FileReader.cs
index c406fe7..35982b8 100644
--- a/src/TestDataGenerator.Core/FileReader.cs
+++ b/src/TestDataGenerator.Core/FileReader.cs
@@ -4,7 +4,7 @@
using System.IO;
using System.Xml;
using System.Xml.Serialization;
-using TestDataGenerator.Core.Exceptions;
+using TestDataGenerator.Core;
namespace TestDataGenerator.Core
{
diff --git a/src/TestDataGenerator.Core/Generators/AlphaNumericGenerator.cs b/src/TestDataGenerator.Core/Generators/AlphaNumericGenerator.cs
index a0d1b14..f116be7 100644
--- a/src/TestDataGenerator.Core/Generators/AlphaNumericGenerator.cs
+++ b/src/TestDataGenerator.Core/Generators/AlphaNumericGenerator.cs
@@ -1,15 +1,16 @@
using System;
+using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using Eloquent;
-using TestDataGenerator.Core.Exceptions;
+using TestDataGenerator.Core;
-namespace TestDataGenerator.Core.Generators
+namespace TestDataGenerator.Core
{
- public static class AlphaNumericGenerator
+ public static class AlphanumericGenerator
{
private const string _AllPossibleCharacters = _AllLetters + _AllNumbers + _AllNonWhitespaceNonAlphaNumericCharacters + " ";
private const string _AllLetters = _ShortHand_l + _ShortHand_L;
@@ -219,9 +220,7 @@ private static void AppendPatternsFromConfigToCollection(GenerationConfig config
}
}
}
-
-
private static GenerationConfig LoadAndRemoveConfigFromTemplate(ref string template)
{
int index = 0;
@@ -402,6 +401,14 @@ private static void AppendContentFromSectionExpression(StringBuilder sb, string
var contentOptions = GetContentOptions(characters, ref index, _Section_Start.ToString(CultureInfo.InvariantCulture), _Section_End.ToString(CultureInfo.InvariantCulture), random);
var exp = contentOptions.Content;
+
+ // Anagram handling - "(ABC){:anagram:}"
+ if (contentOptions.IsAnagram)
+ {
+ GenerateAnagramFromSection(sb, exp, contentOptions, random);
+ return;
+ }
+
if (contentOptions.ContainsAlternation) // contains alternations
{
GenerateFromAlternatedPattern(sb, namedPatterns, exp, contentOptions, random);
@@ -482,7 +489,7 @@ private static void GenerateFromAlternatedPattern(StringBuilder sb, NamedPattern
}
}
- private static void GenerateFromAnagramPattern(StringBuilder sb, string exp, ContentOptions contentOptions, Random random)
+ private static void GenerateAnagramFromSet(StringBuilder sb, string exp, ContentOptions contentOptions, Random random)
{
for (int x = 0; x < contentOptions.Repeat; x++)
{
@@ -493,6 +500,63 @@ private static void GenerateFromAnagramPattern(StringBuilder sb, string exp, Con
}
}
+ ///
+ /// Generate all possible anagram variants from the provided expression.
+ ///
+ ///
+ ///
+ ///
+ ///
+ private static void GenerateAnagramFromSection(StringBuilder sb, string exp, ContentOptions contentOptions, Random random)
+ {
+ if(exp.Length >7)
+ throw new GenerationException("Anagrams greater than 7 characters in length are not supported.");
+
+ foreach (var permutation in GetAllPermutations(exp))
+ {
+ sb.Append(contentOptions.Prefix);
+ foreach (var ch in permutation)
+ {
+ AppendCharacterDerivedFromSymbol(sb, ch, false, random);
+ }
+ sb.Append(contentOptions.Suffix);
+ }
+ }
+
+ private static IEnumerable GetAllPermutations(string exp)
+ {
+ var value = exp;
+ var maxDepth = value.Length - 1;
+ return GetAllPermutations(value.ToCharArray(), 0, maxDepth);
+ }
+
+ private static IEnumerable GetAllPermutations(char[] value, int currentDepth, int maxDepth)
+ {
+ if (currentDepth == maxDepth)
+ {
+ yield return new string(value);
+ }
+
+ for (int i = currentDepth; i <= maxDepth; i++)
+ {
+ Swap(ref value[currentDepth], ref value[i]);
+ foreach (var item in GetAllPermutations(value, currentDepth + 1, maxDepth))
+ {
+ yield return item;
+ }
+ Swap(ref value[currentDepth], ref value[i]);
+ }
+ }
+
+ private static void Swap(ref char a, ref char b)
+ {
+ if (a == b) return;
+
+ a ^= b;
+ b ^= a;
+ a ^= b;
+ }
+
private static void AppendContentFromNamedPattern(StringBuilder sb, string characters, ref int index, NamedPatterns namedPatterns, Random random)
{
var ndx = index;
@@ -523,7 +587,7 @@ private static void AppendContentFromSetExpression(StringBuilder sb, string char
if (contentOptions.IsAnagram)
{
- GenerateFromAnagramPattern(sb, contentOptions.Content, contentOptions, random);
+ GenerateAnagramFromSet(sb, contentOptions.Content, contentOptions, random);
return;
}
@@ -709,7 +773,18 @@ private static ContentOptions GetContentOptions(string characters, ref int index
// check for special functions
if (result.QuantifierContent.Contains(":"))
{
- result.IsAnagram = ContainsAnagram(result.QuantifierContent);
+ if (ContainsAnagram(result.QuantifierContent))
+ {
+ result.IsAnagram = true;
+ if (result.QuantifierContent.Contains(","))
+ {
+ var tmp = result.QuantifierContent.Replace(_Anagram, "").TrimStart();
+ if (tmp[0] == ',')
+ {
+ result.Suffix = tmp.Substring(1);
+ }
+ }
+ }
}
else
{
@@ -721,7 +796,7 @@ private static ContentOptions GetContentOptions(string characters, ref int index
private static bool ContainsAnagram(string content)
{
- return content.ToLower().Equals(_Anagram);
+ return content.ToLower().Contains(_Anagram);
}
private static string GetContent(string characters, ref int index, string openingContainerChar, string closingContainerChar)
diff --git a/src/TestDataGenerator.Core/Generators/ContentOptions.cs b/src/TestDataGenerator.Core/Generators/ContentOptions.cs
index 6387020..d3bfea0 100644
--- a/src/TestDataGenerator.Core/Generators/ContentOptions.cs
+++ b/src/TestDataGenerator.Core/Generators/ContentOptions.cs
@@ -1,4 +1,6 @@
-namespace TestDataGenerator.Core.Generators
+using System.Net.NetworkInformation;
+
+namespace TestDataGenerator.Core
{
internal class ContentOptions
{
@@ -9,6 +11,8 @@ internal class ContentOptions
public bool IsAnagram { get; set; }
public bool IsSpecialFunction { get { return IsAnagram; } }
public string QuantifierContent { get; set; }
+ public string Prefix { get; set; }
+ public string Suffix { get; set; }
public ContentOptions()
{
@@ -17,6 +21,8 @@ public ContentOptions()
Content = "";
ContainsAlternation = false;
Repeat = 1;
+ Prefix = "";
+ Suffix = "";
}
}
}
\ No newline at end of file
diff --git a/src/TestDataGenerator.Core/Generators/Utility.cs b/src/TestDataGenerator.Core/Generators/Utility.cs
index cce9b60..824d3f6 100644
--- a/src/TestDataGenerator.Core/Generators/Utility.cs
+++ b/src/TestDataGenerator.Core/Generators/Utility.cs
@@ -1,7 +1,7 @@
using System.IO;
using System.Text;
-namespace TestDataGenerator.Core.Generators
+namespace TestDataGenerator.Core
{
public static class Utility
{
diff --git a/src/TestDataGenerator.Core/Properties/AssemblyInfo.cs b/src/TestDataGenerator.Core/Properties/AssemblyInfo.cs
index 320e9fb..d8b6e5f 100644
--- a/src/TestDataGenerator.Core/Properties/AssemblyInfo.cs
+++ b/src/TestDataGenerator.Core/Properties/AssemblyInfo.cs
@@ -1,4 +1,6 @@
-using System.Reflection;
+using System;
+using System.Reflection;
+using System.Resources;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
@@ -12,6 +14,8 @@
[assembly: AssemblyCopyright("Gary Kenneally (@SecretDeveloper) [2015]")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
+[assembly: CLSCompliant(true)]
+[assembly: NeutralResourcesLanguage("en-IE")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
@@ -31,4 +35,4 @@
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("4.0.1.0")]
+[assembly: AssemblyVersion("4.0.2.0")]
diff --git a/src/TestDataGenerator.Core/TestDataGenerator.Core.csproj b/src/TestDataGenerator.Core/TestDataGenerator.Core.csproj
index efb9319..76e1e91 100644
--- a/src/TestDataGenerator.Core/TestDataGenerator.Core.csproj
+++ b/src/TestDataGenerator.Core/TestDataGenerator.Core.csproj
@@ -45,6 +45,8 @@
prompt
4
false
+ true
+ AllRules.ruleset
none
@@ -55,10 +57,16 @@
4
false
+
+ true
+
+
+ TestDataGenerator.snk
+
-
+
False
- ..\packages\Eloquent.1.0.1.1\lib\net45\Eloquent.dll
+ ..\packages\Eloquent.1.0.2.0\lib\net45\Eloquent.dll
@@ -103,6 +111,7 @@
+
diff --git a/src/TestDataGenerator.Core/TestDataGenerator.snk b/src/TestDataGenerator.Core/TestDataGenerator.snk
new file mode 100644
index 0000000..657614c
Binary files /dev/null and b/src/TestDataGenerator.Core/TestDataGenerator.snk differ
diff --git a/src/TestDataGenerator.Core/packages.config b/src/TestDataGenerator.Core/packages.config
index 48a2ba4..b3a83dd 100644
--- a/src/TestDataGenerator.Core/packages.config
+++ b/src/TestDataGenerator.Core/packages.config
@@ -1,4 +1,4 @@
-
+
\ No newline at end of file