public void IntensiveEditingSession() { var table = PieceTable.ForArray(new int[0]); const int iterations = 10*1000; const int insertionsPerIteration = 30; const int deletionsPerIteration = 2; var random = new Randomizer(42); var totalTime = BenchmarkIterations(iterations, delegate { var insertionPoint = random.Next(table.Length); for (var i = 0; i < insertionsPerIteration; ++i) table = table.Insert(insertionPoint + i, i); var readPosition = random.Next(table.Length); table.ToArray(readPosition, Math.Min(table.Length - readPosition, insertionsPerIteration)); for (var i = 0; i < deletionsPerIteration; ++i) table = table.Delete(random.Next(table.Length), 1); }); const int totalNumberOfOperations = iterations*(insertionsPerIteration + deletionsPerIteration); ReportTotalNumberOfOperations(totalTime, totalNumberOfOperations); Assert.AreEqual(iterations*insertionsPerIteration - iterations*deletionsPerIteration, table.Length); }
public void WhenFillingTheFieldsWithValidData() { Random randomizer = new Randomizer(); WebBrowser.Current.TextField("Name").Value = "name"; WebBrowser.Current.TextField("Email").Value = randomizer.Next().ToString(CultureInfo.InvariantCulture) + "@test.com"; WebBrowser.Current.TextField("Password").Value = "abcdefghijk"; WebBrowser.Current.TextField("PasswordConfirmation").Value = "abcdefghijk"; }
public void SequentialAccessAfterManyDeletions() { const int numberOfDeletions = 100; const int numberOfCharacters = 500; const int iterations = 10 * 1000; var randomizer = new Randomizer(42); var table = PieceTable.ForString(new string(' ', 5 * 1024)); for (var i = 0; i < numberOfDeletions; ++i) table = table.Delete(randomizer.Next(table.Length), 1); Console.WriteLine("** CopyTo iteration **"); var buffer = new char[1]; var totalWithout = BenchmarkIterations(iterations, delegate { var position = randomizer.Next(table.Length - numberOfCharacters * 2) + numberOfCharacters; for (var i = 0; i < numberOfCharacters; ++i) table.CopyTo(buffer, 0, position + i, 1); for (var i = 0; i < numberOfCharacters; ++i) table.CopyTo(buffer, 0, position - i, 1); }); const int totalNumberOfOperations = iterations*numberOfCharacters; ReportTotalNumberOfOperations(totalWithout, totalNumberOfOperations); Console.WriteLine("** Point iteration **"); var totalWith = BenchmarkIterations(iterations, delegate { var position = randomizer.Next(table.Length - numberOfCharacters * 2) + numberOfCharacters; var pivot = table[position]; var current = pivot; for (var i = 0; i < numberOfCharacters; ++i) { current.GetValue(); current = current.Next; } current = pivot; for (var i = 0; i < numberOfCharacters; ++i) { current.GetValue(); current = current.Previous; } }); ReportTotalNumberOfOperations(totalWith, totalNumberOfOperations); }
public void Benchmark() { SetText(""); const int iterations = 500; const int insertionsPerIteration = 30; const int deletionsPerIteration = 2; var totalTime = 0L; var worst = 0L; var random = new Randomizer(42); for (var i = 0; i < iterations; ++i) { var watch = Stopwatch.StartNew(); var insertionPoint = random.Next(Buffer.CurrentSnapshot.Length); for (var j = 0; j < insertionsPerIteration; ++j) Buffer.Insert(insertionPoint + j, " "); var length = Buffer.CurrentSnapshot.Length; var readPosition = random.Next(length); Buffer.CurrentSnapshot.GetText(readPosition, Math.Min(length - readPosition, insertionsPerIteration)); for (var j = 0; j < deletionsPerIteration; ++j) Buffer.Delete(random.Next(Buffer.CurrentSnapshot.Length), 1); watch.Stop(); var iterationTime = watch.ElapsedMilliseconds; if (worst < iterationTime) worst = iterationTime; totalTime += iterationTime; } Console.WriteLine("Worst iteration time: {0}ms.", worst); Console.WriteLine("Average iteration time: {0}ms.", totalTime / (float)iterations); const int totalNumberOfOperations = iterations * (insertionsPerIteration + deletionsPerIteration); Console.WriteLine("{0} operations in {1}ms or {2} operations/sec.", totalNumberOfOperations, totalTime, totalNumberOfOperations / (totalTime / 1000.0)); Assert.AreEqual(iterations * insertionsPerIteration - iterations * deletionsPerIteration, Buffer.CurrentSnapshot.Length); }
public void TestRandomCrypto() { Console.WriteLine(); var bytes = new byte[512]; var serverRandom = new byte[14]; var randomizerSeed = Randomizer.RandomSeed; m_Randomizer = new Randomizer(randomizerSeed); var seed = m_Randomizer.Next(); m_Randomizer.NextBytes(serverRandom); m_Crypto.UpdateCiphers((ulong)seed, serverRandom); m_Crypto.Encrypt(bytes); Console.WriteLine("Randomizer Seed: {0}", randomizerSeed); Console.WriteLine("Seed: {0}", seed); Console.WriteLine("ServerRandom Dump"); Console.WriteLine("-----------------"); TestUtils.Print(serverRandom); Console.WriteLine(); Console.WriteLine("RandomCrypto Dump"); Console.WriteLine("-----------------"); TestUtils.Print(bytes); }
protected override int GetNext(int min, int max) { return(Randomizer.Next(min, max)); }
protected override int GetNext() { return(Randomizer.Next()); }
public void should_not_cause_channel_exception() { var countdown = new CountdownEvent(10000); var random = new Randomizer(); IBus producer = this.StartBus( "producer", cfg => cfg.Route("request"). WithDefaultCallbackEndpoint()); this.StartBus( "consumer", cfg => cfg.On<DummyRequest>("request"). ReactWith( (m, ctx) => Task.Factory.StartNew( () => { Thread.Sleep(random.Next(10)); ctx.Accept(); ctx.Reply(new DummyResponse(m.Num)); countdown.Signal(); })). RequiresAccept()); Enumerable.Range(0, 10000). ForEach(i => producer.RequestAsync<DummyRequest, DummyResponse>("request", new DummyRequest(i))); countdown.Wait(40.Seconds()). Should(). BeTrue(); }
public void OnNodeMove() { //Arrange var randomizer = new Randomizer(); var x = randomizer.Next(-100, 100); var y = randomizer.Next(-100, 100); var point = new Point(x, y); var args = new MapNodeEventArgs {NodeId = Guid.NewGuid(), Position = point}; //Act _form.OnNodeMoved(null,args); //Assert _mockPresenter.Verify(p => p.NodeMovedOnMap(args.NodeId, x, y)); }
public void OnNodeAddedToMap() { //Arrange var randomizer = new Randomizer(); var x = randomizer.Next(-100, 100); var y = randomizer.Next(-100, 100); var point = new Point(x, y); var node = new NodeModel { NodeId = Guid.NewGuid(), Name = "SomeNode" }; var args = new MapNodeEventArgs {NodeId = node.NodeId, Position = point }; //Act _form.OnNodeAddedToMap(null, args); //Assert _mockNodeList.Verify(l => l.RemoveNode(node.NodeId)); _mockPresenter.Verify(p => p.NodeAddedToMap(node.NodeId, x, y)); }
public void WhenFillingTheFieldsWithUnknownUser() { Random randomizer = new Randomizer(); WebBrowser.Current.TextField("Email").Value = randomizer.Next().ToString(CultureInfo.InvariantCulture) + "@test.com"; WebBrowser.Current.TextField("Password").Value = "abcdefghijk"; }
public void should_open_single_connection() { var random = new Randomizer(); IBus bus = this.ConfigureBus("Test", cfg => cfg.Route("some.label")); bus.Start(); Task[] tasks = Enumerable.Range(0, 20).Select( _ => { Thread.Sleep(random.Next(10)); if (random.Next(10) % 2 == 0) { return Task.Factory.StartNew(() => bus.Start()); } return Task.Factory.StartNew(bus.Stop); }).ToArray(); Task.WaitAll(tasks, 15.Seconds()).Should().BeTrue(); }