public void TestCreateGrid() { ChristmasLightsGrid grid = new ChristmasLightsGrid(); int columns = 10; int rows = 10; grid.Columns = columns; grid.Rows = rows; grid.GenerateGridCommand.Execute(null); Assert.AreEqual(columns * rows, grid.Lights.Count, "Grid cell count do not match."); }
public void TestSetGrid() { ChristmasLightsGrid grid = new ChristmasLightsGrid(); int expectedRows = 10; int expectedColumns = 20; Assert.AreEqual(0, grid.Columns); Assert.AreEqual(0, grid.Rows); grid.Columns = expectedColumns; grid.Rows = expectedRows; Assert.AreEqual(expectedColumns, grid.Columns, "Column test failed"); Assert.AreEqual(expectedRows, grid.Rows, "Row test failed"); }
private void GenerateGrid_Click(object sender, RoutedEventArgs e) { ChristmasLightsGrid dc = (ChristmasLightsGrid)DataContext; dc.Rows = dc.Columns; dc.GenerateGridCommand.Execute(null); for (int y = 0; y < dc.Rows; y++) { LightGrid.RowDefinitions.Add(new RowDefinition { Height = new GridLength(2) }); LightGrid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(2) }); } int i = 0; Stopwatch stopwatch = Stopwatch.StartNew(); for (int x = 0; x < dc.Columns; x++) { for (int y = 0; y < dc.Rows; y++) { Border cell = new Border(); cell.SetBinding(Border.BackgroundProperty, new Binding { Path = new PropertyPath( $"Lights[{i}].Lit"), Source = dc, Converter = new BoolToBrushConverter(), UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged, IsAsync = true }); Grid.SetColumn(cell, x); Grid.SetRow(cell, y); LightGrid.Children.Add(cell); i++; } } stopwatch.Stop(); TimeSpan span = new TimeSpan(stopwatch.ElapsedTicks); Console.WriteLine($"Time taken for {dc.Columns}x{dc.Rows} grid: {span}"); }
public void TestTurnOnAllLights() { ChristmasLightsGrid grid = new ChristmasLightsGrid(); int columns = 1000; int rows = columns; List <string> instructionsList = new List <string> { "turn on 0,0 through 999,999" }; grid.Columns = columns; grid.Rows = rows; grid.Instructions = instructionsList; grid.GenerateGridCommand.Execute(null); grid.FollowInstructionsCommand.Execute(null); int actual = grid.Lights.Count(x => x.Lit); Assert.AreEqual(columns * rows, actual, $"Some lights failed to turn on. Total lights on: {actual}."); }
static void Main(string[] args) { int cols = 1000; int rows = cols; List <string> instructionList = File.ReadAllLines("input.txt").ToList(); //new List<string> //{ // "toggle 0,0 through 999,999" //}; _grid = new ChristmasLightsGrid { Columns = cols, Rows = rows, Lights = new List <ChristmasLight>() }; Part1(instructionList); Part2(instructionList); Console.Write("Press any key."); Console.ReadKey(); }
public void TestSetGridDimensions() { ChristmasLightsGrid grid = new ChristmasLightsGrid(); int columns = 10; int rows = 10; grid.Columns = columns; grid.Rows = rows; Assert.AreEqual(columns, grid.Columns, "Columns do not match"); Assert.AreEqual(rows, grid.Rows, "Rows do not match"); try { columns = -1; rows = -1; grid.Columns = columns; grid.Rows = rows; Assert.AreEqual(columns, grid.Columns); Assert.AreEqual(rows, grid.Rows); } catch (ArgumentOutOfRangeException e) { StringAssert.Contains(e.Message, ChristmasLightsGrid.ArgumentOutOfRangeMessage); } }