예제 #1
0
def test_swap_by_newest():
    item_a = Decor(age="Vintage")
    item_b = Electronics(age="New")
    item_c = Decor(age="New")
    tai = Vendor(
        inventory=[item_a, item_b, item_c]
    )

    item_d = Clothing(age="Vintage")
    item_e = Decor(age="New")
    item_f = Clothing(age="New")
    jesse = Vendor(
        inventory=[item_d, item_e, item_f]
    )

    result = tai.swap_by_newest(
        other=jesse,
        my_priority="Clothing",
        their_priority="Decor"
    )

    assert result is True
    assert len(tai.inventory) == 3
    assert len(jesse.inventory) == 3
    assert item_c not in tai.inventory
    assert item_f in tai.inventory
    assert item_f not in jesse.inventory
    assert item_c in jesse.inventory
예제 #2
0
def test_swap_by_newest_returns_false_with_empty_inventory():
    johannes = Vendor()

    live = Vendor()

    result = johannes.swap_by_newest(other=live)

    assert result is False
예제 #3
0
def test_swap_by_newest_with_duplicates():
    item_a = Clothing(age=2)
    item_d = Clothing(age=2)
    tai = Vendor(inventory=[item_a])
    ta = Vendor(inventory=[item_d])
    is_swap = tai.swap_by_newest(ta)

    assert item_a in ta.inventory
    assert is_swap is not False
예제 #4
0
def test_swap_by_newest_returns_false():
    tai = Vendor(inventory=[])

    item_d = Clothing(age=2)
    item_e = Decor()
    item_f = Clothing(age=5)
    jesse = Vendor(inventory=[item_d, item_e, item_f])

    result = tai.swap_by_newest(jesse)

    assert result is False
예제 #5
0
def test_swap_by_newest():
    item_a = Item(age=2)
    item_b = Item(age=4)
    tai = Vendor(inventory=[item_a, item_b]) 

    item_d = Item(age=2)
    item_e = Item(age=4)
    jesse = Vendor(inventory=[item_d, item_e])   
    result = tai.swap_by_newest(jesse)

    assert result is True
예제 #6
0
def test_swap_by_newest_from_my_empty_returns_false():
    fatimah = Vendor(inventory=[])

    item_d = Item(age=1)
    item_e = Item(age=5)
    jolie = Vendor(inventory=[item_d, item_e])

    result = fatimah.swap_by_newest(jolie)

    assert len(fatimah.inventory) is 0
    assert len(jolie.inventory) is 2
    assert result is False
예제 #7
0
def test_swap_by_newest_no_matches_is_none():
    item_a = Decor(age=2.0)
    item_b = Decor(age=1.0)
    item_c = Decor(age=4.0)
    item_d = Decor(age=8.0)

    tai = Vendor(inventory=[item_a, item_b, item_c])
    ta = Vendor(inventory=[item_d])
    is_swap = tai.swap_by_newest(ta)

    assert is_swap is not False
    assert item_d in tai.inventory
    assert item_b in ta.inventory
    assert item_a not in ta.inventory
예제 #8
0
def test_swap_by_newest_from_their_empty_returns_false():
    item_a = Item(age=3)
    item_b = Item(age=1)
    item_c = Item(age=2)
    fatimah = Vendor(inventory=[item_a, item_b, item_c])

    jolie = Vendor(inventory=[])

    nobodys_item = Item(age=3)

    result = fatimah.swap_by_newest(jolie, item_b, nobodys_item)

    assert len(fatimah.inventory) is 3
    assert len(jolie.inventory) is 0
    assert result is False
예제 #9
0
def test_swap_by_newest_from_my_empty_returns_false():
    fatimah = Vendor(inventory=[])

    item_d = Item(age=4)
    item_e = Item(age=5)
    item_f = Item(age=2)
    jolie = Vendor(inventory=[item_d, item_e, item_f])

    nobodys_item = Item(age=3)

    result = fatimah.swap_by_newest(jolie, nobodys_item, item_f)

    assert len(fatimah.inventory) is 0
    assert len(jolie.inventory) is 3
    assert result is False
def test_swap_by_edge_no_match_is_false():
    tai = Vendor(inventory=[])

    item_a = Clothing(edge=2.0)
    item_b = Decor(edge=3.0)
    item_c = Clothing(edge=3.0)
    jesse = Vendor(inventory=[item_a, item_b, item_c])

    result = tai.swap_by_newest(other=jesse,
                                my_priority="Clothing",
                                their_priority="Decor")

    assert result is False
    assert len(tai.inventory) is 0
    assert len(jesse.inventory) is 3
    assert item_a in jesse.inventory
    assert item_b in jesse.inventory
    assert item_c in jesse.inventory
예제 #11
0
def test_swap_by_newest_no_other_match():
    item_a = Clothing(age=5.0)
    item_b = Decor(age=2.0)
    item_c = Clothing(age=1.0)
    tai = Vendor(inventory=[item_a, item_b, item_c])

    jesse = Vendor(inventory=[])

    result = tai.swap_by_newest(other=jesse,
                                my_priority="Decor",
                                their_priority="Clothing")

    assert result is False
    assert len(tai.inventory) == 3
    assert len(jesse.inventory) == 0
    assert item_a in tai.inventory
    assert item_b in tai.inventory
    assert item_c in tai.inventory
예제 #12
0
def test_swap_best_by_category_no_other_match():
    item_a = Clothing(condition=2.0, age=8.0)
    item_b = Decor(condition=4.0, age=3.0)
    item_c = Clothing(condition=4.0, age=3.0)
    tai = Vendor(inventory=[item_a, item_b, item_c])

    jesse = Vendor(inventory=[])

    result = tai.swap_by_newest(other=jesse,
                                my_priority="Decor",
                                their_priority="Clothing")

    assert result is False
    assert len(tai.inventory) is 3
    assert len(jesse.inventory) is 0
    assert item_a in tai.inventory
    assert item_b in tai.inventory
    assert item_c in tai.inventory
예제 #13
0
def test_swap_by_newest():
    item_a = Decor(age=2)
    item_b = Electronics(age=4)
    item_c = Decor(age=4)
    tai = Vendor(inventory=[item_a, item_b, item_c])

    item_d = Clothing(age=2)
    item_e = Decor(age=4)
    item_f = Clothing(age=4)
    jesse = Vendor(inventory=[item_d, item_e, item_f])

    result = tai.swap_by_newest(other=jesse, )

    assert result is True
    assert len(tai.inventory) is 3
    assert len(jesse.inventory) is 3
    assert item_a not in tai.inventory
    assert item_d in tai.inventory
    assert item_d not in jesse.inventory
    assert item_a in jesse.inventory
예제 #14
0
def test_swap_by_newest():
    item_a = Decor(age=2)
    item_b = Electronics(age=7)
    item_c = Clothing(age=0.5)
    johannes = Vendor(inventory=[item_a, item_b, item_c])

    item_d = Electronics(age=10)
    item_e = Decor(age=17)
    item_f = Electronics(age=1)
    live = Vendor(inventory=[item_d, item_e, item_f])

    result = johannes.swap_by_newest(other=live)

    assert result is True
    assert len(johannes.inventory) is 3
    assert len(live.inventory) is 3
    assert item_c not in johannes.inventory
    assert item_f in johannes.inventory
    assert item_f not in live.inventory
    assert item_c in live.inventory
예제 #15
0
def test_swap_by_newest_swaps_first_item_when_all_items_are_same_age():
    item_a = Clothing(age=5)
    item_b = Decor(age=5)
    item_c = Electronics(age=5)
    johannes = Vendor(inventory=[item_a, item_b, item_c])

    item_d = Electronics(age=5)
    item_e = Decor(age=5)
    item_f = Clothing(age=5)
    live = Vendor(inventory=[item_d, item_e, item_f])

    result = johannes.swap_by_newest(other=live)

    assert result is True
    assert len(johannes.inventory) is 3
    assert len(live.inventory) is 3
    assert item_a not in johannes.inventory
    assert item_d in johannes.inventory
    assert item_d not in live.inventory
    assert item_a in live.inventory
예제 #16
0
def test_swap_by_newest_works_with_really_old_items():
    item_a = Clothing(age=3857327832)
    item_b = Decor(age=3758239357346849)
    item_c = Electronics(age=73728834859649327)
    johannes = Vendor(inventory=[item_a, item_b, item_c])

    item_d = Electronics(age=863993285383268)
    item_e = Decor(age=869393864386548438)
    item_f = Clothing(age=94639489)
    live = Vendor(inventory=[item_d, item_e, item_f])

    result = johannes.swap_by_newest(other=live)

    assert result is True
    assert len(johannes.inventory) is 3
    assert len(live.inventory) is 3
    assert item_a not in johannes.inventory
    assert item_f in johannes.inventory
    assert item_f not in live.inventory
    assert item_a in live.inventory
예제 #17
0
def test_swap_by_newest_returns_true():
    item_a = Item(age=1)
    item_b = Item(age=2)
    item_c = Item(age=3)
    fatimah = Vendor(inventory=[item_a, item_b, item_c])

    item_d = Item(age=1)
    item_e = Item(age=5)
    jolie = Vendor(inventory=[item_d, item_e])

    result = fatimah.swap_by_newest(jolie)

    assert len(fatimah.inventory) is 3
    assert item_a not in fatimah.inventory
    assert item_b in fatimah.inventory
    assert item_c in fatimah.inventory
    assert item_d in fatimah.inventory
    assert len(jolie.inventory) is 2
    assert item_d not in jolie.inventory
    assert item_e in jolie.inventory
    assert item_a in jolie.inventory
    assert result is True
def test_swap_by_edge():
    item_a = Decor(edge=2.0)
    item_b = Electronics(edge=4.0)
    item_c = Decor(edge=4.0)
    tai = Vendor(inventory=[item_a, item_b, item_c])

    item_d = Clothing(edge=2.0)
    item_e = Decor(edge=4.0)
    item_f = Clothing(edge=4.0)
    jesse = Vendor(inventory=[item_d, item_e, item_f])

    result = tai.swap_by_newest(other=jesse,
                                my_priority="Clothing",
                                their_priority="Decor")

    assert result is True
    assert len(tai.inventory) is 3
    assert len(jesse.inventory) is 3
    assert item_a not in tai.inventory
    assert item_d in tai.inventory
    assert item_d not in jesse.inventory
    assert item_a in jesse.inventory
예제 #19
0
def test_swap_newest():
    item_a = Decor(condition=2.0, age=8.0)
    item_b = Electronics(condition=4.0, age=3.0)
    item_c = Decor(condition=4.0, age=3.0)
    tai = Vendor(inventory=[item_a, item_b, item_c])

    item_d = Clothing(condition=2.0, age=8.0)
    item_e = Decor(condition=4.0, age=3.0)
    item_f = Clothing(condition=4.0, age=3.0)
    jesse = Vendor(inventory=[item_d, item_e, item_f])

    result = tai.swap_by_newest(other=jesse,
                                my_priority="Clothing",
                                their_priority="Decor")

    assert result is True
    assert len(tai.inventory) is 3
    assert len(jesse.inventory) is 3
    assert item_c not in tai.inventory
    assert item_f in tai.inventory
    assert item_f not in jesse.inventory
    assert item_c in jesse.inventory