<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=SeminarHowToProgramIt%2FPipe%2Fvendingmachine.py</id>
	<title>SeminarHowToProgramIt/Pipe/vendingmachine.py - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=SeminarHowToProgramIt%2FPipe%2Fvendingmachine.py"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=SeminarHowToProgramIt/Pipe/vendingmachine.py&amp;action=history"/>
	<updated>2026-05-14T20:25:49Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=SeminarHowToProgramIt/Pipe/vendingmachine.py&amp;diff=38995&amp;oldid=prev</id>
		<title>imported&gt;Unknown at 05:28, 7 February 2021</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=SeminarHowToProgramIt/Pipe/vendingmachine.py&amp;diff=38995&amp;oldid=prev"/>
		<updated>2021-02-07T05:28:01Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt; &lt;br /&gt;
 #vendingmachine.py&lt;br /&gt;
 &lt;br /&gt;
 import unittest&lt;br /&gt;
 &lt;br /&gt;
 class VendingMachine:&lt;br /&gt;
     menu = {&amp;#039;white&amp;#039;:100, &amp;#039;black&amp;#039;:100, &amp;#039;sugarwhite&amp;#039;:100, &amp;#039;sugarblack&amp;#039;:100,&lt;br /&gt;
             &amp;#039;cocoa&amp;#039;:200}&lt;br /&gt;
     def __init__(self):&lt;br /&gt;
         self.reset()&lt;br /&gt;
     def reset(self):&lt;br /&gt;
         self.account=0&lt;br /&gt;
         self.button=&amp;#039;&amp;#039;&lt;br /&gt;
         self.dispenser=&amp;#039;empty&amp;#039;&lt;br /&gt;
     def putCoin(self, aMoney):&lt;br /&gt;
         self.account += aMoney&lt;br /&gt;
     def getCurrentMoney(self):&lt;br /&gt;
         return self.account&lt;br /&gt;
     def pushButton(self, aButton):&lt;br /&gt;
         self.button=aButton&lt;br /&gt;
         price = self.menu[aButton]&lt;br /&gt;
         if self.account &amp;amp;gt;= price:&lt;br /&gt;
             self.dispenser=aButton&lt;br /&gt;
             self.account -=price&lt;br /&gt;
 &lt;br /&gt;
     def getCurrentDispenser(self):&lt;br /&gt;
         return self.dispenser&lt;br /&gt;
     def getCurrentButton(self):&lt;br /&gt;
         return self.button&lt;br /&gt;
     def verifyCoin(self, aMoney):&lt;br /&gt;
         return self.account == aMoney&lt;br /&gt;
     def verifyButton(self, aButton):&lt;br /&gt;
         return self.button == aButton&lt;br /&gt;
 &lt;br /&gt;
     def rejectLever(self):&lt;br /&gt;
         returnMoney = self.account&lt;br /&gt;
         self.account =0&lt;br /&gt;
         return returnMoney&lt;br /&gt;
 &lt;br /&gt;
     def verifyDispenser(self, aKind):&lt;br /&gt;
         return self.dispenser == aKind&lt;br /&gt;
 &lt;br /&gt;
 class TestVendingMachine(unittest.TestCase):&lt;br /&gt;
     def testPutCoin(self):&lt;br /&gt;
         vm = VendingMachine()&lt;br /&gt;
         vm.putCoin(10)&lt;br /&gt;
         expected = 10&lt;br /&gt;
         self.assertEquals(expected, vm.getCurrentMoney())&lt;br /&gt;
 &lt;br /&gt;
     def testPushButtonTrue(self):&lt;br /&gt;
         vm = VendingMachine()&lt;br /&gt;
         vm.putCoin(100)&lt;br /&gt;
         vm.pushButton(&amp;#039;white&amp;#039;)&lt;br /&gt;
         expected = &amp;#039;white&amp;#039;&lt;br /&gt;
         self.assertEquals(expected, vm.getCurrentButton())&lt;br /&gt;
         expected = &amp;#039;white&amp;#039;&lt;br /&gt;
         self.assertEquals(expected, vm.getCurrentDispenser())&lt;br /&gt;
 &lt;br /&gt;
     def testPushButtonFalse(self):&lt;br /&gt;
         vm = VendingMachine()&lt;br /&gt;
         vm.putCoin(90)&lt;br /&gt;
         vm.pushButton(&amp;#039;white&amp;#039;)&lt;br /&gt;
         expected = &amp;#039;white&amp;#039;&lt;br /&gt;
         self.assertEquals(expected, vm.getCurrentButton())&lt;br /&gt;
         expected = &amp;#039;empty&amp;#039;&lt;br /&gt;
         self.assertEquals(expected, vm.getCurrentDispenser())&lt;br /&gt;
 &lt;br /&gt;
     def testRejectLever(self):&lt;br /&gt;
         vm = VendingMachine()&lt;br /&gt;
         vm.putCoin(500)&lt;br /&gt;
         returnMoney = vm.rejectLever()&lt;br /&gt;
         self.assertEquals(500, returnMoney)&lt;br /&gt;
         self.assertEquals(0, vm.getCurrentMoney())&lt;br /&gt;
 &lt;br /&gt;
     def testReset(self):&lt;br /&gt;
         vm = VendingMachine()&lt;br /&gt;
         vm.putCoin(500)&lt;br /&gt;
         vm.pushButton(&amp;#039;white&amp;#039;)&lt;br /&gt;
         vm.reset()&lt;br /&gt;
         self.assertEquals(0, vm.getCurrentMoney())&lt;br /&gt;
         self.assertEquals(&amp;#039;&amp;#039;, vm.getCurrentButton())&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 class TestVendingMachineVerification(unittest.TestCase):&lt;br /&gt;
     def testVerifyCoinFalse(self):&lt;br /&gt;
         vm = VendingMachine()&lt;br /&gt;
         vm.putCoin(50)&lt;br /&gt;
         expected = 0&lt;br /&gt;
         self.assertEquals(expected, vm.verifyCoin(100))&lt;br /&gt;
 &lt;br /&gt;
     def testVerifyButtonTrue(self):&lt;br /&gt;
         vm = VendingMachine()&lt;br /&gt;
         vm.pushButton(&amp;#039;white&amp;#039;)&lt;br /&gt;
         expected = 1&lt;br /&gt;
         self.assertEquals(expected, vm.verifyButton(&amp;#039;white&amp;#039;))&lt;br /&gt;
 &lt;br /&gt;
     def testVerifyButton(self):&lt;br /&gt;
         vm = VendingMachine()&lt;br /&gt;
         vm.pushButton(&amp;#039;black&amp;#039;)&lt;br /&gt;
         expected = 0&lt;br /&gt;
         self.assertEquals(expected, vm.verifyButton(&amp;#039;white&amp;#039;))&lt;br /&gt;
 &lt;br /&gt;
     def testVerifyCoinTrue(self):&lt;br /&gt;
         vm = VendingMachine()&lt;br /&gt;
         vm.putCoin(100)&lt;br /&gt;
         expected = 1&lt;br /&gt;
         self.assertEquals(expected, vm.verifyCoin(100))&lt;br /&gt;
     &lt;br /&gt;
     def testVerifyDispenserTrue(self):&lt;br /&gt;
         vm = VendingMachine()&lt;br /&gt;
         vm.putCoin(100)&lt;br /&gt;
         vm.pushButton(&amp;#039;white&amp;#039;)&lt;br /&gt;
         expected = 1&lt;br /&gt;
         self.assertEquals(expected, vm.verifyDispenser(&amp;#039;white&amp;#039;))&lt;br /&gt;
 &lt;br /&gt;
     def testVerifyDispenserFalse(self):&lt;br /&gt;
         vm = VendingMachine()&lt;br /&gt;
         vm.putCoin(100)&lt;br /&gt;
         vm.pushButton(&amp;#039;white&amp;#039;)&lt;br /&gt;
         expected = 0&lt;br /&gt;
         self.assertEquals(expected, vm.verifyDispenser(&amp;#039;black&amp;#039;))&lt;br /&gt;
 &lt;br /&gt;
         &lt;br /&gt;
 if __name__==&amp;#039;__main__&amp;#039;:&lt;br /&gt;
     unittest.main()&lt;br /&gt;
 &lt;br /&gt;
 #실행예&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 Welcome to Vending Machine Simulator!&lt;br /&gt;
 Enter a command or type &amp;#039;help&amp;#039;&lt;br /&gt;
 : put 100&lt;br /&gt;
 : put 100&lt;br /&gt;
 : verify money 200&lt;br /&gt;
 1&lt;br /&gt;
 : verify money 220&lt;br /&gt;
 0&lt;br /&gt;
 : put 50&lt;br /&gt;
 : put 232&lt;br /&gt;
 &amp;quot;Console&amp;quot;, line 1: Unexpected money type&lt;br /&gt;
 : put 100&lt;br /&gt;
 : verify money 350&lt;br /&gt;
 1&lt;br /&gt;
 : verify money 400&lt;br /&gt;
 0&lt;br /&gt;
 : help&lt;br /&gt;
 &lt;br /&gt;
 Type &amp;#039;help &amp;amp;lt;topic&amp;amp;gt;&amp;#039; for info on:&lt;br /&gt;
 ================================&lt;br /&gt;
 help            quit            &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 push            put             include         &lt;br /&gt;
 &lt;br /&gt;
 : &lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;/div&gt;</summary>
		<author><name>imported&gt;Unknown</name></author>
	</entry>
</feed>