private static string PasswordGenerator(int minLength, int maxLength, CharGenerator charGenerator, CharGenerator vowelGenerator, CharGenerator consonantGenerator) { var length = GetRandomNumber(minLength, maxLength); var result = new StringBuilder(); for (var i = 0; i < length; i++) { switch (result.Length) { case 0: case 1: result.Append(charGenerator()); break; default: if (result[result.Length - 1].IsConsonant() && result[result.Length - 2].IsConsonant()) { result.Append(vowelGenerator()); } else if (result[result.Length - 1].IsVowel() /*&& result[result.Length - 2].IsVowel()*/) { result.Append(consonantGenerator()); } else { result.Append(charGenerator()); } break; } } return(result.ToString()); }
public static string GetRandomStringByLength(int length) { var chars = new List <char>(); for (var i = 0; i < length; i++) { chars.Add(CharGenerator.GetRandomChar()); } return(new string(chars.ToArray())); }
public void CharGenerator_Value_ProvidesMassiveOfCharsInSpecifiedRange() { int size = 1000; CharGenerator charGen = new CharGenerator('a', 'c'); char[] massive = new char[size]; for (int i = 0; i < size; i++) { massive[i] = charGen.Value(); } var usedNumbers = massive.Distinct().OrderBy(i => i).ToList(); Assert.Equal('a', usedNumbers[0]); Assert.Equal('b', usedNumbers[1]); Assert.Equal('c', usedNumbers[2]); }
public static AllGenerator Create() { var emptyCollectionFixture = new Fixture { RepeatCount = 0 }; var methodProxyCalls = new GenericMethodProxyCalls(); var fixtureConfiguration = new AutoFixtureConfiguration(); var fixture = fixtureConfiguration.CreateUnconfiguredInstance(); var collectionGenerator = new CollectionGenerator(methodProxyCalls); var valueGenerator = new ValueGenerator(fixture); var charGenerator = new CharGenerator(valueGenerator); var specificTypeObjectGenerator = new SpecificTypeObjectGenerator(valueGenerator); var emptyCollectionGenerator = new EmptyCollectionGenerator( emptyCollectionFixture, methodProxyCalls); var proxyGenerator = new ProxyGenerator(); var proxyBasedGenerator = new ProxyBasedGenerator( emptyCollectionFixture, methodProxyCalls, emptyCollectionGenerator, //TODO make separate chain for this proxyGenerator, new FakeChainFactory( new CachedReturnValueGeneration(new PerMethodCache <object>()), GlobalNestingLimit.Of(5), proxyGenerator, //TODO get rid of this dependency - its runtime-circular valueGenerator, collectionGenerator)); var stringGenerator = new StringGenerator( charGenerator, valueGenerator, specificTypeObjectGenerator); var numericGenerator = new NumericGenerator( valueGenerator); var allGenerator = new AllGenerator(valueGenerator, charGenerator, specificTypeObjectGenerator, stringGenerator, emptyCollectionGenerator, numericGenerator, proxyBasedGenerator, collectionGenerator, new InvokableGenerator()); fixtureConfiguration.ApplyTo(fixture, stringGenerator, numericGenerator); return(allGenerator); }
public GeneratePostsIterator(Session session, int seed = 0, int quantity = 100) { Session = session; Seed = seed; Quantity = quantity; Random random = Seed != 0 ? new Random(Seed) : new Random(); ThreeGen = new IntegerGenerator(random, 1, 3); SixGen = new IntegerGenerator(random, 1, 6); StrLenGen = new IntegerGenerator(random, 1, 40); UpcharGen = new CharGenerator(random, 'A', 'Z'); DowncharGen = new CharGenerator(random, 'a', 'z'); NumcharGen = new CharGenerator(random, '0', '9'); TruthGen = new BoolGenerator(random); NegNumberGen = new DoubleGenerator(random, -10000, -1); PosNumberGen = new DoubleGenerator(random, 1, 10000); YearGen = new IntegerGenerator(random, 1900, 2300); MonGen = new IntegerGenerator(random, 1, 12); DayGen = new IntegerGenerator(random, 1, 28); NextDate = TimesCommon.Current.ParseDate(GenerateDate()); NextAuxDate = TimesCommon.Current.ParseDate(GenerateDate()); }
public Faker(string dirPath) { List <Assembly> allAssemblies = new List <Assembly>(); foreach (string dll in Directory.GetFiles(dirPath, "*.dll")) { allAssemblies.Add(Assembly.LoadFile(dll)); } collectionTypeGenerator = new Dictionary <string, ICollectionGenerator>(); basicTypeGenerator = new Dictionary <Type, IGenerator>(); var doubleGenerator = new DoubleGenerator(); basicTypeGenerator.Add(doubleGenerator.GetGeneratorType(), doubleGenerator); var uintGenerator = new UIntGenerator(); basicTypeGenerator.Add(uintGenerator.GetGeneratorType(), uintGenerator); var floatGenerator = new FloatGenerator(); basicTypeGenerator.Add(floatGenerator.GetGeneratorType(), floatGenerator); var charGenerator = new CharGenerator(); basicTypeGenerator.Add(charGenerator.GetGeneratorType(), charGenerator); var stringGenerator = new StringGenerator(); basicTypeGenerator.Add(stringGenerator.GetGeneratorType(), stringGenerator); var longGenerator = new LongGenerator(); basicTypeGenerator.Add(longGenerator.GetGeneratorType(), longGenerator); var datetimeGenerator = new DateGenerator(); basicTypeGenerator.Add(datetimeGenerator.GetGeneratorType(), datetimeGenerator); foreach (var asm in allAssemblies) { Console.WriteLine(asm.FullName); var types = asm.GetTypes().Where(t => t.GetInterfaces().Where(i => i.Equals(typeof(IGenerator))).Any()); foreach (var type in types) { var plugin = asm.CreateInstance(type.FullName) as IGenerator; Type t = plugin.GetGeneratorType(); if (!basicTypeGenerator.ContainsKey(t)) { basicTypeGenerator.Add(plugin.GetGeneratorType(), plugin); } } } var listGenerator = new ListGenerator(); collectionTypeGenerator.Add(listGenerator.GetGeneratorType().Name, listGenerator); recursionList = new List <Type>(); }