Skip to content

Instantly share code, notes, and snippets.

@fzmaster
Created December 29, 2010 18:00
Show Gist options
  • Save fzmaster/758811 to your computer and use it in GitHub Desktop.
Save fzmaster/758811 to your computer and use it in GitHub Desktop.
Calcular o valor do ingresso do cinema dadas as condicoes pre estabelecidas
import unittest
from enum import Enum
class Cinema():
"""
Autor: fzmaster
Data: 28/12/2010
Problema: Movie Tickets
http://codingkata.org/katas/unit/movie-tickets
Calcular o valor do ingresso do cinema dadas as condicoes pre estabelecidas
"""
precoTicket = 0.00
pessoas = 0
precoTotal = 0.00
dias = Enum('DOM', 'SEG', 'TER', 'QUA', 'QUI', 'SEX', 'SAB')
dia = ''
def startPurchase(self, runtime, day, isParquet, is3D):
"""
Explicacao da funcao
"""
self.dia = day
if runtime > 120:
self.precoTicket += 1.50
if bool(is3D):
self.precoTicket += 3.00
if not bool(isParquet):
self.precoTicket += 2.00
if str(self.dia) == str(self.dias[4]):
self.precoTicket -= 2.00
def addTicket(self, age, isStudent):
precoPadrao = 0.00
if bool(isStudent):
precoPadrao = 8.00
else:
precoPadrao = 11.00
if age >= 65:
precoPadrao = 6.00
elif age <= 13:
precoPadrao = 5.50
self.pessoas +=1
self.precoTotal += precoPadrao + self.precoTicket
def finishPurchase(self,):
if self.pessoas >= 20 and str(self.dia) == str(self.dias[4]):
self.precoTotal += self.pessoas*2.00
return self.precoTotal
class MovieTestCase(unittest.TestCase):
def test_movie1(self):
compra = Cinema()
compra.startPurchase(130,'TER', False, True)
compra.addTicket(14,True)
compra.addTicket(30,False)
assert compra.finishPurchase() == 32.00
if __name__ == '__main__':
unittest.main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment