public PercolationStats(int N, int T) { var rnd = new Random(); for (int k = 0; k < T; k++) { Console.WriteLine("Iteration {0}", k); _percolation = new Percolation(N); var countOpened = 0; do { var i = rnd.Next(1, N + 1); var j = rnd.Next(1, N + 1); if (_percolation.IsOpen(i, j)) continue; _percolation.Open(i, j); countOpened++; } while (!_percolation.Percolates()); Console.WriteLine("Count opened {0}", countOpened); _mean = (_mean + (double) countOpened/(N*N)) / 2; Console.WriteLine("mean {0}", _mean); } }
public void Given_path_from_up_to_down_percolates_should_return_true() { // arrange var percolation = new Percolation(5); percolation.Open(2,3); percolation.Open(3,3); percolation.Open(4,3); percolation.Open(5,3); percolation.Open(1,3); // act var actual = percolation.Percolates(); // assert Assert.IsTrue(actual); }
public void Open_cells_without_path_from_up_to_down_should_return_false() { // arrange var percolation = new Percolation(5); percolation.Open(2, 2); percolation.Open(3, 3); percolation.Open(4, 4); percolation.Open(5, 5); percolation.Open(1, 1); // act var actual = percolation.Percolates(); // assert Assert.IsFalse(actual); }