Esempio n. 1
0
        public void Interpret(Acorde acorde)
        {
            Regex reg = new Regex(expQuinta);

            if (reg.IsMatch(acorde.Nome))
            {
                acorde.AddIntervalo(TipoIntervalo.QUINTA_JUSTA);
                acorde.TriadeFormadora = ModoDoAcorde.NaoDefinido;
                return;
            }

            reg = new Regex(expMenor);
            if (reg.IsMatch(acorde.Nome))
            {
                acorde.AddIntervalos(new List <TipoIntervalo> {
                    TipoIntervalo.TERCA_MENOR, TipoIntervalo.QUINTA_JUSTA
                });
                acorde.TriadeFormadora = ModoDoAcorde.PerfeitoMenor;
                return;
            }

            reg = new Regex(expMaior);
            if (reg.IsMatch(acorde.Nome))
            {
                acorde.AddIntervalos(new List <TipoIntervalo> {
                    TipoIntervalo.TERCA_MAIOR, TipoIntervalo.QUINTA_JUSTA
                });
                acorde.TriadeFormadora = ModoDoAcorde.PerfeitoMaior;
                return;
            }

            throw new ExpressaoInvalidaException("Modo do acorde não encontrado");
        }
 public void Interpret(Acorde acorde)
 {
     if (Test(acorde.Nome))
     {
         foreach (var intervalo in Intervalos)
         {
             acorde.AddIntervalo(intervalo);
         }
     }
 }
Esempio n. 3
0
        public void GetNotas_Deve_Retornar_Notas_Dos_Acordes(TipoIntervalo intervalo, TipoNota nota)
        {
            Acorde acorde = new Acorde
            {
                Tonica = TipoNota.DO
            };

            acorde.AddIntervalo(intervalo);
            Assert.Contains(nota, acorde.GetNotas());
        }