Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Loading…

CV e Tarefa do ArCondicionado #18

Closed
wants to merge 3 commits into from

2 participants

@lucascarvalho

No description provided.

Lucas Carvalho added some commits
Lucas Carvalho Fill the cv.mkd with my personal information. 85be351
Lucas Carvalho Initial import of air conditioning task. 16fe105
Lucas Carvalho Small fix turnning the compressor on.
When the compressor starts to work, the system must add more 0.5
cents to the 'consume' attribute. Once this is the cost to turn
it on and start cooling the environment.
f42bee9
@fsouza fsouza closed this
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Commits on Sep 28, 2011
  1. Fill the cv.mkd with my personal information.

    Lucas Carvalho authored
  2. Initial import of air conditioning task.

    Lucas Carvalho authored
Commits on Sep 30, 2011
  1. Small fix turnning the compressor on.

    Lucas Carvalho authored
    When the compressor starts to work, the system must add more 0.5
    cents to the 'consume' attribute. Once this is the cost to turn
    it on and start cooling the environment.
This page is out of date. Refresh to see the latest.
View
5 Makefile
@@ -0,0 +1,5 @@
+make:
+ python arcondicionado.py
+
+test:
+ python -m unittest test
View
11 README-ArCondicionado.txt
@@ -0,0 +1,11 @@
+Configurar:
+-----------
+./configure
+
+Executar:
+---------
+make
+
+Tests:
+------
+make test
View
61 arcondicionado.py
@@ -0,0 +1,61 @@
+# -*- coding: utf-8 -*-
+#!/usr/bin/python
+
+
+class ArCondicionado(object):
+
+ consumo = 0
+ status = False
+ status_anterior = False
+
+ def reduz_um_grau(self):
+ """
+ Reduz um grau da temperatura atual.
+ O custo para reduzir um grau é R$ 0.10.
+ """
+ self.temperatura_atual -= 1
+ # Se o status_anterior é False e o status é True
+ # Significa que o compressor foi ligado.
+ if not self.status_anterior and self.status:
+ self.consumo += 0.5
+ self.consumo += 0.1
+
+ def refrigera(self, temp_atual, temp_desejada, tempo_duracao):
+ """
+ Simula a refrigeraçao o ambiente.
+ """
+ self.temperatura_atual = temp_atual
+ self.temperatura_desejada = temp_desejada
+ while tempo_duracao:
+ if self.checa_status():
+ self.reduz_um_grau()
+ tempo_duracao -= 1
+ self.temperatura_atual += 0.5
+ return (self.consumo, self.temperatura_atual)
+
+ def checa_status(self):
+ """
+ Retorna True, caso seja necessário resfriar um grau.
+ Caso contrário, retorna False.
+ """
+ self.status_anterior = self.status
+ if self.temperatura_atual <= self.temperatura_desejada:
+ self.status = False
+ return self.status
+
+ if self.temperatura_atual >= self.temperatura_desejada + 2:
+ self.status = True
+
+ return self.status
+
+
+if __name__ == '__main__':
+ print "%s-- ACME Ar Condicionado --" % (' ' * 10)
+ print "=" * 45
+ print "Temperatura do Ambiente: 30 C"
+ print " Temperatura desejada: 20 C"
+ print " Tempo de duracao: 360 minutos"
+ consumo, temperatura_atual = ArCondicionado().refrigera(30, 20, 360)
+ print "=" * 45
+ print " Consumo (R$): %s" % float(consumo)
+ print "Temperatura atual: %s C" % float(temperatura_atual)
View
1  configure
@@ -0,0 +1 @@
+
View
48 cv.mkd
@@ -1,9 +1,53 @@
Vaga
====
-[Preencha aqui a vaga que você pretende]
+Qualquer vaga que meu perfil se encaixe.
CV
==
-[Preencha aqui o seu cv]
+FORMAÇÃO:
+----------
+
+> Ensino Médio, CEFET- Campos, conclusão em 2004.
+> Curso Técnico em Programação. CEFET – Campos, conclusão em 2004.
+> Graduado em Ciência da Computação. UCAM, conclusão em 2009.
+
+
+EXPERIÊNCIA PROFISSIONAL:
+-------------------------
+
+> 2004-2005 – GTI – Gerência de Tecnologia da Informação, CEFET - Campos
+> Cargo: Bolsista.
+> Principais atividades: Administração de Sistema GNU/Linux e Roteadores, programador em PHP.
+> Reponsável pelo desenvolvimento e implantação de um Sistema de Atendimento ao Cliente que é usado até hoje por todo o CEFET – Campos.
+
+> 2005-2007 – NSI – Núcleo de Sistema de Informação, CEFET - Campos
+> Cargo: Bolsista.
+> Principais atividades: Desenvolvedor de Sistema, Administrador de Sistema GNU/Linux.
+> - Desenvolvedor do Argus, um projeto da Petrobras para coletar informação de turbos compressores através de sensores. Tecnologias usadas: LabView, C, Postgres, Oracle e Shell Script.
+> - Desenvolvedor do projeto da SETEC, o projeto inicialmente consistia em uma biblioteca digital desenvolvida usando Plone/Zope que será usada por todos os orgãos públicos do país.
+
+> 2007-2011 – Nexedi SA, Lille - França
+> Cargo: Desenvolvedor
+> Principal atividades: Desenvolvedor e Adminstrador de Sistemas GNU/Linux.
+> - Desenvolvedor do core do ERP5 (Zope, Python e MySQL).
+> - Desenvolvedor do projeto TioLive e atual responsável.
+> - Administrador de sistema dos servidores do TioLive.
+> - Desenvolvedor de uma ferramenta para controle de acesso a instâncias do Zope.
+> - Integrante do projeto SlapOS e VIFIB.
+> - Desenvolvedor/Contribuidor para o projeto Buildout.
+
+QUALIFICAÇÕES E ATIVIDADES PROFISSIONAIS:
+-----------------------------------------
+
+> Sólidos conhecimentos em Linux, Python, ZOPE, ERP5, MySQL, HTML, CSS, JavaScript, Testes (unitário, aceitação, mocks, (Z)Selenium)
+> Entusiasta de Software Livre.
+> Inglês – Avançado (autodidata)
+> Experiência no exterior – Residiu em Lille - França durante alguns meses (2008 e 2011).
+> Experiência para trabalhar em home office durante 4 anos.
+
+INFORMAÇÕES ADICIONAIS:
+-----------------------
+
+> Disponibilidade total para mudança de cidade, estado ou país.
View
81 test.py
@@ -0,0 +1,81 @@
+# -*- coding: utf-8 -*-
+#!/usr/bin/python
+
+
+import unittest
+from arcondicionado import ArCondicionado
+
+
+class TestArCondicionado(unittest.TestCase):
+ """
+ Classe deve implementar todos os tests unitários para a classe
+ ArCondicionado.
+ """
+
+ def setUp(self):
+ self.temperatura_atual = 30
+ self.temperatura_desejada = 20
+ self.tempo_duracao = 360
+ self.arcondicionado = ArCondicionado()
+
+ def test_valores_padrao(self):
+ """ Checa os valores padrao da classe """
+ self.assertEquals(0, self.arcondicionado.consumo)
+ self.assertFalse(self.arcondicionado.status)
+ self.assertFalse(self.arcondicionado.status_anterior)
+
+ def test_metodo_reduz_um_grau(self):
+ """
+ O metodo reduz um grau deve diminuir a temperatura em 1 grau
+ e adicionar 0.10 centavos ao consumo.
+ """
+ self.arcondicionado.temperatura_atual = self.temperatura_atual
+ self.arcondicionado.temperatura_desejada = self.temperatura_desejada
+ self.arcondicionado.checa_status()
+ self.arcondicionado.reduz_um_grau()
+ self.assertEquals(self.temperatura_atual - 1,
+ self.arcondicionado.temperatura_atual)
+ self.assertEquals(0.6, self.arcondicionado.consumo)
+
+ def test_metodo_refrigera_duracao_zero(self):
+ """ Se a duraçao é Zero, nada a fazer. """
+ self.arcondicionado.refrigera(self.temperatura_atual,
+ self.temperatura_desejada, 0)
+ self.assertEquals(self.temperatura_atual,
+ self.arcondicionado.temperatura_atual)
+ self.assertEquals(0, self.arcondicionado.consumo)
+
+ def test_metodo_refrigera_duracao_esperada(self):
+ """ Verifica o consumo e temperatura atual """
+ self.arcondicionado.refrigera(self.temperatura_atual,
+ self.temperatura_desejada,
+ self.tempo_duracao)
+ self.assertEquals(22.0,
+ self.arcondicionado.temperatura_atual)
+ self.assertAlmostEquals(40.3, self.arcondicionado.consumo)
+
+ def test_metodo_refrigera_metade_duracao(self):
+ """
+ Verifica o consumo e a temperatura atual para a metade da duraçao
+ esperada.
+ """
+ self.arcondicionado.refrigera(self.temperatura_atual,
+ self.temperatura_desejada,
+ self.tempo_duracao / 2)
+ self.assertEquals(20.0,
+ self.arcondicionado.temperatura_atual)
+ # 19.8 - o delta baseado no calculo de tempo 360
+ self.assertAlmostEquals(40.3 - 19.8 , self.arcondicionado.consumo)
+
+ def test_metodo_regfrigera_dobro_duracao(self):
+ """
+ Verifica o consumo e a temperatura atual para o dobro da duraçao
+ esperada.
+ """
+ self.arcondicionado.refrigera(self.temperatura_atual,
+ self.temperatura_desejada,
+ self.tempo_duracao * 2)
+ self.assertEquals(22.0,
+ self.arcondicionado.temperatura_atual)
+ # 40.5 - o delta baseado no calculo de tempo 360
+ self.assertAlmostEquals(40.3 + 40.5, self.arcondicionado.consumo)
Something went wrong with that request. Please try again.