/// <inheritdoc /> public List <string> Scan(string input) => digitSeparator.GetDigitsByLine(input) // Transform each line by... .Select( line => { // Parsing every 3x3 chunk into digits var digitsInLine = line.Select(digit => digitScanner.Parse(digit)).ToList(); // If all digits are valid, concatenate them into a string, otherwise => null return(digitsInLine.All(digit => digit != null) ? digitsInLine.Cast <char>().JoinToString() : null); }) .ToList();
public void Parse_ScansDigitCorrectly(string value, char expected) => scanner.Parse(value).Should().Be(expected);