@@ -57,7 +57,11 @@ macro_rules! compare_board_and_check_no_solution_case {
5757 }
5858 let actual = actual. unwrap( ) ;
5959 let expected_no_solution = $crate:: testing:: expectation_no_solution( & $expected) ;
60- assert_eq!( actual, expected_no_solution) ;
60+ if actual != expected_no_solution {
61+ let expected_no_solution_wall_color_changed =
62+ $crate:: testing:: expectation_no_solution_wall_color_changed( & $expected) ;
63+ assert_eq!( actual, expected_no_solution_wall_color_changed) ;
64+ }
6165 } ;
6266}
6367
@@ -174,6 +178,30 @@ pub fn expectation_no_solution(board: &Board) -> Board {
174178 }
175179}
176180
181+ pub fn expectation_no_solution_wall_color_changed ( board : & Board ) -> Board {
182+ let mut new_data = vec ! [ ] ;
183+ for item in & board. data {
184+ if item. color != "green" {
185+ new_data. push ( item. clone ( ) ) ;
186+ } else {
187+ if item. kind == ItemKind :: BoldWall {
188+ let mut new_item = item. clone ( ) ;
189+ new_item. kind = ItemKind :: Wall ;
190+ new_item. color = "#cccccc" ;
191+ new_data. push ( new_item) ;
192+ }
193+ }
194+ }
195+
196+ Board {
197+ kind : board. kind ,
198+ height : board. height ,
199+ width : board. width ,
200+ data : new_data,
201+ uniqueness : Uniqueness :: NoAnswer ,
202+ }
203+ }
204+
177205fn add_indent ( s : & str , indent : & str ) -> String {
178206 s. lines ( )
179207 . map ( |line| format ! ( "{}{}" , indent, line) )
0 commit comments