feat(vida): ritmo também define a sensibilidade dos sensores
O servidor manda "ritmo calmo|normal|agitado" ao celular junto com o humor, e o rosto ajusta limiares e quantos estímulos precisa: - calmo: limiares 50% mais altos, 3 sustos seguidos para reagir, o dobro de sons e 4 movimentos para acordar, 3 disparos do PIR em 2 min; - normal: reage a barulho alto e movimento forte, 2 movimentos ou os sons configurados para acordar; - agitado: limiares 40% mais baixos, reage a qualquer som ou movimento (com reações variadas) e acorda no primeiro estímulo. A madrugada silenciosa continua valendo por cima. Com o modo vida desligado o celular volta ao "normal" (só os Ajustes). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -80,6 +80,22 @@ class VidaTest(unittest.TestCase):
|
||||
self.assertNotEqual(self.v.agir(noite + 180), 'dormir')
|
||||
self.assertEqual(self.v.agir(noite + 180 + 11 * 60), 'dormir')
|
||||
|
||||
def test_ritmo_vira_sensibilidade(self):
|
||||
self.v.configurar({'ritmo': 'calmo'})
|
||||
self.assertIn('ritmo calmo', self.ordens)
|
||||
self.assertFalse(self.v.pir_acorda(DIA)) # calmo: 3 disparos do PIR em 2 min
|
||||
self.assertFalse(self.v.pir_acorda(DIA + 30))
|
||||
self.assertTrue(self.v.pir_acorda(DIA + 60))
|
||||
self.assertFalse(self.v.pir_acorda(DIA + 400)) # os antigos expiraram
|
||||
self.v.configurar({'ritmo': 'agitado'})
|
||||
self.assertTrue(self.v.pir_acorda(DIA + 500)) # agitado: um basta
|
||||
self.ordens.clear()
|
||||
self.v.tick(DIA + 505)
|
||||
self.assertIn('ritmo agitado', self.ordens) # reenviado junto com o humor
|
||||
self.v.configurar({'ligado': False})
|
||||
self.assertIn('ritmo normal', self.ordens)
|
||||
self.assertTrue(self.v.pir_acorda(DIA + 600)) # desligado: comportamento de sempre
|
||||
|
||||
def test_horario_da_madrugada(self):
|
||||
from controle_pc import madrugada
|
||||
h = lambda hora: time.mktime((2026, 10, 6, hora, 10, 0, 0, 0, -1))
|
||||
|
||||
Reference in New Issue
Block a user