File tree Expand file tree Collapse file tree 2 files changed +44
-4
lines changed
Expand file tree Collapse file tree 2 files changed +44
-4
lines changed Original file line number Diff line number Diff line change @@ -237,9 +237,10 @@ def brute_force(self, level=0):
237237 )
238238 _logger .error ("Error was: %s" , str (e ))
239239 _logger .error ("Resulting table was: \n %s\n " ,
240- str (new_table )
241- )
242- _logger .info ('%s solutions found at %s levels of recursion' , len (solutions ), level )
240+ str (new_table )
241+ )
242+ _logger .info ('%s solutions found at %s levels of recursion' ,
243+ len (solutions ), level )
243244 if solutions :
244245 self .copy_from (solutions [0 ])
245246 return solutions
@@ -575,6 +576,17 @@ def section(self, section):
575576 def mates (self ):
576577 return set (self .row .cells + self .column .cells + self .section .cells )
577578
579+ def display_potential_values (self ):
580+ values = [
581+ (str (digit )
582+ if (digit in self .potential_values or digit == self .value )
583+ else ' ' )
584+ for digit in Sudoku .digits ()
585+ ]
586+ return '\n ' .join ([
587+ '' .join (row ) for row in _split (values )
588+ ])
589+
578590
579591if __name__ == '__main__' :
580592 cell = Cell ()
Original file line number Diff line number Diff line change @@ -22,7 +22,7 @@ def _string_to_table(st):
2222 else :
2323 raise Exception ("wasn't sure what to do with %s" % character )
2424 _logger .info ('Setting (%s, %s) to %s based on provided table' ,
25- i , j , character )
25+ i , j , character )
2626 if value is not None :
2727 try :
2828 table .set (i , j , value )
@@ -518,6 +518,34 @@ def test_cell_clear_potential_value(self):
518518 cell .clear_potential_value (i )
519519 assert cell .potential_values == [9 ]
520520
521+ def test_display_potential_values_default (self ):
522+ cell = Cell ()
523+ result = cell .display_potential_values ()
524+ self .assertEquals ('123\n '
525+ '456\n '
526+ '789' , result )
527+ _logger .info ('\n %s\n ' , result )
528+
529+ def test_display_potential_values_partial (self ):
530+ cell = Cell ()
531+ cell .clear_potential_value (1 )
532+ cell .clear_potential_value (5 )
533+ cell .clear_potential_value (9 )
534+ result = cell .display_potential_values ()
535+ self .assertEquals (' 23\n '
536+ '4 6\n '
537+ '78 ' , result )
538+ _logger .info ('\n %s\n ' , result )
539+
540+ def test_display_potential_values_full (self ):
541+ cell = Cell ()
542+ cell .value = 5
543+ result = cell .display_potential_values ()
544+ self .assertEquals (' \n '
545+ ' 5 \n '
546+ ' ' , result )
547+ _logger .info ('\n %s\n ' , result )
548+
521549
522550class TestRow (unittest .TestCase ):
523551 def test_str (self ):
You can’t perform that action at this time.
0 commit comments