def test_handle_decimals(): assert split_bill( [{"price": 100, "quantity": 1}], ["*****@*****.**", "*****@*****.**", "*****@*****.**"], ) == { "*****@*****.**": 34, "*****@*****.**": 33, "*****@*****.**": 33, } assert split_bill( [{"price": 200, "quantity": 1}], ["*****@*****.**", "*****@*****.**", "*****@*****.**"], ) == { "*****@*****.**": 67, "*****@*****.**": 67, "*****@*****.**": 66, }
def test_handle_multiple_items(): assert split_bill( [ {"price": 200, "quantity": 4}, {"price": 300, "quantity": 3}, {"price": 532, "quantity": 33}, ], ["*****@*****.**", "*****@*****.**", "*****@*****.**"], ) == { "*****@*****.**": 6419, "*****@*****.**": 6419, "*****@*****.**": 6418, }
def test_empty_emails(): assert ( split_bill([{"price": 20, "quantity": 2}, {"price": 300, "quantity": 1}], []) == {} )
def test_empty_lists(): assert split_bill([], []) == {}
def test_empty_items(): assert split_bill([], ["*****@*****.**"]) == {"*****@*****.**": 0}