def test_cross_product(): result = [["Employee", "Department", "Department", "Head"], ["Smith", "sales", "production", "Mori"], ["Smith", "sales", "sales", "Brown"], ["Black", "production", "production", "Mori"], ["Black", "production", "sales", "Brown"], ["White", "production", "production", "Mori"], ["White", "production", "sales", "Brown"]] assert is_equal(result, cross_product(R1, R2)) # Empty tables should give back original table assert is_equal(R1, cross_product(R1, [])) assert is_equal(R2, cross_product([], R2)) # If both tables empty, return assert cross_product([], []) is None # Test case with different schema table1 = [["First Name"], ["bat"], ["super"]] table2 = [["Last Name"], ["man"], ["girl"]] result = [["First Name", "Last Name"], ["bat", "man"], ["bat", "girl"], ["super", "man"], ["super", "girl"]] assert is_equal(result, cross_product(table1, table2))
def test_cross_product_empty_table(): """ Test cross product operation using an empty table. """ empty_table = [["ID Number", "Date of Birth"]] assert cross_product(empty_table, R1) is None assert cross_product(empty_table, R2) is None assert cross_product(R1, empty_table) is None assert cross_product(R2, empty_table) is None
def test_cross_product(): """ Test cross product operation. """ result = [["Employee", "Department", "Department", "Head"], ["Smith", "sales", "production", "Mori"], ["Smith", "sales", "sales", "Brown"], ["Black", "production", "production", "Mori"], ["Black", "production", "sales", "Brown"], ["White", "production", "production", "Mori"], ["White", "production", "sales", "Brown"]] assert is_equal(result, cross_product(R1, R2)) assert cross_product(R3, R4) is None
def test_cross_product_none(): """ Tests selection function to see if None is returned when it results in an empty table return: None (empty table) """ assert cross_product(BLANK, BLANK2) is None
def test_cross_product_returns_nothing(): # Test if cross product is none t1 = [["Teacher", "Age"], ["Susan", 47], ["Eric", 65]] t2 = [["Teacher", "Age"]] assert cross_product(t1, t2) is None
def test_cross_product_student(): # Test cross product result = [["FirstName", "Surname", "Age", "Course"], ["Susan", "Sim", 40, "Inf1340"], ["Susan", "Sim", 40, "Inf1341"], ["Eric", "Yu", 60, "Inf1340"], ["Eric", "Yu", 60, "Inf1341"]] assert is_equal(result, cross_product(TEACHER, COURSES))
def test_cross_product_returns_none(): # Checks if cross_product() function returns "None" if result is empty table. t1 = [["Name", "Age"], ["Dan", 50], ["Mary", 44], ["Jose", 54]] t2 = [["Name", "Age"]] assert cross_product(t1, t2) == None
def test_cross_product_returns_nothing(): #Tests whether cross_product() function returns None if result is empty table t1 = [["Name", "Age"], ["Bob", 47], ["Mary", 65], ["Carla", 54]] t2 = [["Name", "Age"]] assert cross_product(t1,t2) == None
def test_cross_product(): """ Test cross product operation. """ result = [["Employee", "Department", "Department", "Head"], ["Smith", "sales", "production", "Mori"], ["Smith", "sales", "sales", "Brown"], ["Black", "production", "production", "Mori"], ["Black", "production", "sales", "Brown"], ["White", "production", "production", "Mori"], ["White", "production", "sales", "Brown"]] result_1 = [["A", "B", "1", "2"], ["A", "B", "3", "4"], ["C", "D", "1", "2"], ["C", "D", "3", "4"], ["First", "Last", "First", "Last"]] assert is_equal(result, cross_product(R1, R2)) assert is_equal(result_1, cross_product(R4, R5)) assert cross_product(R1, R3) is None
def test_cross_product(): """ Test cross product operation. """ result = [["Employee", "Department", "Department", "Head"], ["Smith", "sales", "production", "Mory"], ["Smith", "sales", "sales", "Brown"], ["Black", "production", "production", "Mory"], ["Black", "production", "sales", "Brown"], ["White", "production", "production", "Mory"], ["White", "production", "sales", "Brown"]] result2 = [["A", "B", "C", "D"], [1, 2, 5, 6], [3, 4, 5, 6]] assert is_equal(result, cross_product(R1, R2)) assert is_equal(result2, cross_product(R6, R7)) assert cross_product(R4, R5) is None assert cross_product(R3, R3) is None
def test_cross_product1(): """ Test cross_product operation (student version) """ result1 = [['Make', 'Color', 'Year', 'Works(y/n)', 'Make', 'Color', 'Year', 'Works(y/n)'], ['Toyota', 'Yellow', 1989, 'y', 'Toyota', 'Yellow', 1989, 'y'], ['Toyota', 'Yellow', 1989, 'y', 'Honda', 'Red', 1998, 'n'], ['Toyota', 'Yellow', 1989, 'y', 'Dodge', 'Purple', 2000, 'y'], ['Honda', 'Orange', 2011, 'n', 'Toyota', 'Yellow', 1989, 'y'], ['Honda', 'Orange', 2011, 'n', 'Honda', 'Red', 1998, 'n'], ['Honda', 'Orange', 2011, 'n', 'Dodge', 'Purple', 2000, 'y'], ['Dodge', 'Purple', 2000, 'y', 'Toyota', 'Yellow', 1989, 'y'], ['Dodge', 'Purple', 2000, 'y', 'Honda', 'Red', 1998, 'n'], ['Dodge', 'Purple', 2000, 'y', 'Dodge', 'Purple', 2000, 'y'], ['Fiat', 'Polka dot', 1999, 'y', 'Toyota', 'Yellow', 1989, 'y'], ['Fiat', 'Polka dot', 1999, 'y', 'Honda', 'Red', 1998, 'n'], ['Fiat', 'Polka dot', 1999, 'y', 'Dodge', 'Purple', 2000, 'y']] result2 = [["Type", "Size", "Preferred Salinity", "Name", "Movement"], ["Trout", "Small", "Fresh", "Pawn", "Forward"], ["Trout", "Small", "Fresh", "Knight", "L-Shape"], ["Dogfish", "Medium", "Salt","Pawn", "Forward"], ["Dogfish", "Medium", "Salt", "Knight", "L-Shape"], ["Great White", "Large", "Salt", "Pawn", "Forward"], ["Great White", "Large", "Salt", "Knight", "L-Shape"]] result3 = [["Name", "Movement", "Type", "Size", "Preferred Salinity"], ["Pawn", "Forward", "Trout", "Small", "Fresh"], ["Pawn", "Forward", "Dogfish", "Medium", "Salt"], ["Pawn", "Forward", "Great White", "Large", "Salt"], ["Knight", "L-Shape", "Trout", "Small", "Fresh"], ["Knight", "L-Shape", "Dogfish", "Medium", "Salt"], ["Knight", "L-Shape", "Great White", "Large", "Salt"]] # Test cross_product of 2 regular tables assert is_equal(result1, cross_product(CARS, TRUCKS)) # Test cross_product of 2 other regular tables assert is_equal(result2, cross_product(FISH, CHESSMEN)) # Test cross_product of 2 tables in opposite order assert is_equal(result3, cross_product(CHESSMEN, FISH))
def test_cross_product(): """ Test cross product operation. """ result = [["Employee", "Department", "Department", "Head"], ["Smith", "sales", "production", "Mori"], ["Smith", "sales", "sales", "Brown"], ["Black", "production", "production", "Mori"], ["Black", "production", "sales", "Brown"], ["White", "production", "production", "Mori"], ["White", "production", "sales", "Brown"]] result2 = [["A", "B", "C", "D"], [1, 2, 5, 6], [3, 4, 5, 6]] assert is_equal(result, cross_product(R1, R2)) assert is_equal(result2, cross_product(R6, R7)) assert cross_product(R4, R5) is None
def test_cross_product_result_empty(): """ Test cross product operation with a result empty table. """ t1 = [["Surname", "FirstName"], ["Smith", "Mary"], ["Black", "Lucy"], ["Verdi", "Nico"], ["Smith", "Mark"]] t2 = [["Surname", "FirstName"]] assert cross_product(t1,t2) == None
def test_cross_product_basic(): """ Test cross product operation with basic/generic inputs. """ result_1 = [["Employee", "Department", "Department", "Head"], ["Smith", "sales", "production", "Mori"], ["Smith", "sales", "sales", "Brown"], ["Black", "production", "production", "Mori"], ["Black", "production", "sales", "Brown"], ["White", "production", "production", "Mori"], ["White", "production", "sales", "Brown"]] assert is_equal(result_1, cross_product(R1, R2)) result_2 = [['Department', 'Head', 'Employee', 'Department'], ['production', 'Mori', 'Smith', 'sales'], ['production', 'Mori', 'Black', 'production'], ['production', 'Mori', 'White', 'production'], ['sales', 'Brown', 'Smith', 'sales'], ['sales', 'Brown', 'Black', 'production'], ['sales', 'Brown', 'White', 'production']] assert is_equal(result_2, cross_product(R2, R1)) result_3 = [[ 'Surname', 'FirstName', 'Age', 'Salary', 'Employee', 'Department' ], ['Smith', 'Mary', 25, 2000, 'Smith', 'sales'], ['Smith', 'Mary', 25, 2000, 'Black', 'production'], ['Smith', 'Mary', 25, 2000, 'White', 'production'], ['Black', 'Lucy', 40, 3000, 'Smith', 'sales'], ['Black', 'Lucy', 40, 3000, 'Black', 'production'], ['Black', 'Lucy', 40, 3000, 'White', 'production'], ['Verdi', 'Nico', 36, 4500, 'Smith', 'sales'], ['Verdi', 'Nico', 36, 4500, 'Black', 'production'], ['Verdi', 'Nico', 36, 4500, 'White', 'production'], ['Smith', 'Mark', 40, 3900, 'Smith', 'sales'], ['Smith', 'Mark', 40, 3900, 'Black', 'production'], ['Smith', 'Mark', 40, 3900, 'White', 'production']] assert is_equal(result_3, cross_product(EMPLOYEES, R1))
def test_cross_product_basic(): """ Test cross product operation with basic/generic inputs. """ result_1 = [["Employee", "Department", "Department", "Head"], ["Smith", "sales", "production", "Mori"], ["Smith", "sales", "sales", "Brown"], ["Black", "production", "production", "Mori"], ["Black", "production", "sales", "Brown"], ["White", "production", "production", "Mori"], ["White", "production", "sales", "Brown"]] assert is_equal(result_1, cross_product(R1, R2)) result_2 = [['Department', 'Head', 'Employee', 'Department'], ['production', 'Mori', 'Smith', 'sales'], ['production', 'Mori', 'Black', 'production'], ['production', 'Mori', 'White', 'production'], ['sales', 'Brown', 'Smith', 'sales'], ['sales', 'Brown', 'Black', 'production'], ['sales', 'Brown', 'White', 'production']] assert is_equal(result_2, cross_product(R2, R1)) result_3 = [['Surname', 'FirstName', 'Age', 'Salary', 'Employee', 'Department'], ['Smith', 'Mary', 25, 2000, 'Smith', 'sales'], ['Smith', 'Mary', 25, 2000, 'Black', 'production'], ['Smith', 'Mary', 25, 2000, 'White', 'production'], ['Black', 'Lucy', 40, 3000, 'Smith', 'sales'], ['Black', 'Lucy', 40, 3000, 'Black', 'production'], ['Black', 'Lucy', 40, 3000, 'White', 'production'], ['Verdi', 'Nico', 36, 4500, 'Smith', 'sales'], ['Verdi', 'Nico', 36, 4500, 'Black', 'production'], ['Verdi', 'Nico', 36, 4500, 'White', 'production'], ['Smith', 'Mark', 40, 3900, 'Smith', 'sales'], ['Smith', 'Mark', 40, 3900, 'Black', 'production'], ['Smith', 'Mark', 40, 3900, 'White', 'production']] assert is_equal(result_3, cross_product(EMPLOYEES, R1))
def test_cross_product(): """ Test cross product operation. """ result = [["Employee", "Department", "Department", "Head"], ["Smith", "sales", "production", "Mori"], ["Smith", "sales", "sales", "Brown"], ["Black", "production", "production", "Mori"], ["Black", "production", "sales", "Brown"], ["White", "production", "production", "Mori"], ["White", "production", "sales", "Brown"]] assert is_equal(result, cross_product(R1, R2)) result = [["Sayings", "People", "Title", "Genre", "Time"], ["squanch", "Squanchy", "Catan", "resource", "90"], ["squanch", "Squanchy", "XCOM", "space", "150"], ["wubalubadubdub", "Rick", "Catan", "resource", "90"], ["wubalubadubdub", "Rick", "XCOM", "space", "150"], ["ohjeez", "Morty", "Catan", "resource", "90"], ["ohjeez", "Morty", "XCOM", "space", "150"]] assert is_equal(result, cross_product(RNM, GAMES))
def test_cross_product(): """ Test cross product operation. """ result = [["Student", "Department", "Department", "Head"], ["Xio", "iSchool", "Rotman", "Mori"], ["Xio", "iSchool", "iSchool", "Brown"], ["Black", "Rotman", "Rotman", "Mori"], ["Black", "Rotman", "iSchool", "Brown"], ["White", "Rotman", "Rotman", "Mori"], ["White", "Rotman", "iSchool", "Brown"]] assert is_equal(result, cross_product(R1, R2))
def test_cross_product(): """ Test cross product operation. """ result = [["Student", "Class", "Class", "Professor"], ["Zoe", "Programming", "Programming", "Sim"], ["Zoe", "Programming", "Web Design", "Yu"], ["Jayne", "Web Design", "Web Design", "Yu"], ["Jayne", "Web Design", "Programming", "Sim"], ["Inara", "Programming", "Programming", "Sim"], ["Inara", "Programming", "Web Design", "Yu"]] assert is_equal(result, cross_product(R1, R2))
def test_cross_product(): """ Test cross product operation. """ result = [ ["Student", "Class", "Class", "Professor"], ["Zoe", "Programming", "Programming", "Sim"], ["Zoe", "Programming", "Web Design", "Yu"], ["Jayne", "Web Design", "Web Design", "Yu"], ["Jayne", "Web Design", "Programming", "Sim"], ["Inara", "Programming", "Programming", "Sim"], ["Inara", "Programming", "Web Design", "Yu"], ] assert is_equal(result, cross_product(R1, R2))
def test_cross_product_same_tables(): """ Test cross product operation using the same tables. """ result = [["Employee", "Department", "Employee", "Department"], ["Smith", "sales", "Smith", "sales"], ["Smith", "sales", "Black", "production"], ["Smith", "sales", "White", "production"], ["Black", "production", "Smith", "sales"], ["Black", "production", "Black", "production"], ["Black", "production", "White", "production"], ["White", "production", "Smith", "sales"], ["White", "production", "Black", "production"], ["White", "production", "White", "production"]] assert is_equal(result, cross_product(R1, R1))
def test_cross_product_our_test(): """ Another test cross product operation :return:list of cross product rows """ result = [["Artist", "Album", "Label", "Year"], ["The Beatles", "Rubber Soul", "Apple", 1965], ["The Beatles", "Rubber Soul", "Decca", 1969], ["The Beatles", "Rubber Soul", "Fiction", 1989], ["Rolling Stones", "Let It Bleed", "Apple", 1965], ["Rolling Stones", "Let It Bleed", "Decca", 1969], ["Rolling Stones", "Let It Bleed", "Fiction", 1989], ["The Cure", "Disintegration", "Apple", 1965], ["The Cure", "Disintegration", "Decca", 1969], ["The Cure", "Disintegration", "Fiction", 1989]] assert is_equal(result, cross_product(A1, A2))
def test_cross_product(): """ Test cross product operation. """ result = [["Employee", "Department", "Department", "Head"], ["Smith", "sales", "production", "Mori"], ["Smith", "sales", "sales", "Brown"], ["Black", "production", "production", "Mori"], ["Black", "production", "sales", "Brown"], ["White", "production", "production", "Mori"], ["White", "production", "sales", "Brown"]] shoul = [['Employee', 'Department', 'Department', 'Head'], ['Smith', 'sales', 'production', 'Mori'], ['Smith', 'sales', 'sales', 'Brown'], ['Black', 'production', 'production', 'Mori'], ['Black', 'production', 'sales', 'Brown'], ['White', 'production', 'production', 'Mori'], ['White', 'production', 'sales', 'Brown']] assert is_equal(result, cross_product(R1, R2))
def test_cross_product_team_test(): #Tests cross product operation result = [["Surname", "FirstName", "Age", "Candidate", "Party"], ["Smith", "Sammy", 17, "Justin Trudeau", "Liberal"], ["Smith", "Sammy", 17, "Stephen Harper", "Conservative"], ["Smith", "Sammy", 17, "Tom Mulcair", "NDP"], ["Vasquez", "Maria", 23, "Justin Trudeau", "Liberal"], ["Vasquez", "Maria", 23, "Stephen Harper", "Conservative"], ["Vasquez", "Maria", 23, "Tom Mulcair", "NDP"], ["Allen", "Grant", 18,"Justin Trudeau", "Liberal"], ["Allen", "Grant", 18, "Stephen Harper", "Conservative"], ["Allen", "Grant", 18, "Tom Mulcair", "NDP"], ["Allen", "Bethany", 16, "Justin Trudeau", "Liberal"], ["Allen", "Bethany", 16, "Stephen Harper", "Conservative"], ["Allen", "Bethany", 16, "Tom Mulcair", "NDP"], ["Xun", "Lu", 47, "Justin Trudeau", "Liberal"], ["Xun", "Lu", 47, "Stephen Harper", "Conservative"], ["Xun", "Lu", 47, "Tom Mulcair", "NDP"], ["Qian", "Sima", 117, "Justin Trudeau", "Liberal"], ["Qian", "Sima", 117, "Stephen Harper", "Conservative"], ["Qian", "Sima", 117, "Tom Mulcair", "NDP"]] assert is_equal(result, cross_product(VOTERS, CANDIDATES))
def test_empty_cross_product(): """ Test cross product operation if uses on empty lists. """ assert cross_product(EMPTY_LIST, COMPLETELY_EMPTY1) is None
def test_cross_product_one_row_table(): """ Test cross product operation using the a table with only one row. """ table_with_one_row = [["ID Number", "Date of Birth"], [0001, "01/01/2001"]] result_1 = [[ "ID Number", "Date of Birth", "Surname", "FirstName", "Age", "Salary" ], [0001, "01/01/2001", "Smith", "Mary", 25, 2000], [0001, "01/01/2001", "Black", "Lucy", 40, 3000], [0001, "01/01/2001", "Verdi", "Nico", 36, 4500], [0001, "01/01/2001", "Smith", "Mark", 40, 3900]] assert is_equal(result_1, cross_product(table_with_one_row, EMPLOYEES)) result_2 = [[ "Surname", "FirstName", "Age", "Salary", "ID Number", "Date of Birth" ], ["Smith", "Mary", 25, 2000, 0001, "01/01/2001"], ["Black", "Lucy", 40, 3000, 0001, "01/01/2001"], ["Verdi", "Nico", 36, 4500, 0001, "01/01/2001"], ["Smith", "Mark", 40, 3900, 0001, "01/01/2001"]] assert is_equal(result_2, cross_product(EMPLOYEES, table_with_one_row)) result_3 = [["ID Number", "Date of Birth", "ID Number", "Date of Birth"], [0001, "01/01/2001", 0001, "01/01/2001"]] assert is_equal(result_3, cross_product(table_with_one_row, table_with_one_row))
def test_cross_product_one_row_table(): """ Test cross product operation using the a table with only one row. """ table_with_one_row = [["ID Number", "Date of Birth"], [0001, "01/01/2001"]] result_1 = [["ID Number", "Date of Birth", "Surname", "FirstName", "Age", "Salary"], [0001, "01/01/2001", "Smith", "Mary", 25, 2000], [0001, "01/01/2001", "Black", "Lucy", 40, 3000], [0001, "01/01/2001", "Verdi", "Nico", 36, 4500], [0001, "01/01/2001", "Smith", "Mark", 40, 3900]] assert is_equal(result_1, cross_product(table_with_one_row, EMPLOYEES)) result_2 = [["Surname", "FirstName", "Age", "Salary", "ID Number", "Date of Birth"], ["Smith", "Mary", 25, 2000, 0001, "01/01/2001"], ["Black", "Lucy", 40, 3000, 0001, "01/01/2001"], ["Verdi", "Nico", 36, 4500, 0001, "01/01/2001"], ["Smith", "Mark", 40, 3900, 0001, "01/01/2001"]] assert is_equal(result_2, cross_product(EMPLOYEES, table_with_one_row)) result_3 = [["ID Number", "Date of Birth", "ID Number", "Date of Birth"], [0001, "01/01/2001", 0001, "01/01/2001"]] assert is_equal(result_3, cross_product(table_with_one_row, table_with_one_row))
def cross_product_error(): """ Tests when a list is empty. """ assert cross_product(R1,R_empty) == True