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