def track(self, tracking_data): logger.debug('Tracking VAC delivery for ref: {}'.format(tracking_data)) platform_meta = self.get_platform_meta() tracking_url = get_value(platform_meta, 'url') tracking_id = get_value(tracking_data, 'VT_TRACKING_ID') dob_year = get_value(tracking_data, 'USER_DOB_YEAR') # Decrement month cos values are set by indices dob_month = int(get_value(tracking_data, 'USER_DOB_MONTH')) - 1 dob_day = get_value(tracking_data, 'USER_DOB_DAY') dob = '{0}/{1}/{2}'.format(dob_year, dob_month, dob_day) self.browser.get(tracking_url) tracking_id_input = self.get_element('tracking_id_input_selector') date_input = self.get_element('date_input_selector') tracking_id_input.clear() tracking_id_input.send_keys(tracking_id) date_input.click() year_input = Select(self.get_element('year_picker_selector')) year_input.select_by_value(str(dob_year)) month_input = Select(self.get_element('month_picker_selector')) month_input.select_by_value(str(dob_month)) day_input = self.browser.find_element_by_xpath( "//a[text()='{}']".format(dob_day)) day_input.click()
def test_one_na(self): job = successes[successes["CASE_NUMBER"] == "H-300-20161-638892"] self.assertEqual(get_value(job, "HOUSING_CITY"), "Clear Lake") self.assertEqual(get_value(job, "housing accuracy"), 0.8) self.assertEqual(get_value(job, "housing accuracy type"), "range_interpolation") self.assertTrue(pd.isnull(get_value(job, "housing_fixed_by"))) self.assertEqual(get_value(job, "WORKSITE_ADDRESS"), "124 Raymond Ave") self.assertEqual(get_value(job, "WORKSITE_CITY"), "Poughkeepsie") self.assertEqual(get_value(job, "worksite accuracy"), 1) self.assertEqual(get_value(job, "worksite accuracy type"), "rooftop") self.assertEqual(get_value(job, "worksite_fixed_by"), "address") self.assertTrue(get_value(job, "fixed"))
def test_h2b_doesnt_need_housing(self): job = successes[successes["CASE_NUMBER"] == "H-400-2111"] self.assertTrue(pd.isnull(get_value(job, "HOUSING_CITY"))) self.assertTrue(pd.isnull(get_value(job, "housing accuracy"))) self.assertTrue(pd.isnull(get_value(job, "housing_fixed_by"))) self.assertEqual(get_value(job, "WORKSITE_CITY"), "Somerset County") self.assertEqual(get_value(job, "worksite accuracy"), 1) self.assertEqual(get_value(job, "worksite accuracy type"), "rooftop") self.assertEqual(get_value(job, "worksite_lat"), 3) self.assertEqual(get_value(job, "worksite_long"), 5) self.assertEqual(get_value(job, "worksite_fixed_by"), "coordinates") self.assertTrue(get_value(job, "fixed"))
def test_one_na_but_needs_fixing(self): job = failures[failures["CASE_NUMBER"] == "H-300-20214-746991"] self.assertEqual(get_value(job, "HOUSING_CITY"), "Yuma") self.assertEqual(get_value(job, "housing accuracy"), 1) self.assertEqual(get_value(job, "housing accuracy type"), "rooftop") self.assertEqual(get_value(job, "housing_fixed_by"), "coordinates") self.assertEqual(get_value(job, "WORKSITE_ADDRESS"), "A Loghry: hal-1-3, hal-1-4: County 15th Street & Avenue A (W)") self.assertEqual(get_value(job, "worksite accuracy"), 1) self.assertEqual(get_value(job, "worksite accuracy type"), "place") self.assertEqual(get_value(job, "worksite_fixed_by"), "failed") self.assertEqual(get_value(job, "fixed"), False)
def test_both_impossible(self): job = successes[successes["CASE_NUMBER"] == "H-300-20108-494660"] self.assertEqual(get_value(job, "HOUSING_CITY"), "Hollister") self.assertEqual(get_value(job, "housing accuracy"), 1) self.assertEqual(get_value(job, "housing_long"), -121.402368) self.assertEqual(get_value(job, "housing_fixed_by"), "impossible") self.assertEqual(get_value(job, "WORKSITE_ADDRESS"), "Ranch 12: 95 Mc Fadden Road") self.assertEqual(get_value(job, "worksite accuracy type"), "place") self.assertEqual(get_value(job, "worksite_long"), -121.599444) self.assertEqual(get_value(job, "worksite_fixed_by"), "impossible") self.assertTrue(get_value(job, "fixed"))
def move_is_valid(board, move, player): # Player 1 = RED = Left to right # Player 2 = BLUE = Top to bottom field_empty = get_value(board, move) == 0 inside_enemy_base = is_inside_enemy_base(move, player) return field_empty and not inside_enemy_base
def test_get_value_returns_default_when_parent_is_null(): """ Test that get_value returns the default value if parent is null """ test_value = {'foo': None} default_value = 'foobar' assert get_value(test_value, 'foo.bar', default=default_value) == default_value
def game(init_board, first_player, depth): #variable setup players = [constants.PLAYER_1, constants.PLAYER_2] board = copy.deepcopy(init_board) turn = 0 if first_player == 'c': user = 2 elif first_player == 'u': user = 1 else: # print('Incorrect player') return 1 #game loop while True: #check if current player lost this round if get_value(board, players[turn % 2]) == 0: return end_game(board, players[turn % 2], user) #its not ai's turn if players[turn % 2] is user: #make a move move = user_turn(board, players[turn % 2]) #it's ai's turn else: #timer t1 = time.perf_counter() print("Computer move, please wait...") #if alpha-beta pruning is enabled if constants.ALPHABETA: value, move = alphabeta(board, depth, players[turn%2], float('-inf'), float('inf')) else: value, move = minmax(board, depth, players[turn%2]) #timer t2 = time.perf_counter() #copy players move board = move board.printArrayWithCord() turn += 1
def test_used_right_data(self): dup_job = all_accs1[all_accs1["CASE_NUMBER"] == "H-300-20125-538913"] # testing columns from dol self.assertEqual(get_value(dup_job, "EMPLOYER_NAME"), "Pieper Farms, LLC") self.assertEqual(get_value(dup_job, "JOB_TITLE"), "Potato Farm Worker") self.assertEqual(get_value(dup_job, "housing_lat"), 48.866801) self.assertEqual(get_value(dup_job, "Source"), "DOL") self.assertEqual(get_value(dup_job, "WORKSITE_CITY"), "Williams") self.assertEqual(get_value(dup_job, "WORKSITE_POSTAL_CODE"), "42743") # testing columns from scraper self.assertEqual(get_value(dup_job, "Number of Pages"), 15) # making sure it worked on other duplicate job self.assertEqual(get_value(all_accs1[all_accs1["CASE_NUMBER"] == "H-300-20119-524313"], "WORKSITE_CITY"), "Riceville")
def track(self, tracking_id): logger.debug('Tracking DHL delivery for ref: {}'.format(tracking_id)) platform_meta = self.get_platform_meta() tracking_url = get_value(platform_meta, 'url') self.browser.get(tracking_url) text_input = self.get_element('text_input_selector') submit_button = self.get_element('submit_button_selector') text_input.clear() text_input.send_keys(tracking_id) submit_button.click()
def test_used_right_data(self): dup_job = all_inaccs7[all_inaccs7["CASE_NUMBER"] == "H-300-20114-511870"] self.assertEqual(get_value(dup_job, "EMPLOYER_NAME"), "Alstede Farms, LLC") self.assertEqual(get_value(dup_job, "JOB_TITLE"), "Farm Worker") self.assertEqual(get_value(dup_job, "worksite_long"), -74.683861) self.assertEqual(get_value(dup_job, "Source"), "DOL") self.assertEqual(get_value(dup_job, "HOUSING_CITY"), "Chester") self.assertEqual(get_value(dup_job, "W to H Ratio"), "W=H")
def test_used_right_data(self): dup_job = all_accs4[all_accs4["CASE_NUMBER"] == "H-300-20108-494660"] self.assertEqual(get_value(dup_job, "EMPLOYER_NAME"), "Bio Application LLC") self.assertEqual(get_value(dup_job, "JOB_TITLE"), "Farmworkers and Laborers, Crop") self.assertEqual(get_value(dup_job, "worksite_long"), -92.582184) self.assertEqual(get_value(dup_job, "Source"), "DOL") self.assertEqual(get_value(dup_job, "HOUSING_ADDRESS_LOCATION"), "3272 440th St") self.assertEqual(get_value(dup_job, "W to H Ratio"), "W=H")
def test_used_right_data(self): dup_job = all_inaccs5[all_inaccs5["CASE_NUMBER"] == "H-300-20121-530549"] self.assertEqual(get_value(dup_job, "EMPLOYER_NAME"), "Leach Farms, Inc. ") self.assertEqual(get_value(dup_job, "JOB_TITLE"), "Field Workers (Celery Harvest) ") self.assertEqual(get_value(dup_job, "worksite_long"), -89.027124) self.assertEqual(get_value(dup_job, "Source"), "DOL") self.assertEqual(get_value(dup_job, "HOUSING_CITY"), "Berlin") self.assertEqual(get_value(dup_job, "W to H Ratio"), "W=H")
def ai_game(init_board, first_player, depth): #variable setup players = [constants.PLAYER_1, constants.PLAYER_2] board = copy.deepcopy(init_board) if first_player == constants.PLAYER_1: turn = 0 elif first_player == constants.PLAYER_2: turn = 1 else: # print('Wrong first player') return 1 t1 = time.perf_counter() #game loop while True: #no moves left for ai this round if get_value(board, players[turn % 2]) == 0: t2 = time.perf_counter() return end_ai(board, depth, players[turn % 2], t2 - t1) move_start = time.perf_counter() #if alphabeta pruning is enabled if constants.ALPHABETA: value, move = alphabeta(board, depth, players[turn % 2], float('-inf'), float('inf')) else: value, move = minmax(board, depth, players[turn % 2]) move_end = time.perf_counter() #copy move to board board = move if constants.LOG_MOVE_TIME: print('Ai {} took {} to move' .format(players[turn % 2], move_end - move_start)) #next ai's turn turn += 1
def test_get_value_returns_deep_path_by_reference_from_list(): """ Test that get_value returns deep path value by reference from list """ test_value = {'foo': {'bar': [True, False]}} assert get_value(test_value, ['foo', 'bar']) is test_value['foo']['bar']
def test_get_value_returns_deep_path_value_by_reference(): """ Test that get_value returns deep path value by reference """ test_value = {'foo': {'bar': [True, False]}} assert get_value(test_value, 'foo.bar') is test_value['foo']['bar']
def test_get_value_returns_default_when_path_not_found(): """ Test that default is returned when path is not found """ assert get_value({}, 'foo', default='bar') == 'bar'
def test_get_value_returns_shallow_object_by_reference(): """ Test that get_value returns a shallow object by reference """ test_value = {'foo': {'bar': True}} assert get_value(test_value, 'foo') is test_value['foo']
def test_get_value_returns_original_value_when_no_path_provided(): """ Test that get_value returns original value when path is not provided """ assert get_value(123) == 123
def test_fixed_but_failed(self): job = failures[failures["CASE_NUMBER"] == "H-300-20150-612472"] self.assertEqual(get_value(job, "HOUSING_ADDRESS_LOCATION"), "W1026 Buttercup Court") self.assertEqual(get_value(job, "housing accuracy type"), "rooftop") self.assertEqual(get_value(job, "housing_long"), -88.932913) self.assertTrue(pd.isnull(get_value(job, "housing_fixed_by"))) self.assertEqual(get_value(job, "WORKSITE_ADDRESS"), "4 Rainbow Rd") self.assertEqual(get_value(job, "WORKSITE_CITY"), "Argentina") self.assertEqual(get_value(job, "worksite accuracy"), 0.18) self.assertEqual(get_value(job, "worksite accuracy type"), "place") self.assertEqual(get_value(job, "worksite_lat"), 40.744824) self.assertEqual(get_value(job, "worksite_long"), -73.948749) self.assertEqual(get_value(job, "worksite_fixed_by"), "failed") self.assertEqual(get_value(job, "fixed"), False)
def test_works_for_dolH_row(self): job = housing_successes[housing_successes["CASE_NUMBER"] == "H-300-19296-103454"] self.assertEqual(get_value(job, "housing_fixed_by"), "address") self.assertEqual(get_value(job, "HOUSING_ADDRESS_LOCATION"), "124 Raymond Ave") self.assertEqual(get_value(job, "HOUSING_CITY"), "Poughkeepsie") self.assertEqual(get_value(job, "HOUSING_POSTAL_CODE"), 12604) self.assertEqual(get_value(job, "HOUSING_STATE"), "NY") self.assertEqual(get_value(job, "housing accuracy"), 1) self.assertEqual(get_value(job, "housing accuracy type"), "rooftop") self.assertEqual(get_value(job, "housing_lat"), 41.686518) self.assertEqual(get_value(job, "housing_long"), -73.897729) self.assertEqual(get_value(job, "housing_fixed_by"), "address") self.assertTrue(get_value(job, "fixed"))
def test_used_right_data(self): dup_job = all_accs6i[all_accs6i["CASE_NUMBER"] == "H-300-20121-530549"] self.assertEqual(get_value(dup_job, "EMPLOYER_NAME"), "Leach Farms, Inc. ") self.assertEqual(get_value(dup_job, "JOB_TITLE"), "Field Workers (Celery Harvest) ") self.assertEqual(get_value(dup_job, "Source"), "DOL") self.assertEqual(get_value(dup_job, "W to H Ratio"), "W=H") self.assertEqual(get_value(dup_job, "HOUSING_CITY"), "Pequea") self.assertEqual(get_value(dup_job, "HOUSING_ADDRESS_LOCATION"), "719 Marticville RD") self.assertEqual(get_value(dup_job, "HOUSING_POSTAL_CODE"), '17565') self.assertEqual(get_value(dup_job, "HOUSING_STATE"), "Pennsylvania") self.assertEqual(get_value(dup_job, "WORKSITE_ADDRESS"), "569 Marticville RD") self.assertEqual(get_value(dup_job, "WORKSITE_CITY"), "Pequea") self.assertEqual(get_value(dup_job, "WORKSITE_STATE"), "PENNSYLVANIA") self.assertEqual(get_value(dup_job, "WORKSITE_POSTAL_CODE"), '17565') self.assertEqual(get_value(dup_job, "housing_fixed_by"), "address") self.assertEqual(get_value(dup_job, "worksite_fixed_by"), "address") self.assertEqual(get_value(dup_job, "fixed"), True) self.assertEqual(get_value(dup_job, "worksite accuracy type"), "range_interpolation") self.assertEqual(get_value(dup_job, "housing accuracy type"), "rooftop") self.assertEqual(get_value(dup_job, "housing accuracy"), 1) self.assertEqual(get_value(dup_job, "worksite accuracy"), 0.7) self.assertEqual(get_value(dup_job, "housing_long"), -76.305982) self.assertEqual(get_value(dup_job, "housing_lat"), 39.925263) self.assertEqual(get_value(dup_job, "worksite_long"), -76.306133) self.assertEqual(get_value(dup_job, "worksite_lat"), 39.935672)
def test_get_value_raises_exception_when_invalid_path_type(): """ Test that get_value returns deep path value by reference from set """ with pytest.raises(AssertionError): get_value({}, set(['foo', 'bar']))
def test_one_impossible(self): job = successes[successes["CASE_NUMBER"] == "H-300-20163-644097"] self.assertEqual(get_value(job, "HOUSING_CITY"), "Fife") self.assertEqual(get_value(job, "housing accuracy"), 0.67) self.assertEqual(get_value(job, "housing accuracy type"), "place") self.assertEqual(get_value(job, "housing_long"), -122.359432) self.assertEqual(get_value(job, "housing_fixed_by"), "impossible") self.assertEqual(get_value(job, "WORKSITE_ADDRESS"), "3601 54th Ave E") self.assertEqual(get_value(job, "worksite accuracy"), 0.9) self.assertEqual(get_value(job, "worksite accuracy type"), "range_interpolation") self.assertEqual(get_value(job, "worksite_long"), -122.3572) self.assertTrue(pd.isnull(get_value(job, "worksite_fixed_by"))) self.assertTrue(get_value(job, "fixed"))
def test_one_coords_one_add(self): job = successes[successes["CASE_NUMBER"] == "H-300-20163-644868"] self.assertEqual(get_value(job, "HOUSING_CITY"), "Clinton") self.assertEqual(get_value(job, "HOUSING_POSTAL_CODE"), 13323) self.assertEqual(get_value(job, "housing accuracy"), 1) self.assertEqual(get_value(job, "housing accuracy type"), "rooftop") self.assertEqual(get_value(job, "housing_lat"), 43.051469) self.assertEqual(get_value(job, "housing_long"), -75.402153) self.assertEqual(get_value(job, "housing_fixed_by"), "address") self.assertEqual(get_value(job, "WORKSITE_ADDRESS"), "14095 N. Peyton Highway") self.assertEqual(get_value(job, "worksite accuracy"), 1) self.assertEqual(get_value(job, "worksite accuracy type"), "rooftop") self.assertEqual(get_value(job, "worksite_lat"), 100) self.assertEqual(get_value(job, "worksite_long"), 99) self.assertEqual(get_value(job, "worksite_fixed_by"), "coordinates") self.assertTrue(get_value(job, "fixed"))
def test_used_right_data(self): dup_job = all_accs6iiiB[all_accs6iiiB["CASE_NUMBER"] == "H-300-20121-530549"] self.assertEqual(get_value(dup_job, "EMPLOYER_NAME"), "Leach Farms, Inc. ") self.assertEqual(get_value(dup_job, "JOB_TITLE"), "Field Workers (Celery Harvest) ") self.assertEqual(get_value(dup_job, "Source"), "DOL") self.assertEqual(get_value(dup_job, "W to H Ratio"), "W=H") self.assertEqual(get_value(dup_job, "HOUSING_CITY"), "Berlin") self.assertEqual(get_value(dup_job, "HOUSING_ADDRESS_LOCATION"), "W1026 Buttercup Court") self.assertEqual(get_value(dup_job, "HOUSING_POSTAL_CODE"), '54923') self.assertEqual(get_value(dup_job, "HOUSING_STATE"), "WISCONSIN") self.assertEqual(get_value(dup_job, "WORKSITE_ADDRESS"), "Leach Farms-W1102 Buttercup Ct") self.assertEqual(get_value(dup_job, "WORKSITE_CITY"), "Berlin") self.assertEqual(get_value(dup_job, "WORKSITE_STATE"), "WISCONSIN") self.assertEqual(get_value(dup_job, "WORKSITE_POSTAL_CODE"), '54923') self.assertTrue(pd.isnull(get_value(dup_job, "housing_fixed_by"))) self.assertEqual(get_value(dup_job, "worksite_fixed_by"), "coordinates") self.assertEqual(get_value(dup_job, "fixed"), True) self.assertEqual(get_value(dup_job, "worksite accuracy type"), "range_interpolation") self.assertEqual(get_value(dup_job, "housing accuracy type"), "rooftop") self.assertEqual(get_value(dup_job, "housing accuracy"), 1) self.assertEqual(get_value(dup_job, "worksite accuracy"), 1) self.assertEqual(get_value(dup_job, "housing_long"), -88.932913) self.assertEqual(get_value(dup_job, "housing_lat"), 44.080442) self.assertEqual(get_value(dup_job, "worksite_long"), -76.306133) self.assertEqual(get_value(dup_job, "worksite_lat"), 39.935672)
def test_both_fixed_by_address(self): job = successes[successes["CASE_NUMBER"] == "H-300-20227-769297"] self.assertEqual(get_value(job, "HOUSING_ADDRESS_LOCATION"), "198 College Hill Rd") self.assertEqual(get_value(job, "HOUSING_CITY"), "Clinton") self.assertEqual(get_value(job, "HOUSING_POSTAL_CODE"), 13323) self.assertEqual(get_value(job, "HOUSING_STATE"), "NY") self.assertEqual(get_value(job, "housing accuracy"), 1) self.assertEqual(get_value(job, "housing accuracy type"), "rooftop") self.assertEqual(get_value(job, "housing_lat"), 43.051469) self.assertEqual(get_value(job, "housing_long"), -75.402153) self.assertEqual(get_value(job, "housing_fixed_by"), "address") self.assertEqual(get_value(job, "WORKSITE_ADDRESS"), "124 Raymond Ave") self.assertEqual(get_value(job, "WORKSITE_CITY"), "Poughkeepsie") self.assertEqual(get_value(job, "worksite accuracy"), 1) self.assertEqual(get_value(job, "worksite accuracy type"), "rooftop") self.assertEqual(get_value(job, "worksite_lat"), 41.686518) self.assertEqual(get_value(job, "worksite_long"), -73.897729) self.assertEqual(get_value(job, "worksite_fixed_by"), "address") self.assertTrue(get_value(job, "fixed"))
def test_used_right_data(self): dup_job = all_inaccs8[all_inaccs8["CASE_NUMBER"] == "H-300-20114-511870"] self.assertEqual(get_value(dup_job, "EMPLOYER_NAME"), "Alstede Farms, LLC") self.assertEqual(get_value(dup_job, "JOB_TITLE"), "Farm Worker") self.assertEqual(get_value(dup_job, "Source"), "DOL") self.assertEqual(get_value(dup_job, "W to H Ratio"), "W=H") self.assertEqual(get_value(dup_job, "HOUSING_CITY"), "Chester") self.assertEqual(get_value(dup_job, "HOUSING_ADDRESS_LOCATION"), "1 Alstede Farms Lane") self.assertEqual(get_value(dup_job, "HOUSING_POSTAL_CODE"), '07930') self.assertEqual(get_value(dup_job, "HOUSING_STATE"), "NEW JERSEY") self.assertEqual(get_value(dup_job, "WORKSITE_ADDRESS"), "407B Road St-Just, T9R18, mile 11") self.assertEqual(get_value(dup_job, "WORKSITE_CITY"), "Somerset County") self.assertEqual(get_value(dup_job, "WORKSITE_STATE"), "MAINE") self.assertEqual(get_value(dup_job, "WORKSITE_POSTAL_CODE"), '11111') self.assertTrue(pd.isnull(get_value(dup_job, "housing_fixed_by"))) self.assertEqual(get_value(dup_job, "worksite_fixed_by"), "address") self.assertEqual(get_value(dup_job, "worksite accuracy type"), "roof") self.assertEqual(get_value(dup_job, "housing accuracy type"), "rooftop") self.assertEqual(get_value(dup_job, "housing accuracy"), 1.0) self.assertEqual(get_value(dup_job, "worksite accuracy"), 0.999) self.assertEqual(get_value(dup_job, "housing_long"), -74.683861) self.assertEqual(get_value(dup_job, "housing_lat"), 40.782111) self.assertEqual(get_value(dup_job, "worksite_long"), 1000) self.assertTrue(pd.isnull(get_value(dup_job, "worksite_lat"))) self.assertEqual(get_value(dup_job, "fixed"), True)
def test_both_fixed_by_coords(self): job = successes[successes["CASE_NUMBER"] == "H-300-20154-620944"] self.assertEqual(get_value(job, "HOUSING_CITY"), "Hammett") self.assertEqual(get_value(job, "HOUSING_POSTAL_CODE"), 83627) self.assertEqual(get_value(job, "housing accuracy"), 1) self.assertEqual(get_value(job, "housing accuracy type"), "rooftop") self.assertEqual(get_value(job, "housing_lat"), 22) self.assertEqual(get_value(job, "housing_long"), 21) self.assertEqual(get_value(job, "housing_fixed_by"), "coordinates") self.assertEqual(get_value(job, "WORKSITE_ADDRESS"), "8895 West Spangler Road (Including fields within a 15 mile radius)") self.assertEqual(get_value(job, "worksite accuracy"), 1) self.assertEqual(get_value(job, "worksite accuracy type"), "rooftop") self.assertEqual(get_value(job, "worksite_lat"), 33) self.assertEqual(get_value(job, "worksite_long"), 24) self.assertEqual(get_value(job, "worksite_fixed_by"), "coordinates") self.assertTrue(get_value(job, "fixed"))
def get_platform_meta(self): platform_id = 'tracking_platform.{}'.format(self.platform) return get_value(self.config, platform_id)