def case_assert(cls, c_x: Case, c_y: Case, color=False): # color if color: color_x = c_x.color_count() color_y = c_y.color_count() flag_color = True for color_ in range(10): if color_ == c_x.background_color: continue if color_x[color_] != color_y[color_] != 0: flag_color = False if flag_color: return True, True # simply keep y_values = c_y.repr_values() if c_x.shape == c_y.shape: for m in c_x.matter_list: if (m.values == y_values[m.x0:m.x0 + m.shape[0], m.y0:m.y0 + m.shape[1]]).min(): pass elif (c_x.background_color == y_values[m.x0:m.x0 + m.shape[0], m.y0:m.y0 + m.shape[1]]).min(): pass else: return False, False return True, False return False, False
def case_create_flag(cls, c_x: Case, c_y: Case, color=False): res_list = [] # color if color: color_y = c_y.color_count() for m in c_x.matter_list: if color_y[m.max_color()] > 0: res_list.append(True) else: res_list.append(False) return res_list # normal else: y_values = c_y.repr_values() for m in c_x.matter_list: if (m.values == y_values[m.x0:m.x0 + m.shape[0], m.y0:m.y0 + m.shape[1]]).min(): res_list.append(True) elif (c_x.background_color == y_values[m.x0:m.x0 + m.shape[0], m.y0:m.y0 + m.shape[1]]).min(): res_list.append(False) return res_list