public void SetUp() { alphabet = new TestAlphabetClass(); alphabet2 = new TestAlphabetClass(); sym1 = new Symbol('a', "Ade", "Adenine"); sym2 = new Symbol('u', "Ura", "Uracil"); sym3 = new SymbolMeta('-', "GAP", "Gap"); }
public void TestAdd() { SymbolMeta sym = new SymbolMeta('X', "XXX", "Unknown"); Assert.AreEqual(0, sym.SymbolNumber); //sym.remove(new Symbol('a', "adenine")); sym.Add(new Symbol('a', "Ade", "Adenine")); sym.Add(new Symbol('u', "Ura", "Adenine")); Assert.AreEqual(2, sym.SymbolNumber); Assert.AreEqual("Adenine", sym[0].Name); Assert.AreEqual("Adenine", sym[1].Name); }
/** Tests the replacement of symbols within the symbol set */ public void TestReplace() { SymbolMeta sym = new SymbolMeta('X', "XXX", "Unknown"); Symbol sym1 = new Symbol('a', "Ade", "Adenine"); Symbol sym2 = new Symbol('u', "Ura", "Uracil"); Symbol sym3 = new Symbol('t', "Thy", "Thymine"); sym.Add(sym1); sym.Add(sym2); Assert.AreEqual(2, sym.SymbolNumber); sym.Replace(sym2, sym3); Assert.AreEqual(2, sym.SymbolNumber); Assert.AreEqual(sym3, sym[1]); }
/** Tests the removal of symbols from the symbol set */ public void TestRemove() { SymbolMeta sym = new SymbolMeta('X', "XXX", "Unknown"); Symbol sym1 = new Symbol('a', "Ade", "Adenine"); Symbol sym2 = new Symbol('u', "Ura", "Uracil"); sym.Remove(sym1); sym.Add(sym1); sym.Add(sym2); Assert.AreEqual(2, sym.SymbolNumber); sym.Remove(sym1); Assert.AreEqual(1, sym.SymbolNumber); Assert.AreEqual(sym2, sym[0]); }
/** Tests the comparision with a meta symbol */ public void TestEquals() { SymbolMeta sym = new SymbolMeta('X', "XXX", "Unknown"); Symbol sym2 = new Symbol('a', "Ade", "Adenine"); Symbol sym3 = new Symbol('u', "Ura", "Uracil"); Assert.AreEqual(true, sym.Equals(sym2)); Assert.AreEqual(true, sym2.Equals(sym)); sym.Add(sym2); Assert.AreEqual(true, sym.Equals(sym2)); Assert.AreEqual(true, sym2.Equals(sym)); Assert.AreEqual(false, sym.Equals(sym3)); Assert.AreEqual(false, sym3.Equals(sym)); sym.Add(sym3); Assert.AreEqual(true, sym.Equals(sym)); Assert.AreEqual(true, sym.Equals(sym2)); Assert.AreEqual(true, sym.Equals(sym3)); }
/// <summary> /// Parses the motif description and generates a symbol array that describes /// the motif. Alternatives are described by MetaSymbols. /// </summary> /// <param name="alphabet">Alphabet of the motif. </param> /// <param name="motif">Motif description.</param> /// <returns>Returns a symbol array.</returns> public static List<Symbol> Symbols (Alphabet alphabet, String motif) { List<Symbol> mySymbols = new List<Symbol>(); SymbolMeta alternative = null; for (int i = 0; i < motif.Length; i++) { char letter = motif[i]; if (letter == '[') { if (alternative != null) throw new ArgumentException ("'[' within alternative is not permitted"); alternative = new SymbolMeta('#', "ALT", "Alternative"); } else if (letter == ']') { if (alternative == null) throw new ArgumentException ("Opening bracket for ']' is missing!"); mySymbols.Add(alternative); alternative = null; } else if (alternative != null) alternative.Add(alphabet[letter]); else mySymbols.Add(alphabet[letter]); } if (alternative != null) throw new ArgumentException ("']' is missing"); return mySymbols; }
/** Tests the letter representation of the symbol set */ public void TestLetters() { SymbolMeta sym = new SymbolMeta('X', "XXX", "Unknown"); sym.Add(new Symbol('a', "Ade", "Adenine")); sym.Add(new Symbol('u', "Ura", "Adenine")); Assert.AreEqual("au", sym.Letters); }