void GetDefaultTerminationSymbol(AlphabetsTypes option) { IAlphabet alphabetInstance = null; byte outputDefaultTerminationSymbol = 0; HashSet <byte> outputTerminationSymbol = new HashSet <byte>(); string outputTerminationString = ""; switch (option) { case AlphabetsTypes.Protein: alphabetInstance = ProteinAlphabet.Instance; break; case AlphabetsTypes.Rna: alphabetInstance = RnaAlphabet.Instance; break; case AlphabetsTypes.Dna: alphabetInstance = DnaAlphabet.Instance; break; } if (option.Equals(AlphabetsTypes.Protein)) { Assert.AreEqual(true, alphabetInstance.TryGetDefaultTerminationSymbol(out outputDefaultTerminationSymbol)); Assert.AreEqual(true, alphabetInstance.TryGetTerminationSymbols(out outputTerminationSymbol)); outputTerminationString = new string(outputTerminationSymbol.Select(a => (char)a).ToArray()); Assert.AreEqual('*', (char)outputDefaultTerminationSymbol); Assert.AreEqual("*", outputTerminationString); } else { Assert.AreEqual(false, alphabetInstance.TryGetDefaultTerminationSymbol(out outputDefaultTerminationSymbol)); Assert.AreEqual(false, alphabetInstance.TryGetTerminationSymbols(out outputTerminationSymbol)); } ApplicationLog.WriteLine(string.Concat("Alphabets BVT: Validation of Get Default termination symbol for", option, " completed successfully.")); }
/// <summary> /// This returns true/false if the given symbol value is considered a termination /// value in the alphabet. /// </summary> /// <param name="alphabet">Alphabet to test</param> /// <param name="value">Value to check</param> /// <returns>True if value is a termination symbol, false if terminations are not supported or value is not.</returns> public static bool CheckIsTermination(this IAlphabet alphabet, byte value) { if (alphabet == null) { throw new ArgumentNullException("alphabet", "Alphabet must be supplied."); } // Not supported? if (!alphabet.HasTerminations) { return(false); } // Get the termination set and return true/false on match. HashSet <byte> symbols; return(alphabet.TryGetTerminationSymbols(out symbols) && symbols.Contains(value)); }