def corrected_fens(self, fens: list[list[str]]) -> list[list[str]]: return Mappable(fens).replaced_with_disjoint( Mappable.indice_to_disjoint([ (self.last_color_indexed(fens, "w"), lambda i: fens[i] + [FEN.black_end()]), (self.last_color_indexed(fens, "b"), lambda i: fens[i] + [FEN.white_end()]), ]))
), ( CorrectableTrace( [ [FEN.starting(), FEN.first()], [FEN.first(), FEN.starting()], [FEN.starting(), FEN.first()], [FEN.first(), FEN.starting()], ], [[SAN.first()], [SAN.first()], [SAN.first()], [SAN.first()]], [[0, 1], [0, 1], [0, 0.5], [0, 0.5]], ), CorrectableTrace( [ [FEN.starting(), FEN.first(), FEN.white_end()], [FEN.first(), FEN.starting(), FEN.black_end()], [FEN.starting(), FEN.first(), FEN.white_end()], [FEN.first(), FEN.starting(), FEN.black_end()], ], [[SAN.first()], [SAN.first()], [SAN.first()], [SAN.first()]], [[0, 0, 1], [0, 0, 1], [0, 0.5, 0.5], [0, 0.5, 0.5]], ), ), ( CorrectableTrace( [ [FEN.starting(), FEN.first(), FEN.starting()], [FEN.first(), FEN.starting(), FEN.first()], [FEN.starting(), FEN.first(), FEN.starting()], [FEN.first(), FEN.starting(), FEN.first()], ],