def test_millionaire_clone_gun_wo_bow(item_set, cosmic_status,
                                      expected_clone_gun_wo_cosmic,
                                      expected_millionaire):
    run_state = RunState()
    run_state.cosmic_stepper = FakeStepper(cosmic_status)
    run_state.update_millionaire(State(), Inventory(), item_set)

    assert run_state.clone_gun_wo_cosmic == expected_clone_gun_wo_cosmic

    is_millionaire = Label.MILLIONAIRE in run_state.run_label._set
    assert is_millionaire == expected_millionaire
def test_millionaire_(
    money_shop_total,
    win_state,
    money,
    collected_money_total,
    clone_gun_wo_bow,
    expected_millionaire,
):
    run_state = RunState()
    run_state.clone_gun_wo_cosmic = clone_gun_wo_bow
    if clone_gun_wo_bow:
        # This would have been added on a previous update
        run_state.run_label.add(Label.MILLIONAIRE)

    game_state = State(money_shop_total=money_shop_total, win_state=win_state)
    inventory = Inventory(money=money,
                          collected_money_total=collected_money_total)
    item_set = set()
    run_state.update_millionaire(game_state, inventory, item_set)

    is_millionaire = Label.MILLIONAIRE in run_state.run_label._set
    assert is_millionaire == expected_millionaire