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); } } }
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()); }