Question: Check Functional Dependencies Write a function, named check _ funtional _ dependency, that takes two arguments, a table ( represented as a list of dictionaries,

Check Functional Dependencies
Write a function, named check_funtional_dependency, that takes two arguments, a table (represented as a list of dictionaries, where each dictionarys key is a column and its value is the datum) and a functional dependency (a class already implemented in the starter code). Your function should return True if the functional dependency is true for the table, False otherwise.
Here are a few test cases:
def test_visible_1(self): # First Test Case (Okay) list_of_dict_rows =[{"name": "Josh", "age": 29, "pet": "RaceTrack", "allergies": "Wheat"},{"name": "Cam", "age": 26, "pet": "CrashDown", "allergies": "None"},{"name": "Zizhen", "age": 24, "pet": "Bugs Bunny", "allergies": "Calculus"},{"name": "Dennis", "age": 40, "pet": "Dany", "allergies": "Wheat"},{"name": "Jie", "age": 24, "pet": "Ghost", "allergies": "None"},] # This table has 4 columns: name, age, pet, and allergies left_side_set ={"age", "allergies"} right_side_set ={"name", "age"} functional_dependency = FunctionalDependency(left_side_set, right_side_set) # age allergies ---> name age # it holds because no rows matching on the left attributes disagree on the right print("Table:") pprint(list_of_dict_rows) print(f"FD: {functional_dependency}") result = check_funtional_dependency(list_of_dict_rows, functional_dependency) print(f"Result: {result}") assert result def test_visible_2(self): # Doesn't Hold list_of_dict_rows =[{"name": "Josh", "age": 29, "pet": "RaceTrack", "allergies": "Wheat"},{"name": "Cam", "age": 26, "pet": "CrashDown", "allergies": "None"},{"name": "Zizhen", "age": 24, "pet": "Bugs Bunny", "allergies": "Calculus"},{"name": "Dennis", "age": 40, "pet": "Dany", "allergies": "Wheat"},{"name": "Jie", "age": 24, "pet": "Ghost", "allergies": "None"},] left_side_set ={"allergies"} right_side_set ={"name", "age"} functional_dependency = FunctionalDependency(left_side_set, right_side_set) print("Table:") pprint(list_of_dict_rows) print(f"FD: {functional_dependency}") result = check_funtional_dependency(list_of_dict_rows, functional_dependency) print(f"Result: {result}") # FD doesn't hold because Josh and Dennis both have a wheat allergy, but differ in name (and age too) assert not result def test_visible_3(self): # Other Columns list_of_dict_rows =[{"name": "Josh", "age": 29, "pet": "RaceTrack", "allergies": "Wheat", "zipcode": 98105},{"name": "Cam", "age": 26, "pet": "CrashDown", "allergies": "None", "zipcode": 48824},{"name": "Zizhen", "age": 24, "pet": "Bugs Bunny", "allergies": "Calculus", "zipcode": 48823},{"name": "Dennis", "age": 40, "pet": "Dany", "allergies": "Wheat", "zipcode": 48823},{"name": "Jie", "age": 24, "pet": "Ghost", "allergies": "None", "zipcode": 48823},] left_side_set ={"zipcode", "allergies"} right_side_set ={"name", "age"} functional_dependency = FunctionalDependency(left_side_set, right_side_set) print("Table:") pprint(list_of_dict_rows) print(f"FD: {functional_dependency}") result = check_funtional_dependency(list_of_dict_rows, functional_dependency) print(f"Result: {result}") assert result left_side_set ={"zipcode"} right_side_set ={"zipcode"} functional_dependency = FunctionalDependency(left_side_set, right_side_set) print("Table:") pprint(list_of_dict_rows) print(f"FD: {functional_dependency}") result = check_funtional_dependency(list_of_dict_rows, functional_dependency) print(f"Result: {result}") assert result

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Programming Questions!