def main(): print('===order a cup of coffee===') order_a_coffee(VendingMachine(3)) print('===order two cup of coffee===') order_two_coffee(VendingMachine(3)) print('===order a cup of coffee, but money is not correct===') order_coffe_but_not_correct_money(VendingMachine(3, 20)) print('===eject money===') eject_money(VendingMachine(3)) print('===eject money failed===') eject_money_fail(VendingMachine(3))
def test_buy_product_returns_instance_when_valid(): machine = VendingMachine() machine.insert_coin(coins.Toonie()) machine.insert_coin(coins.Toonie()) result = machine.buy_product(products.Drink) assert isinstance(result, products.Drink)
def main(): SORT_DICTIONARY = { 'n': 'item_name', 'p': 'percent_sold', 's': 'stock_required' } vendingMachineFileNames = [ './REID_1F_20171004.json', './REID_2F_20171004.json', './REID_3F_20171004.json' ] vendingMachines = [] for fileName in vendingMachineFileNames: jsonFile = open(fileName, 'r') machineData = json.loads(jsonFile.read()) vendingMachines.append(VendingMachine(machineData)) vendingMachineMgr = VendingMachineMgr(vendingMachines, SORT_DICTIONARY) reportType = input( 'Would you like the (m)achine report or the (i)nventory report? ') if reportType == 'i': mainLoop(vendingMachineMgr, SORT_DICTIONARY) else: vendingMachineMgr.printInventory()
def vending_machine_gen(price_list, additional_drinks): vending_machine = VendingMachine(price_list) for d in additional_drinks: vending_machine.add_drink(d) return vending_machine
def test_get_balance_returns_sum_of_coins_minus_purchases(): machine = VendingMachine() machine.insert_coin(coins.Toonie()) machine.insert_coin(coins.Toonie()) machine.buy_product(products.Candy) assert machine.get_balance() == 85
def test_half_dollar_and_quarter(self): fsm = VendingMachine() events = [Coin.half_dollar, Coin.quarter] fsm.start() for event in events: fsm.handle_event(event) self.assertEqual([fsm.start_state, fsm.dispensing], fsm.history) self.assertEqual(fsm.change, 0)
def test_dime_and_quarter(self): fsm = VendingMachine() events = [Coin.dime, Coin.quarter] fsm.start() for event in events: fsm.handle_event(event) self.assertEqual([fsm.start_state, fsm.got_10, fsm.dispensing], fsm.history) self.assertEqual(fsm.change, 10)
def test_inserted_coins_are_appended_to_coin_list(): machine = VendingMachine() machine.insert_coin(coins.Loonie()) machine.insert_coin(coins.Toonie()) machine.insert_coin(coins.Quarter()) assert machine.inserted_coins == [ coins.Loonie(), coins.Toonie(), coins.Quarter() ]
def test_coin_less_product_not_change(self): one = 3 five = 0 ten = 0 product = 1 result = VendingMachine(one, five, ten, product) self.assertEqual(result['one'], 3) self.assertEqual(result['five'], 0) self.assertEqual(result['ten'], 0) self.assertEqual(result['status'], 1)
def test_not_product_not_change(self): one = 1 five = 1 ten = 1 product = 4 result = VendingMachine(one, five, ten, product) self.assertEqual(result['one'], 1) self.assertEqual(result['five'], 1) self.assertEqual(result['ten'], 1) self.assertEqual(result['status'], 1)
def test_coin_over_product_can_change_ten(self): one = 3 five = 0 ten = 2 product = 1 result = VendingMachine(one, five, ten, product) self.assertEqual(result['one'], 0) self.assertEqual(result['five'], 0) self.assertEqual(result['ten'], 1) self.assertEqual(result['status'], 0)
def main(): vending_machine = VendingMachine() vending_machine.dispense_product() print() vending_machine.insert_money_and_select_product(3, 'Pepsi') print() vending_machine.insert_money_and_select_product(3, 'Fanta') print() vending_machine.dispense_product()
def test_four_nickels_and_quarter(self): fsm = VendingMachine() events = [ Coin.nickel, Coin.nickel, Coin.nickel, Coin.nickel, Coin.quarter ] fsm.start() for event in events: fsm.handle_event(event) self.assertEqual([ fsm.start_state, fsm.got_5, fsm.got_10, fsm.got_15, fsm.got_20, fsm.dispensing ], fsm.history) self.assertEqual(fsm.change, 20)
def initialize_vending_machine(self): max_quantity = None cost_of_each_item = None for line in self.all_commands: if len(line) > 0 and (max_quantity is None or cost_of_each_item is None): values = list(map(lambda x: x.strip(), line.split(','))) match values[0]: case 'maxquantity': max_quantity = int(values[1]) case 'costofeachitem': cost_of_each_item = int(values[1]) case _: pass if max_quantity is not None and cost_of_each_item is not None: self.vending_machine = VendingMachine(max_quantity, cost_of_each_item) else: print('Unable to initialize vending machine') exit(0)
def main(): seleccion = [3, 1, 4] producto1 = Producto(1, "Botella de Agua", 5, 1.00) producto2 = Producto(2, "Coca Cola", 10, 1.50) producto3 = Producto(3, "Papas Fritas", 7, 0.50) producto4 = Producto(4, "Chifles", 11, 1.25) producto5 = Producto(5, "Granola", 15, 2.50) productos = [producto1, producto2, producto3, producto4, producto5] vm1 = VendingMachine("Maquina Generica") cargaProductos(vm1, productos) verProductosDisponibles(vm1) venta(vm1, seleccion, 20.00) verProductosDisponibles(vm1)
def main(): vm = VendingMachine() vm.add_product(Product("水", 100)) vm.add_product(Product("ビール", 350)) vm.add_product(Product("コーラ", 120)) for id, product in vm.products.items(): print("%d) %s : %d 円" % (id, product.name, product.price)) id = int(input("購入する商品の番号を選んでください >> ")) while(True): input_str = input("お金を入れてください(0で止まります) >> ") try: if(input_str == "0"): break currency = Currency(int(input_str)) except ValueError as f: print("10, 50, 100, 500, 1000のどれかを指定してください。 ") continue vm.insert_money(currency) vm.buy(id) vm.return_change() print(f'現在の売り上げは{vm.profit}円です。')
def test_compra_chocolate_com_50_cents(self): maquina = VendingMachine() maquina.comprar("chocolate", 0.50) |should| equal_to (False)
def scope_function(self): self.vm = VendingMachine() yield
def machine(): return VendingMachine()
try: action = int( input( "What action would you like to take? (Enter the number): ") ) if action < 1 or action > 5: print("Please enter a valid choice(1-5)") continue if action == 1: machine.refill() elif action == 2: machine.insert_coin() elif action == 3: machine.make_selection() elif action == 4: machine.cancel() elif action == 5: break except ValueError: print("Please enter a valid choice (1-4)") if __name__ == '__main__': vending_machine = VendingMachine() vending_machine.refill() input_action(vending_machine)
def test_get_balance_returns_sum_value_of_coins(): machine = VendingMachine() machine.insert_coin(coins.Quarter()) machine.insert_coin(coins.Loonie()) assert machine.get_balance() == 125
def test_buy_drink_with_insufficient_funds(): machine = VendingMachine() with pytest.raises(InsufficientFunds): machine.buy_product(products.Drink)
def test_maquina_criada(self): maquina = VendingMachine() maquina.produtos.has_key('coca') |should| equal_to (True) maquina.produtos.has_key('fandangos') |should| equal_to (True) maquina.produtos.has_key('chetoos') |should_not| equal_to (True)
def test_compra_coca_com_2_dolares(self): maquina = VendingMachine() maquina.comprar("coca",2.0) |should| equal_to(True) maquina.troco |should| equal_to (1)
def test_compra_coca_com_1_dolar(self): maquina = VendingMachine() maquina.comprar("coca", 1.0) |should| equal_to (True)
import os from flask import Flask, request from vending_machine import VendingMachine vm = VendingMachine() app = Flask(__name__) @app.route('/api/load_json', methods=['POST']) def load_json(): json_data = eval(request.json.get('json_data')) if vm.load_stock(json_data): return {"result": "success"} else: return {"result": "failed"} @app.route('/api/items', methods=['GET']) def get_items(): return {"items": vm.get_items()} @app.route('/api/insert_money', methods=['POST']) def insert_money(): print(request.json) money = request.json.get('money') if vm.insert_money(money): return {"result": "success"} else:
def setUp(self): self.machine = VendingMachine(0.5, 1.0, 0.65) pass
def test_maquina_tem_produto(self): maquina = VendingMachine() maquina.tem_produto("chocolate") |should| equal_to (False) maquina.tem_produto("coca") |should| equal_to (True)
action = " ".join(s[:3]) args = s[3:] try: self.actions[action](*args) except: print(f"Unknown command '{s}'") sys.exit(1) if __name__ == '__main__': exampleSnackbar = Snackbar("Python's Snackbar") exampleSnackbar.run() # create Vending Machines vm1 = VendingMachine("Food") vm2 = VendingMachine("Drink") # create Snacks s1 = Snack("Chips", 200, 1.00, vm1.getId()) s2 = Snack("Chocolate Bar", 200, 1.00, vm1.getId()) s3 = Snack("Pretzels", 200, 1.00, vm1.getId()) s4 = Snack("Soda", 200, 1.00, vm2.getId()) s5 = Snack("Water", 200, 1.00, vm2.getId()) # 1. Customer 1 buys 3 of snack 4. Print Customer 1 Cash on hand. Print quantity of snack 4. print("\n--#1-----------") print(f"{c1.getName()}'s initial cash: {c1.getCash()}") print(c1.buyTotal(s4, 3))
def test_maquina_tem_chiclete(self): maquina = VendingMachine() maquina.tem_produto("chiclete") |should| equal_to (False)