Spaces:
Runtime error
Runtime error
| import pytest | |
| import re | |
| from fewshot import FewShot4UAVs | |
| def fewshot(): | |
| return FewShot4UAVs() | |
| # format: <command> \t<goal> | |
| def parse_command(text): | |
| tokens = re.split(' \t|\n|: ', text.lower()) | |
| print(tokens) | |
| if len(tokens) >= 2: | |
| return tokens[1] | |
| else: | |
| return 'none' | |
| def parse_multiple_commands(text): | |
| text = text.lstrip('\n') | |
| lines = text.split("\n") | |
| first_action = lines[0].split()[0].lower() | |
| second_action = lines[1].split()[0].lower() | |
| return first_action, second_action | |
| def test_red_house(fewshot): | |
| text = "Go to the red house on W Broad St." | |
| output = fewshot.get_command(text) | |
| command = parse_command(output) | |
| assert command == "goto" | |
| def test_take_off(fewshot): | |
| text = "Take off from where you are." | |
| output = fewshot.get_command(text) | |
| command = parse_command(output) | |
| assert command == "takeoff" | |
| def test_take_off_synonym(fewshot): | |
| text = "Lift off." | |
| output = fewshot.get_command(text) | |
| command = parse_command(output) | |
| assert command == "takeoff" | |
| def test_land(fewshot): | |
| text = "Land now." | |
| output = fewshot.get_command(text) | |
| command = parse_command(output) | |
| assert command == "land" | |
| def test_picture(fewshot): | |
| text = "Take a picture." | |
| output = fewshot.get_command(text) | |
| command = parse_command(output) | |
| assert command == "none" | |
| def test_snap_pic(fewshot): | |
| text = "Snap a photo." | |
| output = fewshot.get_command(text) | |
| command = parse_command(output) | |
| assert command == "none" | |
| def test_purple_house(fewshot): | |
| text = "Travel to the purple house on the left side." | |
| output = fewshot.get_command(text) | |
| command = parse_command(output) | |
| assert command == "goto" | |
| def test_parking_garage(fewshot): | |
| text = "Fly to the parking garage across the street." | |
| output = fewshot.get_command(text) | |
| command = parse_command(output) | |
| assert command == "goto" | |
| def test_gym(fewshot): | |
| text = "Check out the Cary St Gym." | |
| output = fewshot.get_command(text) | |
| command = parse_command(output) | |
| assert command == "goto" | |
| def test_cease_flight(fewshot): | |
| text = "Cease flight." | |
| output = fewshot.get_command(text) | |
| command = parse_command(output) | |
| assert command == "land" | |
| def test_stop_flight(fewshot): | |
| text = "Stop the flight." | |
| output = fewshot.get_command(text) | |
| command = parse_command(output) | |
| assert command == "land" | |
| def test_no_location1(fewshot): | |
| text = "Check out." | |
| output = fewshot.get_command(text) | |
| command = parse_command(output) | |
| assert command == "none" | |
| def test_no_location2(fewshot): | |
| text = "Go to." | |
| output = fewshot.get_command(text) | |
| command = parse_command(output) | |
| assert command == "none" | |
| def test_no_location3(fewshot): | |
| text = "Travel to." | |
| output = fewshot.get_command(text) | |
| command = parse_command(output) | |
| assert command == "none" | |
| def test_no_location4(fewshot): | |
| text = "Head to." | |
| output = fewshot.get_command(text) | |
| command = parse_command(output) | |
| assert command == "none" | |
| def test_empty_input(fewshot): | |
| text = "" | |
| output = fewshot.get_command(text) | |
| command = parse_command(output) | |
| assert command == "none" | |
| def test_invalid_command(fewshot): | |
| text = "Do something." | |
| output = fewshot.get_command(text) | |
| command = parse_command(output) | |
| assert command == "none" | |
| def test_location_no_action(fewshot): | |
| text = "Willow Lawn." | |
| output = fewshot.get_command(text) | |
| command = parse_command(output) | |
| assert command == "goto" | |
| def test_location_no_action2(fewshot): | |
| text = "Whole Foods on W Broad St." | |
| output = fewshot.get_command(text) | |
| command = parse_command(output) | |
| assert command == "goto" | |
| def test_location_no_action3(fewshot): | |
| text = "Starbucks at N Robinson St." | |
| output = fewshot.get_command(text) | |
| command = parse_command(output) | |
| assert command == "goto" | |
| def test_with_extra_words(fewshot): | |
| text = "Please go to the Whole Foods on W Broad St." | |
| output = fewshot.get_command(text) | |
| command = parse_command(output) | |
| assert command == "goto" | |
| def test_with_extra_words2(fewshot): | |
| text = "Go to the Whole Foods on W Broad St please." | |
| output = fewshot.get_command(text) | |
| command = parse_command(output) | |
| assert command == "goto" | |
| def test_multiple_actions(fewshot): | |
| text = "Take a photo and then take off." | |
| output = fewshot.get_command(text) | |
| command = parse_multiple_commands(output) | |
| assert command == ('takephoto', 'takeoff') | |
| def test_two_go_to(fewshot): | |
| text = "Go to the Kroger on Lombardy St and then go to Roots on W Grace St." | |
| output = fewshot.get_command(text) | |
| command = parse_multiple_commands(output) | |
| assert command == ('goto', 'goto') | |
| def test_multiple_actions_and_locations(fewshot): | |
| text = "Fly to the park and take a picture of the red house." | |
| output = fewshot.get_command(text) | |
| command = parse_multiple_commands(output) | |
| assert command == ('goto', 'takephoto') | |
| def test_action_and_location(fewshot): | |
| text = "Fly to the park and take a picture." | |
| output = fewshot.get_command(text) | |
| command = parse_multiple_commands(output) | |
| assert command == ('goto', 'takephoto') | |
| def test_action_and_location_synonyms(fewshot): | |
| text = "Hover and head to the closest park." | |
| output = fewshot.get_command(text) | |
| command = parse_multiple_commands(output) | |
| assert command == ('takeoff', 'goto') | |
| def test_action_synonyms(fewshot): | |
| text = "Ascend and then take a photo." | |
| output = fewshot.get_command(text) | |
| command = parse_multiple_commands(output) | |
| assert command == ('takeoff', 'takephoto') | |
| def test_action_synonyms2(fewshot): | |
| text = "Descend and then take a photo." | |
| output = fewshot.get_command(text) | |
| command = parse_multiple_commands(output) | |
| assert command == ('land', 'takephoto') | |
| def test_action_synonyms3(fewshot): | |
| text = "Descend" | |
| output = fewshot.get_command(text) | |
| command = parse_command(output) | |
| assert command == 'land' | |