Exemple #1
0
    def check_object_count(self, row1, row2, row3):
        row1_count_diff = ImageHelper.check_row_count(row1[0], row1[1], row1[2])
        row2_count_diff = ImageHelper.check_row_count(row2[0], row2[1], row2[2])
        if row1_count_diff == row2_count_diff and row1_count_diff != -1:
            possible_options = {}
            for index, (option, optionImage, binary_image) in \
                    self.options.iteritems():
                row3_count_diff = ImageHelper.check_row_count(row3[0], row3[1], binary_image)
                if row3_count_diff == row1_count_diff:
                    possible_options[index] = ImageHelper.get_pixel_count(binary_image)

            if len(possible_options) == 1:
                return possible_options[0]
            elif len(possible_options) > 1:
                row3_pixel_count = ImageHelper.get_pixel_count(row3[0])
                best_pixel_count_score = None
                best_pixel_count_index = -1
                for index, pixel_count in possible_options.iteritems():
                    difference = abs(pixel_count - row3_pixel_count)
                    similarity = 1 - (float(difference) / row3_pixel_count)
                    if not best_pixel_count_score or similarity > best_pixel_count_score:
                        best_pixel_count_score = similarity
                        best_pixel_count_index = index
                if best_pixel_count_score >= ImageHelper.LOW_SIMILARITY_THRESHOLD:
                    return int(best_pixel_count_index)
        return -1
Exemple #2
0
    def check_object_count(self, row1, row2, row3):
        row1_count_diff = ImageHelper.check_row_count(row1[0], row1[1],
                                                      row1[2])
        row2_count_diff = ImageHelper.check_row_count(row2[0], row2[1],
                                                      row2[2])
        if row1_count_diff == row2_count_diff and row1_count_diff != -1:
            possible_options = {}
            for index, (option, optionImage, binary_image) in \
                    self.options.iteritems():
                row3_count_diff = ImageHelper.check_row_count(
                    row3[0], row3[1], binary_image)
                if row3_count_diff == row1_count_diff:
                    possible_options[index] = ImageHelper.get_pixel_count(
                        binary_image)

            if len(possible_options) == 1:
                return possible_options[0]
            elif len(possible_options) > 1:
                row3_pixel_count = ImageHelper.get_pixel_count(row3[0])
                best_pixel_count_score = None
                best_pixel_count_index = -1
                for index, pixel_count in possible_options.iteritems():
                    difference = abs(pixel_count - row3_pixel_count)
                    similarity = 1 - (float(difference) / row3_pixel_count)
                    if not best_pixel_count_score or similarity > best_pixel_count_score:
                        best_pixel_count_score = similarity
                        best_pixel_count_index = index
                if best_pixel_count_score >= ImageHelper.LOW_SIMILARITY_THRESHOLD:
                    return int(best_pixel_count_index)
        return -1
Exemple #3
0
 def check_top_bottom(self, row1, row2, row3):
     if ImageHelper.check_top_bottom_row(row1[0], row1[1], row1[2]) and ImageHelper.check_top_bottom_row(row2[0], row2[1], row2[2]):
         best_top_bottom_score = None
         best_top_bottom_index = -1
         top_bottom_matrix = ImageHelper.get_top_bottom(row3[0], row3[1])
         for index, (option, optionImage, binary_image) in \
                 self.options.iteritems():
             option_score = ImageHelper.get_similarity_ratio(binary_image, top_bottom_matrix)
             if not best_top_bottom_score or option_score > best_top_bottom_score:
                 best_top_bottom_score = option_score
                 best_top_bottom_index = index
         if best_top_bottom_score >= ImageHelper.LOW_SIMILARITY_THRESHOLD:
             return int(best_top_bottom_index)
     return -1
Exemple #4
0
 def check_increasing_black_pixels_rxc(self, image1, image2, image3, image4):
     if (ImageHelper.verify_increasing_black_pixels(image1, image2) and
             ImageHelper.verify_increasing_black_pixels(image3, image4)):
         options = []
         black_pixel_sum2 = numpy.sum(image2)
         black_pixel_sum4 = numpy.sum(image4)
         for index, (option, optionImage, binary_image) in \
                 self.options.iteritems():
             black_pixel_sum = numpy.sum(binary_image)
             if black_pixel_sum < black_pixel_sum2 and \
                     black_pixel_sum < black_pixel_sum4:
                 options.append(index)
         if len(options) == 1:
             return int(options[0])
     return -1
Exemple #5
0
 def check_row_or(self, row1, row2, row3):
     if ImageHelper.check_or(row1[0], row1[1], row1[2]) or ImageHelper.check_or(row2[0], row2[1], row2[2]):
         # Find best option for row3
         best_or_score = None
         best_or_index = -1
         or_matrix = ImageHelper.get_or(row3[0], row3[1])
         for index, (option, optionImage, binary_image) in \
                 self.options.iteritems():
             option_score = ImageHelper.get_similarity_ratio(binary_image, or_matrix)
             if not best_or_score or option_score > best_or_score:
                 best_or_score = option_score
                 best_or_index = index
         if best_or_score >= ImageHelper.LOW_SIMILARITY_THRESHOLD:
             return int(best_or_index)
     return -1
Exemple #6
0
 def check_pixel_ratio3x3_diag(self, image1, image2):
     pixel_ratio12 = ImageHelper.get_pixel_ratio(image1, image2)
     best_pixel_score_diff = None
     best_pixel_index = -1
     for index, (option, optionImage, binary_image) in \
             self.options.iteritems():
         pixel_ratio_diag = ImageHelper.get_pixel_ratio(image2, binary_image)
         pixel_ratio_similarity = \
             float(min(pixel_ratio_diag, pixel_ratio12)) / \
             max(pixel_ratio12, pixel_ratio_diag)
         # Pixel ratio should be as close to 1 as possible
         if not best_pixel_score_diff or pixel_ratio_similarity > best_pixel_score_diff:
             best_pixel_score_diff = pixel_ratio_similarity
             best_pixel_index = index
     return int(best_pixel_index)
Exemple #7
0
 def check_pixel_ratio3x3_diag(self, image1, image2):
     pixel_ratio12 = ImageHelper.get_pixel_ratio(image1, image2)
     best_pixel_score_diff = None
     best_pixel_index = -1
     for index, (option, optionImage, binary_image) in \
             self.options.iteritems():
         pixel_ratio_diag = ImageHelper.get_pixel_ratio(
             image2, binary_image)
         pixel_ratio_similarity = \
             float(min(pixel_ratio_diag, pixel_ratio12)) / \
             max(pixel_ratio12, pixel_ratio_diag)
         # Pixel ratio should be as close to 1 as possible
         if not best_pixel_score_diff or pixel_ratio_similarity > best_pixel_score_diff:
             best_pixel_score_diff = pixel_ratio_similarity
             best_pixel_index = index
     return int(best_pixel_index)
Exemple #8
0
def get_trasi_score(image):
    img_bytes = ImgHelper.img_to_bytearray(image)
    response = send_img_bytearray(img_bytes)
    if (response.status_code == 200):
        return response_scores_toJSON(response)
    else:
        print('Error - HTTPStatusCode', response.status_code)
Exemple #9
0
 def check_increasing_black_pixels_rxc(self, image1, image2, image3,
                                       image4):
     if (ImageHelper.verify_increasing_black_pixels(image1, image2) and
             ImageHelper.verify_increasing_black_pixels(image3, image4)):
         options = []
         black_pixel_sum2 = numpy.sum(image2)
         black_pixel_sum4 = numpy.sum(image4)
         for index, (option, optionImage, binary_image) in \
                 self.options.iteritems():
             black_pixel_sum = numpy.sum(binary_image)
             if black_pixel_sum < black_pixel_sum2 and \
                     black_pixel_sum < black_pixel_sum4:
                 options.append(index)
         if len(options) == 1:
             return int(options[0])
     return -1
Exemple #10
0
    def __init__(self, parent): 
        UIWndBase.__init__(self, GameData.BATTLEGROUND_AREA, parent)
        self.surface = GameData.TOPSCREEN_SURF    #直接画到屏幕surface, 不经过顶级窗口(优化)
        self.entire_surface = self.surface        #游戏世界全局surface. 设置战场后更新为地图大小
        self.viewport = GameData.BATTLEGROUND_AREA  #视口Rect
        self.viewport_speed = 20          #滚屏速度(每帧象素)
        self.screen_moving = 'x'          #滚屏状态.      

        #必须在外部调用set_battle完成初始化
        self.battle = None                #战场对象.类型Battle
        self.map = None                    #地图对象
        self.entire_surface = None

        #mouse status
        self.ms_leftdown = False
        self.selected_rect = None           #框选的矩形
        self.selecting_loc = False         #鼠标正在选择建造地点
        self.active_selected = None
        self.building_mask = None          #建筑选择地点时的mask
        self.mask_size  =  (0,0)
        self.mask_conflict = False       #建筑与其他单位相交

        #环境对象
        imgs = ImageHelper.load_imagelist('gather_flag.png')
        self.sp_gatherpoint = EnvironObject(imgs)
        self.envir_objects = EnvObjectGroup()
        self.envir_objects.add(self.sp_gatherpoint)
        self.gather_point = (0,0)
        self.show_gather_point = False
Exemple #11
0
 def check_pixel_difference(self, row1, row2, row3):
     if ImageHelper.check_pixel_difference(row1[0], row1[1], row1[2]) and ImageHelper.check_pixel_difference(row2[0], row2[1], row2[2]):
         best_pixel_diff_score = None
         best_pixel_diff_index = -1
         pixel_diff = ImageHelper.get_pixel_difference(row3[0], row3[1])
         for index, (option, optionImage, binary_image) in \
                 self.options.iteritems():
             option_pixels = (binary_image.shape[0] * binary_image.shape[1]) - numpy.sum(binary_image)
             smaller, bigger = (pixel_diff, option_pixels) if option_pixels > pixel_diff else (option_pixels, pixel_diff)
             option_score = 1 - (float(bigger - smaller) / bigger)
             if not best_pixel_diff_score or option_score >= best_pixel_diff_score:
                 best_pixel_diff_score = option_score
                 best_pixel_diff_index = index
         if best_pixel_diff_score >= ImageHelper.LOW_SIMILARITY_THRESHOLD:
             return int(best_pixel_diff_index)
     return -1
Exemple #12
0
 def test_05_MyPersonalPage(self):
     time.sleep(5)
     driver.press_keycode(4)
     driver.find_elements_by_id("com.A17zuoye.mobile.homework:id/primary_rel")[3].click()
     time.sleep(5)
     driver.get_screenshot_as_file(
         os.path.join('.', 'student_Screenshot', sys._getframe().f_code.co_name[:7] + '.png'))
     res = ImageHelper.getOverDraw('.\\student_Screenshot\\' + sys._getframe().f_code.co_name[:7] + '.png')
Exemple #13
0
 def check_xor(self, row1, row2, row3):
     if ImageHelper.check_xor(row1[0], row1[1],
                              row1[2]) and ImageHelper.check_xor(
                                  row2[0], row2[1], row2[2]):
         best_xor_score = None
         best_xor_index = -1
         xor_matrix = ImageHelper.get_xor(row3[0], row3[1])
         for index, (option, optionImage, binary_image) in \
                 self.options.iteritems():
             option_score = ImageHelper.get_similarity_ratio(
                 binary_image, xor_matrix)
             if not best_xor_score or option_score > best_xor_score:
                 best_xor_score = option_score
                 best_xor_index = index
         if best_xor_score >= ImageHelper.LOW_SIMILARITY_THRESHOLD:
             return int(best_xor_index)
     return -1
Exemple #14
0
def create_image_with_color_prop(width=64,
                                 height=64,
                                 prop_red=33,
                                 prop_green=34,
                                 prop_blue=33):
    return ImgHelper.create_img_from_bytearray(
        create_bytearray_with_color_prop(width, height, prop_red, prop_green,
                                         prop_blue), 'RGBA')
Exemple #15
0
 def store_inputs(self, problem):
     for name, figure in problem.figures.iteritems():
         figure_image = Image.open(figure.visualFilename).convert("L")
         binary_image = ImageHelper.get_binary_image(figure_image)
         if name.isdigit():
             self.options[name] = (figure, figure_image, binary_image)
         else:
             self.input_figures[name] = (figure, figure_image, binary_image)
Exemple #16
0
 def store_inputs(self, problem):
     for name, figure in problem.figures.iteritems():
         figure_image = Image.open(figure.visualFilename).convert("L")
         binary_image = ImageHelper.get_binary_image(figure_image)
         if name.isdigit():
             self.options[name] = (figure, figure_image, binary_image)
         else:
             self.input_figures[name] = (figure, figure_image, binary_image)
Exemple #17
0
    def check_3_way_xor(self, row1, row2, row3):
        row1_result = ImageHelper.get_3_way_xor(row1)
        row2_result = ImageHelper.get_3_way_xor(row2)

        if ImageHelper.get_similarity_ratio(row1_result, row2_result) > ImageHelper.HIGH_SIMILARITY_THRESHOLD:
            best_3_way_xor_score = None
            best_3_way_xor_index = -1
            for index, (option, optionImage, binary_image) in \
                    self.options.iteritems():
                row3_result = ImageHelper.get_3_way_xor(row3 + [binary_image])
                option_score = ImageHelper.get_similarity_ratio(row3_result, row2_result)
                if not best_3_way_xor_score or option_score > best_3_way_xor_score:
                    best_3_way_xor_score = option_score
                    best_3_way_xor_index = index
            if best_3_way_xor_score >= ImageHelper.LOW_SIMILARITY_THRESHOLD:
                return int(best_3_way_xor_index)
        return -1
Exemple #18
0
 def test_04_InfoCenter(self):
     time.sleep(20)
     driver.press_keycode(4)
     driver.find_element_by_id("com.A17zuoye.mobile.homework:id/primary_student_message_btn").click()
     time.sleep(5)
     driver.get_screenshot_as_file(
         os.path.join('.', 'student_Screenshot', sys._getframe().f_code.co_name[:7] + '.png'))
     res = ImageHelper.getOverDraw('.\\student_Screenshot\\' + sys._getframe().f_code.co_name[:7] + '.png')
     assert res <= TolerableValue, 'Maybe OverDraw,Please check the options with OverDraw Value:' + str(res)
 def test_01_FirstPage(self):
     driver.implicitly_wait(20)
     driver.get_screenshot_as_file(
         os.path.join('.', 'parent_Screenshot',
                      sys._getframe().f_code.co_name[:7] + '.png'))
     res = ImageHelper.getOverDraw('.\\parent_Screenshot\\' +
                                   sys._getframe().f_code.co_name[:7] +
                                   '.png')
     assert res <= TolerableValue, 'Maybe OverDraw,Please check the options with OverDraw Value:' + str(
         res)
Exemple #20
0
 def check_translation(self, image1, image2, image3, image4, image5):
     axis1 = ImageHelper.get_translation_axis(image1, image2)
     axis2 = ImageHelper.get_translation_axis(image3, image4)
     if axis1 and axis1 == axis2:
         best_translation_score = None
         best_translation_index = -1
         for index, (option, optionImage, binary_image) in \
                 self.options.iteritems():
             translated_option = ImageHelper.get_translation(binary_image,
                                                             axis1)
             translated_score = ImageHelper.get_similarity_ratio(
                 image5, translated_option)
             if not best_translation_score or translated_score > \
                     best_translation_score:
                 best_translation_score = translated_score
                 best_translation_index = index
         if best_translation_score >= ImageHelper.TRANSLATION_THRESHOLD:
             return int(best_translation_index)
     return -1
Exemple #21
0
 def check_translation(self, image1, image2, image3, image4, image5):
     axis1 = ImageHelper.get_translation_axis(image1, image2)
     axis2 = ImageHelper.get_translation_axis(image3, image4)
     if axis1 and axis1 == axis2:
         best_translation_score = None
         best_translation_index = -1
         for index, (option, optionImage, binary_image) in \
                 self.options.iteritems():
             translated_option = ImageHelper.get_translation(
                 binary_image, axis1)
             translated_score = ImageHelper.get_similarity_ratio(
                 image5, translated_option)
             if not best_translation_score or translated_score > \
                     best_translation_score:
                 best_translation_score = translated_score
                 best_translation_index = index
         if best_translation_score >= ImageHelper.TRANSLATION_THRESHOLD:
             return int(best_translation_index)
     return -1
Exemple #22
0
 def check_rotation(self, image1, image2, image3):
     """
     Verifies whether image1:image2 are rotations or not.
     If so, returns image in options that is a similar rotation of image3.
     Else returns -1
     """
     angle = ImageHelper.get_rotation_degrees(image1, image2)
     if angle >= 0:
         max_option_index = None
         max_option_score = 0
         for index, (option, optionImage, binary_image) in \
                 self.options.iteritems():
             option_score = ImageHelper.rotate_and_score(
                 angle, image3, binary_image)
             if not max_option_score or option_score > max_option_score:
                 max_option_index = index
                 max_option_score = option_score
         if max_option_score > ImageHelper.HIGH_SIMILARITY_THRESHOLD:
             return int(max_option_index)
     return -1
Exemple #23
0
 def test_01_WelcomePage(self):
     # 1-欢迎界面
     driver.implicitly_wait(10)
     driver.get_screenshot_as_file('.\\teacher_Screenshot\\' +
                                   sys._getframe().f_code.co_name[:7] +
                                   '.png')
     res = ImageHelper.getOverDraw('.\\teacher_Screenshot\\' +
                                   sys._getframe().f_code.co_name[:7] +
                                   '.png')
     assert res <= TolerableValue, 'Maybe OverDraw,Please check the options with OverDraw Value:' + str(
         res)
Exemple #24
0
 def check_unchanged2x2(self, image1, image2, image3):
     """
     Verifies whether image1:image2 are similar or not.
     If so, returns image in options that is most similar to image3.
     Else returns -1
     """
     if ImageHelper.get_similarity_ratio(
             image1, image2) > ImageHelper.HIGH_SIMILARITY_THRESHOLD:
         max_option_index = None
         max_option_score = 0
         for index, (option, optionImage, binary_image) in \
                 self.options.iteritems():
             option_score = ImageHelper.get_similarity_ratio(
                 image3, binary_image)
             if not max_option_score or option_score > max_option_score:
                 max_option_index = index
                 max_option_score = option_score
         if max_option_score > ImageHelper.HIGH_SIMILARITY_THRESHOLD:
             return int(max_option_index)
     return -1
Exemple #25
0
    def check_3_way_xor(self, row1, row2, row3):
        row1_result = ImageHelper.get_3_way_xor(row1)
        row2_result = ImageHelper.get_3_way_xor(row2)

        if ImageHelper.get_similarity_ratio(
                row1_result,
                row2_result) > ImageHelper.HIGH_SIMILARITY_THRESHOLD:
            best_3_way_xor_score = None
            best_3_way_xor_index = -1
            for index, (option, optionImage, binary_image) in \
                    self.options.iteritems():
                row3_result = ImageHelper.get_3_way_xor(row3 + [binary_image])
                option_score = ImageHelper.get_similarity_ratio(
                    row3_result, row2_result)
                if not best_3_way_xor_score or option_score > best_3_way_xor_score:
                    best_3_way_xor_score = option_score
                    best_3_way_xor_index = index
            if best_3_way_xor_score >= ImageHelper.LOW_SIMILARITY_THRESHOLD:
                return int(best_3_way_xor_index)
        return -1
Exemple #26
0
 def check_rotation(self, image1, image2, image3):
     """
     Verifies whether image1:image2 are rotations or not.
     If so, returns image in options that is a similar rotation of image3.
     Else returns -1
     """
     angle = ImageHelper.get_rotation_degrees(image1, image2)
     if angle >= 0:
         max_option_index = None
         max_option_score = 0
         for index, (option, optionImage, binary_image) in \
                 self.options.iteritems():
             option_score = ImageHelper.rotate_and_score(
                 angle, image3, binary_image)
             if not max_option_score or option_score > max_option_score:
                 max_option_index = index
                 max_option_score = option_score
         if max_option_score > ImageHelper.HIGH_SIMILARITY_THRESHOLD:
             return int(max_option_index)
     return -1
Exemple #27
0
 def check_pixel_ratio3x3_rxc(self, image1, image2, image3, image4):
     pixel_ratio12 = ImageHelper.get_pixel_ratio(image1, image2)
     pixel_ratio34 = ImageHelper.get_pixel_ratio(image3, image4)
     pixel_ratio_similarity = \
         float(min(pixel_ratio12, pixel_ratio34)) / max(
             pixel_ratio12, pixel_ratio34)
     if pixel_ratio_similarity > ImageHelper.PIXEL_RATIO_THRESHOLD:
         # number of pixels increase consistently
         best_pixel_score = None
         best_pixel_index = -1
         for index, (option, optionImage, binary_image) in \
                 self.options.iteritems():
             pixel_ratio5 = ImageHelper.get_pixel_ratio(image4, binary_image)
             pixel_ratio_score = float(min(pixel_ratio5, pixel_ratio12)) / \
                 max(pixel_ratio12, pixel_ratio5)
             if not best_pixel_score or pixel_ratio_score > best_pixel_score:
                 best_pixel_score = pixel_ratio_score
                 best_pixel_index = index
         if best_pixel_score > ImageHelper.PIXEL_RATIO_THRESHOLD:
             return int(best_pixel_index)
     return -1
Exemple #28
0
 def check_unchanged2x2(self, image1, image2, image3):
     """
     Verifies whether image1:image2 are similar or not.
     If so, returns image in options that is most similar to image3.
     Else returns -1
     """
     if ImageHelper.get_similarity_ratio(
             image1, image2) > ImageHelper.HIGH_SIMILARITY_THRESHOLD:
         max_option_index = None
         max_option_score = 0
         for index, (option, optionImage, binary_image) in \
                 self.options.iteritems():
             option_score = ImageHelper.get_similarity_ratio(
                 image3, binary_image
             )
             if not max_option_score or option_score > max_option_score:
                 max_option_index = index
                 max_option_score = option_score
         if max_option_score > ImageHelper.HIGH_SIMILARITY_THRESHOLD:
             return int(max_option_index)
     return -1
Exemple #29
0
 def test_04_AssignHomework(self):
     # 4-布置作业
     driver.find_element_by_id(
         "com.yiqizuoye.teacher:id/teacher_set_homework_btn").click()
     time.sleep(5)
     driver.get_screenshot_as_file('.\\teacher_Screenshot\\' +
                                   sys._getframe().f_code.co_name[:7] +
                                   '.png')
     res = ImageHelper.getOverDraw('.\\teacher_Screenshot\\' +
                                   sys._getframe().f_code.co_name[:7] +
                                   '.png')
     assert res <= TolerableValue, 'Maybe OverDraw,Please check the options with OverDraw Value:' + str(
         res)
Exemple #30
0
 def check_pixel_ratio3x3_rxc(self, image1, image2, image3, image4):
     pixel_ratio12 = ImageHelper.get_pixel_ratio(image1, image2)
     pixel_ratio34 = ImageHelper.get_pixel_ratio(image3, image4)
     pixel_ratio_similarity = \
         float(min(pixel_ratio12, pixel_ratio34)) / max(
             pixel_ratio12, pixel_ratio34)
     if pixel_ratio_similarity > ImageHelper.PIXEL_RATIO_THRESHOLD:
         # number of pixels increase consistently
         best_pixel_score = None
         best_pixel_index = -1
         for index, (option, optionImage, binary_image) in \
                 self.options.iteritems():
             pixel_ratio5 = ImageHelper.get_pixel_ratio(
                 image4, binary_image)
             pixel_ratio_score = float(min(pixel_ratio5, pixel_ratio12)) / \
                 max(pixel_ratio12, pixel_ratio5)
             if not best_pixel_score or pixel_ratio_score > best_pixel_score:
                 best_pixel_score = pixel_ratio_score
                 best_pixel_index = index
         if best_pixel_score > ImageHelper.PIXEL_RATIO_THRESHOLD:
             return int(best_pixel_index)
     return -1
Exemple #31
0
 def check_subtraction(self, image1, image2, image3):
     """
     Verifies whether image1:image2 are different by a constant difference
     or not.
     If so, returns image in options that is different from image3 by the
     same constant difference.
     Else returns -1
     """
     difference_a_b = ImageHelper.find_difference(image1, image2)
     max_subtraction_score = None
     max_subtraction_index = -1
     for index, (option, optionImage, binary_image) in \
             self.options.iteritems():
         subtraction_score = ImageHelper.get_difference_score(
             difference_a_b, image3, binary_image)
         if not max_subtraction_score or subtraction_score > \
                 max_subtraction_score:
             max_subtraction_score = subtraction_score
             max_subtraction_index = index
     if max_subtraction_score > ImageHelper.LOW_SIMILARITY_THRESHOLD:
         return int(max_subtraction_index)
     return -1
Exemple #32
0
    def test_03_LogingStudent(self):
        driver.find_element_by_id("com.A17zuoye.mobile.homework:id/main_guid_login_btn").click()

        driver.find_element_by_id("com.A17zuoye.mobile.homework:id/main_login_edit_account").click()
        driver.find_element_by_id("com.A17zuoye.mobile.homework:id/main_login_edit_account").send_keys("11030000001")
        driver.find_element_by_id("com.A17zuoye.mobile.homework:id/main_login_edit_pwd").click()
        driver.find_element_by_id("com.A17zuoye.mobile.homework:id/main_login_edit_pwd").send_keys("123")
        driver.find_element_by_id("com.A17zuoye.mobile.homework:id/main_login_btn_login").click()

        time.sleep(15)
        driver.get_screenshot_as_file(
            os.path.join('.', 'student_Screenshot', sys._getframe().f_code.co_name[:7] + '.png'))
        res = ImageHelper.getOverDraw('.\\student_Screenshot\\' + sys._getframe().f_code.co_name[:7] + '.png')
 def test_04_MyProfile(self):
     driver.find_element_by_id(
         "com.yiqizuoye.jzt:id/activity_main_bottom_tab_user_img").click()
     driver.get_screenshot_as_file('.\\parent_Screenshot\\' +
                                   sys._getframe().f_code.co_name[:7] +
                                   '.png')
     res = ImageHelper.getOverDraw('.\\parent_Screenshot\\' +
                                   sys._getframe().f_code.co_name[:7] +
                                   '.png')
     print(driver.current_activity)
     time.sleep(3)
     assert res <= TolerableValue, 'Maybe OverDraw,Please check the options with OverDraw Value:' + str(
         res)
Exemple #34
0
 def check_subtraction(self, image1, image2, image3):
     """
     Verifies whether image1:image2 are different by a constant difference
     or not.
     If so, returns image in options that is different from image3 by the
     same constant difference.
     Else returns -1
     """
     difference_a_b = ImageHelper.find_difference(image1, image2)
     max_subtraction_score = None
     max_subtraction_index = -1
     for index, (option, optionImage, binary_image) in \
             self.options.iteritems():
         subtraction_score = ImageHelper.get_difference_score(
             difference_a_b, image3, binary_image)
         if not max_subtraction_score or subtraction_score > \
                 max_subtraction_score:
             max_subtraction_score = subtraction_score
             max_subtraction_index = index
     if max_subtraction_score > ImageHelper.LOW_SIMILARITY_THRESHOLD:
         return int(max_subtraction_index)
     return -1
Exemple #35
0
 def check_pixel_difference(self, row1, row2, row3):
     if ImageHelper.check_pixel_difference(
             row1[0], row1[1],
             row1[2]) and ImageHelper.check_pixel_difference(
                 row2[0], row2[1], row2[2]):
         best_pixel_diff_score = None
         best_pixel_diff_index = -1
         pixel_diff = ImageHelper.get_pixel_difference(row3[0], row3[1])
         for index, (option, optionImage, binary_image) in \
                 self.options.iteritems():
             option_pixels = (binary_image.shape[0] * binary_image.shape[1]
                              ) - numpy.sum(binary_image)
             smaller, bigger = (
                 pixel_diff,
                 option_pixels) if option_pixels > pixel_diff else (
                     option_pixels, pixel_diff)
             option_score = 1 - (float(bigger - smaller) / bigger)
             if not best_pixel_diff_score or option_score >= best_pixel_diff_score:
                 best_pixel_diff_score = option_score
                 best_pixel_diff_index = index
         if best_pixel_diff_score >= ImageHelper.LOW_SIMILARITY_THRESHOLD:
             return int(best_pixel_diff_index)
     return -1
 def test_03_LoginPage(self):
     driver.implicitly_wait(20)
     driver.find_element_by_id(
         "com.yiqizuoye.jzt:id/login_new_user_skip").click()
     driver.implicitly_wait(10)
     driver.get_screenshot_as_file('.\\parent_Screenshot\\' +
                                   sys._getframe().f_code.co_name[:7] +
                                   '.png')
     res = ImageHelper.getOverDraw('.\\parent_Screenshot\\' +
                                   sys._getframe().f_code.co_name[:7] +
                                   '.png')
     time.sleep(3)
     assert res <= TolerableValue, 'Maybe OverDraw,Please check the options with OverDraw Value:' + str(
         res)
Exemple #37
0
 def eliminate_options_in_question(self):
     possible_options = ['1', '2', '3', '4', '5', '6', '7', '8']
     possible_inputs = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']
     for index, (option, optionImage, binary_image) in \
             self.options.iteritems():
         for letter in possible_inputs:
             if ImageHelper.get_similarity_ratio(binary_image, self.input_figures[letter][2]) > ImageHelper.HIGH_SIMILARITY_THRESHOLD:
                 possible_options.remove(index)
                 possible_inputs.remove(letter)
                 break
         #if binary_image in self.input_figures:
         #    possible_options.remove(index)
     if len(possible_options) == 1:
         return int(possible_options[0])
Exemple #38
0
 def test_02_LoginPage(self):
     # 2-登录界面
     driver.implicitly_wait(10)
     time.sleep(5)
     driver.find_element_by_id(
         "com.yiqizuoye.teacher:id/teacher_guide_btn_login").click()
     driver.get_screenshot_as_file('.\\teacher_Screenshot\\' +
                                   sys._getframe().f_code.co_name[:7] +
                                   '.png')
     res = ImageHelper.getOverDraw('.\\teacher_Screenshot\\' +
                                   sys._getframe().f_code.co_name[:7] +
                                   '.png')
     assert res <= TolerableValue, 'Maybe OverDraw,Please check the options with OverDraw Value:' + str(
         res)
Exemple #39
0
 def test_09_options(self):
     driver.find_element_by_id(
         "com.yiqizuoye.teacher:id/teacher_common_header_left_button"
     ).click()
     time.sleep(2)
     driver.find_elements_by_id(
         "com.yiqizuoye.teacher:id/grid_item_layout")[3].click()
     driver.get_screenshot_as_file('.\\teacher_Screenshot\\' +
                                   sys._getframe().f_code.co_name[:7] +
                                   '.png')
     res = ImageHelper.getOverDraw('.\\teacher_Screenshot\\' +
                                   sys._getframe().f_code.co_name[:7] +
                                   '.png')
     assert res <= TolerableValue, 'Maybe OverDraw,Please check the options with OverDraw Value:' + str(
         res)
Exemple #40
0
 def test_07_EnterMyClass(self):
     # 7-我的班级
     driver.find_element_by_id(
         "com.yiqizuoye.teacher:id/teacher_clazz_info_layout").click()
     driver.find_element_by_id(
         "com.yiqizuoye.teacher:id/tv_class_create").click()
     time.sleep(3)
     driver.get_screenshot_as_file('.\\teacher_Screenshot\\' +
                                   sys._getframe().f_code.co_name[:7] +
                                   '.png')
     res = ImageHelper.getOverDraw('.\\teacher_Screenshot\\' +
                                   sys._getframe().f_code.co_name[:7] +
                                   '.png')
     assert res <= TolerableValue, 'Maybe OverDraw,Please check the options with OverDraw Value:' + str(
         res)
Exemple #41
0
 def test_06_MyStatus(self):
     # 6-我的界面
     driver.press_keycode(4)
     driver.find_element_by_id(
         "com.yiqizuoye.teacher:id/teacher_main_activity_bottom_tab_me"
     ).click()
     time.sleep(3)
     driver.get_screenshot_as_file('.\\teacher_Screenshot\\' +
                                   sys._getframe().f_code.co_name[:7] +
                                   '.png')
     res = ImageHelper.getOverDraw('.\\teacher_Screenshot\\' +
                                   sys._getframe().f_code.co_name[:7] +
                                   '.png')
     assert res <= TolerableValue, 'Maybe OverDraw,Please check the options with OverDraw Value:' + str(
         res)
Exemple #42
0
 def eliminate_options_in_question(self):
     possible_options = ['1', '2', '3', '4', '5', '6', '7', '8']
     possible_inputs = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']
     for index, (option, optionImage, binary_image) in \
             self.options.iteritems():
         for letter in possible_inputs:
             if ImageHelper.get_similarity_ratio(
                     binary_image, self.input_figures[letter]
                 [2]) > ImageHelper.HIGH_SIMILARITY_THRESHOLD:
                 possible_options.remove(index)
                 possible_inputs.remove(letter)
                 break
         #if binary_image in self.input_figures:
         #    possible_options.remove(index)
     if len(possible_options) == 1:
         return int(possible_options[0])
Exemple #43
0
def runAlgoForYear(year):
    data_map = im_helper.extractBandForYear(dataFolderDir, year)
    m, n, k = data_map.shape
    print m, n, k
    result = np.zeros((m, n), dtype=np.int)
    for x in range(m):
        for y in range(n):
            noData = False
            for z in range(k):
                if data_map[x, y, z] < -9000:
                    noData = True
                    break
            if noData:
                result[x, y] = -1
                continue
            data_point = data_map[x][y].reshape(1, -1)
            result[x, y] = classifier.predict(data_point)
    Output.createTiff(result, 'SVM', str(year))
    return result
Exemple #44
0
 def test_03_TeacherMainPage(self):
     # 3-输入用户名和密码
     driver.find_elements_by_class_name(
         "android.widget.EditText")[0].click()
     driver.find_elements_by_class_name(
         "android.widget.EditText")[0].send_keys("10030000003")
     driver.find_elements_by_class_name(
         "android.widget.EditText")[1].click()
     driver.find_elements_by_class_name(
         "android.widget.EditText")[1].send_keys("123")
     driver.find_element_by_id(
         "com.yiqizuoye.teacher:id/teacher_login_btn_login").click()
     time.sleep(10)
     driver.get_screenshot_as_file('.\\teacher_Screenshot\\' +
                                   sys._getframe().f_code.co_name[:7] +
                                   '.png')
     res = ImageHelper.getOverDraw('.\\teacher_Screenshot\\' +
                                   sys._getframe().f_code.co_name[:7] +
                                   '.png')
     assert res <= TolerableValue, 'Maybe OverDraw,Please check the options with OverDraw Value:' + str(
         res)
Exemple #45
0
def send_ppm_image(img):
    parsedImg = ImgHelper.create_img_from_bytearray(img)
    img_bytes = ImgHelper.img_to_bytearray(parsedImg)
    response = send_img_bytearray(img_bytes)
    return response
Exemple #46
0
 def loadimages():
     Tank.images = ImageHelper.load_imagelist('mtank_1_0.png', 'mtank_1_1.png', 'mtank_1_2.png',
                                              'mtank_1_3.png', 'mtank_1_4.png', 'mtank_1_5.png',
                                              'mtank_1_6.png', 'mtank_1_7.png')
Exemple #47
0
 def load_images(panel):
     panel.images = ImageHelper.load_imagelist('icon_tfac.png', 'icon_repair.png', 'icon_sell.png')
Exemple #48
0
 def loadimages():
     HeadQuarter.images = ImageHelper.load_imagelist('head_quarter.png')
Exemple #49
0
    def solve2x2(self):

        # If A:B is unchanged, find the option that's the same as 'C'
        #print 'Checking for unchanged'
        unchanged_a_b_index = self.check_unchanged2x2(
            self.input_figures['A'][2],
            self.input_figures['B'][2],
            self.input_figures['C'][2])
        if unchanged_a_b_index > AGENT_ANSWER_THRESHOLD:
            return unchanged_a_b_index

        unchanged_a_c_index = self.check_unchanged2x2(
            self.input_figures['A'][2],
            self.input_figures['C'][2],
            self.input_figures['B'][2])
        if unchanged_a_b_index > AGENT_ANSWER_THRESHOLD:
            return unchanged_a_c_index

        #print 'Checking for reflection'
        # If A:B is a reflection, find the option that's the same reflection
        # of 'C'
        reflection_a_b_index = self.check_reflection(
            self.input_figures['A'][2],
            self.input_figures['B'][2],
            self.input_figures['C'][2]
        )
        if reflection_a_b_index > AGENT_ANSWER_THRESHOLD:
            return reflection_a_b_index

        reflection_a_c_index = self.check_reflection(
            self.input_figures['A'][2],
            self.input_figures['C'][2],
            self.input_figures['B'][2]
        )
        if reflection_a_c_index > AGENT_ANSWER_THRESHOLD:
            return reflection_a_c_index

        #print 'Checking for rotation'
        # If A:B is a rotation, find the option that's the same angle
        # rotation of 'C'
        rotation_a_b_index = self.check_rotation(
            self.input_figures['A'][2],
            self.input_figures['B'][2],
            self.input_figures['C'][2]
        )
        if rotation_a_b_index > AGENT_ANSWER_THRESHOLD:
            return rotation_a_b_index

        rotation_a_c_index = self.check_rotation(
            self.input_figures['A'][2],
            self.input_figures['C'][2],
            self.input_figures['B'][2]
        )
        if rotation_a_c_index > AGENT_ANSWER_THRESHOLD:
            return rotation_a_c_index

        #print 'Checking for subtraction'
        # Check for: if B = A - x, then D = C - x
        # Find x (x = A - B)
        subtraction_a_b_index = self.check_subtraction(
            self.input_figures['A'][2],
            self.input_figures['B'][2],
            self.input_figures['C'][2]
        )
        if subtraction_a_b_index > AGENT_ANSWER_THRESHOLD:
            return subtraction_a_b_index

        subtraction_a_c_index = self.check_subtraction(
            self.input_figures['A'][2],
            self.input_figures['C'][2],
            self.input_figures['B'][2]
        )
        if subtraction_a_c_index > AGENT_ANSWER_THRESHOLD:
            return subtraction_a_c_index

        #print 'Checking for fill:unfilled'
        # Check if A:B or A:C is filled:unfilled or vice versa
        best_ratio = None
        best_option_index = None
        best_option_image = None
        bw_ratio_ab = ImageHelper.get_black_white_ratio(
            self.input_figures['A'][1], self.input_figures['B'][1])
        bw_ratio_ac = ImageHelper.get_black_white_ratio(
            self.input_figures['A'][1], self.input_figures['C'][1])
        for index, (option, optionImage, binary_image) in \
                self.options.iteritems():
            current_ratio = ImageHelper.get_black_white_ratio(
                self.input_figures['C'][1], optionImage)
            if not best_ratio:
                best_ratio = abs(current_ratio - bw_ratio_ab)
                best_option_index = index
                best_option_image = optionImage
            if abs(current_ratio - bw_ratio_ab) < best_ratio:
                best_ratio = abs(current_ratio - bw_ratio_ab)
                best_option_index = index
                best_option_image = optionImage
            current_ratio = ImageHelper.get_black_white_ratio(
                self.input_figures['B'][1], optionImage)
            if abs(current_ratio - bw_ratio_ac) < best_ratio:
                best_ratio = abs(current_ratio - bw_ratio_ac)
                best_option_index = index
                best_option_image = optionImage

        # Do a sanity check on answer
        if best_ratio < ImageHelper.FILL_RATIO_DIFF_THRESHOLD:
            ratio_a_b = \
                ImageHelper.get_black_white_ratio(self.input_figures['C'][1],
                                                  best_option_image)
            ratio_a_c = \
                ImageHelper.get_black_white_ratio(self.input_figures['B'][1],
                                                  best_option_image)

            if abs(ratio_a_b - bw_ratio_ab) > \
                    ImageHelper.FILL_RATIO_DIFF_THRESHOLD and \
                    abs(ratio_a_c - bw_ratio_ac) > \
                    ImageHelper.FILL_RATIO_DIFF_THRESHOLD:
                return -1

            if abs(ratio_a_b - bw_ratio_ab) < \
                    ImageHelper.FILL_RATIO_DIFF_MIN_THRESHOLD or \
                    abs(ratio_a_c - bw_ratio_ac) < \
                    ImageHelper.FILL_RATIO_DIFF_MIN_THRESHOLD:
                return int(best_option_index)
            return int(best_option_index)

        return -1
 def __init__(self,dbAdapter):
     self.posthelper = PostHelper(dbAdapter)
     self.imagehelper = ImageHelper(dbAdapter)
class PostController:
    """
        to initial an instance of posthelper
        
    """
    def __init__(self,dbAdapter):
        self.posthelper = PostHelper(dbAdapter)
        self.imagehelper = ImageHelper(dbAdapter)
    """
        Get json file of all post, which the author can see
        @param aid author id
        @return None
        @return jsonstring
    """
    def getPost(self,aid):
        post_list=[]
        json_list={}


        publicPost = self.posthelper.getPublicPost(aid)
        if publicPost != None:
            post_list.extend(publicPost)

        privatePost = self.posthelper.getPrivatePost(aid)
        if privatePost != None:
            post_list.extend(privatePost)

        fofPost = self.posthelper.getFriendsFriendPost(aid)
        if fofPost != None:
            post_list.extend(fofPost)

        friendsPost = self.posthelper.getFriendsPost(aid)
        if friendsPost != None:
            post_list.extend(friendsPost)

        authorPost = self.posthelper.getAuthorPost(aid)
        if authorPost != None:
            post_list.extend(authorPost)

        myHostFriendPost = self.posthelper.getMyHostFriendPost(aid)
        if myHostFriendPost != None:
            post_list.extend(myHostFriendPost)

        selectedPost = self.posthelper.getSelectedPost(aid)
        if selectedPost != None:
            post_list.extend(selectedPost)

        for post in post_list:
            if(post is None):
                return None
            else:
                single_dic = post.tojson()
                li = self.imagehelper.getImageByPid(post.getPid());
                if len(li)>0:
                    single_dic['img'] = li[0].getPath()
                else:
                    single_dic['img'] = ''
                json_list[post.getPid()]=single_dic
        return json.dumps(json_list)

    '''
    For public API to use only
    Get local public posts
    '''
    def getLocalPublicPosts(self):

        rows = self.posthelper.getLocalPublicPosts()
        if rows != None:
            postsArray = []
            for row in rows:
                post = {}
                author = {}
                author['id'] = row[6]
                author['host'] = row[8]
                author['displayname'] = row[7]
                author['url'] = ""

                post['title'] = row[2]
                post['source'] = ""
                post['origin'] = ""
                post['description'] = ""
                post['content-type'] = row[4]
                post['content'] = row[3]
                post['guid'] = row[0]
                post['categories'] = ""
                post['pubDate'] = row[1].strftime("%Y-%m-%d %H:%M:%S")
                post['visibility'] = row[5]
                post['author'] = author
                post['comments'] = []
                
                postsArray.append(post)
            return postsArray
        return None
    '''
      get post by author id
    '''
    def getPostByAid(self,aid):
        list = self.posthelper.getPostByAid(aid)
        if list == None:
            return None
        re =[]
        for post in list:
            re.append(post.tojson())
        return json.dumps(re)
    '''
      get post by myself
    '''    
    def getMyPost(self,aid):
        post_list=[]
        json_list={}
        post_list.extend(self.posthelper.getMyPost(aid))
        for post in post_list:
            if(post is None):
                return None
            else:
                json_list[post.getPid()]=post.tojson()
        return json.dumps(json_list)