-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_left_join.py
More file actions
53 lines (37 loc) · 1.79 KB
/
test_left_join.py
File metadata and controls
53 lines (37 loc) · 1.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import pytest
from left_join.left_join import left_join, left_join_hash
def test_function_will_account_for_empty_left():
obj1 = {"a": "aa", "b": "bb", "c": "cc", "d": "dd", "e": "ee"}
actual = left_join({}, obj1)
expected = []
assert actual == expected
def test_function_will_account_for_empty_right():
obj1 = {"a": "aa", "b": "bb", "c": "cc", "d": "dd", "e": "ee"}
actual = left_join(obj1, {})
expected = [["a", "aa", None], ["b", "bb", None], ["c", "cc", None], ["d", "dd", None], ["e", "ee", None]]
assert actual == expected
def test_function_will_account_for_both_empty():
actual = left_join({}, {})
expected = []
assert actual == expected
def test_function_will_account_for_all_matching():
obj1 = {"a": "aa", "b": "bb", "c": "cc", "d": "dd", "e": "ee"}
obj2 = {"a": "aa", "b": "bb", "c": "cc", "d": "dd", "e": "ee"}
actual = left_join(obj1, obj2)
expected = [["a", "aa", "aa"], ["b", "bb", "bb"], ["c", "cc", "cc"], ["d", "dd", "dd"], ["e", "ee", "ee"]]
assert actual == expected
def test_function_will_account_for_left_side_larger():
obj1 = {"a": "aa", "b": "bb", "c": "cc", "d": "dd", "e": "ee"}
obj2 = {"c": "cc", "v": "vv", "e": "ee"}
actual = left_join(obj1, obj2)
expected = [["a", "aa", None], ["b", "bb", None], ["c", "cc", "cc"], ["d", "dd", None], ["e", "ee", "ee"]]
assert actual == expected
def test_function_will_account_for_right_side_larger():
obj1 = {"c": "cc", "v": "vv", "e": "ee"}
obj2 = {"a": "aa", "b": "bb", "c": "cc", "d": "dd", "e": "ee"}
actual = left_join(obj1, obj2)
expected = [["c", "cc", "cc"], ["v", "vv", None], ["e", "ee", "ee"]]
assert actual == expected
# ------------------------------------------------------------------------------
# Left Join using our custom hashmap
# wip