public SpreadsheetTests() { var parser = new Mock <Parser>(); var tokenizer = new Mock <Tokenizer>(); _spreadsheet = new MathSpreadsheet(parser.Object, tokenizer.Object); }
public IMathSpreadsheet Read() { var spreadsheet = new MathSpreadsheet(new Parser(), new Tokenizer()); System.Console.WriteLine("Load spreadsheet from file."); using (var sIn = new StreamReader(new FileStream(File, FileMode.Open))) { var(columnsCount, rowsCount) = ParseHeader(sIn.ReadLine()); spreadsheet.SetSize(columnsCount, rowsCount); for (var rowNumber = 1; rowNumber <= rowsCount; rowNumber++) { for (var columnNumber = 1; columnNumber <= columnsCount; columnNumber++) { var cellValue = sIn.ReadLine(); spreadsheet.SetValue(columnNumber, rowNumber, cellValue); } } } return(spreadsheet); }
public IMathSpreadsheet Read() { var spreadsheet = new MathSpreadsheet(new Parser(), new Tokenizer()); System.Console.WriteLine("Please provide spreadsheet size."); System.Console.Write("Columns count: "); if (!int.TryParse(System.Console.ReadLine(), out var columnsCount)) { throw new SpreadsheetFormatException("Invalid columns count."); } System.Console.Write("Rows count: "); if (!int.TryParse(System.Console.ReadLine(), out var rowsCount)) { throw new SpreadsheetFormatException("Invalid rows count"); } var showInteractiveInput = columnsCount <= ColumnsThreshold && rowsCount <= RowsThreshold; if (!showInteractiveInput) { System.Console.WriteLine($"Spreadsheet size exceed {ColumnsThreshold} x {RowsThreshold} interactive output will be hidden because spreadsheet will not feet in console."); } spreadsheet.SetSize(columnsCount, rowsCount); System.Console.WriteLine(string.Empty); var left = System.Console.CursorLeft; var top = System.Console.CursorTop; for (var rowNumber = 1; rowNumber <= rowsCount; rowNumber++) { for (var columnNumber = 1; columnNumber <= columnsCount; columnNumber++) { if (showInteractiveInput) { CleanConsole(left, top); System.Console.WriteLine(Print.PrintSpreadsheet(spreadsheet, true)); } System.Console.Write($"Please enter { CellPosition.CoordinatesToKey(columnNumber, rowNumber) }: "); var cellValue = System.Console.ReadLine(); spreadsheet.SetValue(columnNumber, rowNumber, cellValue); } } if (showInteractiveInput) { CleanConsole(left, top); System.Console.WriteLine(Print.PrintSpreadsheet(spreadsheet, true)); } return(spreadsheet); }
public SpreadsheetTests() { _spreadsheet = new MathSpreadsheet(new Parser(), new Tokenizer()); }