public void TestBoundaryLanguages(int k) { var lengthsBoundary = Enumerable.Range(1, 10).Select(n => n * 100).ToArray(); var strategy = new RemoveBorderStrategy(); var e = new RationalNumber(k, k - 1); var detector = new RepetitionDetector(new StringBuilder(), e, false); var generator = new RandomCharGenerator(k); var charsGenerated = 0; var times = new List <long>(); var coefs = new List <double>(); var sw = Stopwatch.StartNew(); foreach (var length in lengthsBoundary) { RandomWordGenerator.Generate(detector, length, strategy, generator); charsGenerated += RandomWordGenerator.Statistics.CharsGenerated; times.Add(sw.ElapsedMilliseconds); coefs.Add(charsGenerated * 1.0 / length); } sw.Stop(); Console.WriteLine((string)"Alphabet size = {0}, e = {1}+", (object)k, (object)e); for (var i = 0; i < lengthsBoundary.Length; ++i) { Console.WriteLine("\tLength: {0}, Time: {1} ms, Conversion coeff: {2}", lengthsBoundary[i], times[i], coefs[i]); } }
private static void GenerateBoundaryUniform() { const int length = 100000; const int runsCount = 100; using (var outputStream = File.Open(string.Format("D:\\statistics\\boundary_uniform_{0}.txt", length), FileMode.Create)) using (var output = new StreamWriter(outputStream)) { output.WriteLine("k | coeff"); var removeStrategy = new RemoveBorderStrategy(); var logger = new ConsoleTextLengthLogger(length / 100); for (var k = 5; k <= 10; ++k) { Console.WriteLine("Conversion for k = {0}", k); var text = new StringBuilder(); var e = new RationalNumber(k, k - 1); var generator = new RandomCharGenerator(k); var detector = new RepetitionDetector(text, e, false); Calculate(runsCount, detector, length, removeStrategy, generator, logger, output); } } }
public static void Main(string[] args) { RandomCharGenerator Char = new RandomCharGenerator(); RandomBytesGenerator Bytes = new RandomBytesGenerator(); Char.GenerateFiles(2, 3); Bytes.GenerateFiles(2, 3); }
public void Test(int alphabet, int numerator, int denominator, bool detectEqual, Type detectorType, int length) { var generator = new RandomCharGenerator(alphabet); var detector = GetDetector(detectorType, detectEqual, new RationalNumber(numerator, denominator)); detector.Reset(); var sw = Stopwatch.StartNew(); RandomWordGenerator.Generate(detector, length, new RemoveBorderStrategy(), generator); sw.Stop(); Console.WriteLine("Length: {0}\n\tTime: {1} ms\n\tConversion coeff: {2:0.000000}", length, sw.ElapsedMilliseconds, RandomWordGenerator.Statistics.CharsGenerated * 1.0 / length); }
public void Should_Return_Minimum_Count_Of_Chars() { IRandomCharGenerator randomCharGenerator = new RandomCharGenerator(); Dictionary <char, int[]> lookupTable = new Dictionary <char, int[]>(); lookupTable.Add('a', new int[] { 0, 1, 1, 1, 1 }); lookupTable.Add('b', new int[] { 1, 0, 1, 1, 1 }); lookupTable.Add('c', new int[] { 1, 1, 0, 1, 1 }); lookupTable.Add('d', new int[] { 1, 1, 1, 0, 1 }); lookupTable.Add('e', new int[] { 1, 1, 1, 1, 0 }); Assert.AreEqual('a', randomCharGenerator.GetRandomCharFromArray(lookupTable, 0)); Assert.AreEqual('b', randomCharGenerator.GetRandomCharFromArray(lookupTable, 1)); Assert.AreEqual('c', randomCharGenerator.GetRandomCharFromArray(lookupTable, 2)); Assert.AreEqual('d', randomCharGenerator.GetRandomCharFromArray(lookupTable, 3)); Assert.AreEqual('e', randomCharGenerator.GetRandomCharFromArray(lookupTable, 4)); }
private string SaveImages(HttpPostedFileBase image, string imagesDir) { string fileName = string.Empty; try { string uniqueCode = RandomCharGenerator.RandomString(5, false); string preFileName = uniqueCode + "_"; bool isServerImagesDirExist = System.IO.Directory.Exists(imagesDir); if (!isServerImagesDirExist) { System.IO.Directory.CreateDirectory(imagesDir); } //string destinationDir = Path.Combine(imagesDir, destinatioFolderName); //bool isPathDirectoryExist = System.IO.Directory.Exists(destinationDir); //if (!isPathDirectoryExist) //{ // System.IO.Directory.CreateDirectory(destinationDir); //} fileName = preFileName + "_" + Path.GetFileName(image.FileName); //string path = Path.Combine(destinationDir, fileName); string path = Path.Combine(imagesDir, fileName); image.SaveAs(path); } catch (Exception) { throw; } return(fileName);; }