public Set ( IBaseObject item, int index ) : void | ||
item | IBaseObject | /// Element to set. /// |
index | int | /// Position in sequence. /// |
리턴 | void |
/// <summary> /// Initializes a new instance of the <see cref="TestObject"/> class. /// </summary> public TestObject() { chain = new BaseChain(10); chain2 = new BaseChain(5); alpha.Add((ValueString)'a'); alpha.Add((ValueString)'b'); alpha.Add((ValueString)'c'); pm1 = new ValuePhantom { alpha[2], alpha[1] }; pm2 = new ValuePhantom { alpha[0] }; chain.Set(PhantomMessageBc, 0); chain.Set(PhantomMessageA, 1); chain.Set(PhantomMessageA, 2); chain.Set(PhantomMessageBc, 3); chain.Set(PhantomMessageA, 4); chain.Set(PhantomMessageBc, 5); chain.Set(PhantomMessageA, 6); chain.Set(PhantomMessageBc, 7); chain.Set(PhantomMessageA, 8); chain.Set(PhantomMessageA, 9); chain2.Set(alpha[1], 0); chain2.Set(PhantomMessageA, 1); chain2.Set(PhantomMessageBc, 2); chain2.Set(alpha[0], 3); chain2.Set(PhantomMessageBc, 4); }
public void ContentTest() { var m1 = new ValuePhantom { new ValueString('1'), new ValueString('2'), new ValueString('3') }; var m2 = new ValuePhantom { new ValueString('4'), new ValueString('3') }; var test = new BaseChain(3); test.Set(m1, 0); test.Set(m2, 1); test.Set(m2, 2); var table = new PhantomTable(test); Assert.AreEqual(m1, table[1].Content); Assert.AreEqual(m2, table[2].Content); Assert.AreEqual(m2, table[3].Content); }
public void FirstTest() { var resultChain = new BaseChain(10); resultChain.Set(mother.PhantomMessageBc[1], 0); resultChain.Set(mother.PhantomMessageA[0], 1); resultChain.Set(mother.PhantomMessageA[0], 2); resultChain.Set(mother.PhantomMessageBc[1], 3); resultChain.Set(mother.PhantomMessageA[0], 4); resultChain.Set(mother.PhantomMessageBc[1], 5); resultChain.Set(mother.PhantomMessageA[0], 6); resultChain.Set(mother.PhantomMessageBc[1], 7); resultChain.Set(mother.PhantomMessageA[0], 8); resultChain.Set(mother.PhantomMessageA[0], 9); var gen = new PhantomChainGenerator(mother.SourceChain, new MockGenerator()); List<BaseChain> res = gen.Generate(1); Assert.AreEqual(res.Count, 1); Assert.AreEqual(resultChain, res[0]); }
public void VolumeTest() { var m3 = new ValuePhantom { new ValueString('a') }; var m1 = new ValuePhantom { new ValueString('1'), new ValueString('2'), new ValueString('3') }; var m2 = new ValuePhantom { new ValueString('4'), new ValueString('3') }; var test = new BaseChain(4); test.Set(m1, 0); test.Set(m2, 1); test.Set(m2, 2); test.Set(m3, 3); var table = new PhantomTable(test); Assert.AreEqual(12, table[0].Volume); Assert.AreEqual(4, table[1].Volume); Assert.AreEqual(2, table[2].Volume); Assert.AreEqual(1, table[3].Volume); Assert.AreEqual(1, table[4].Volume); }
public void AddLengthMoreThanChainRankTest() { alphabet.Add(a); alphabet.Add(b); alphabet.Add(c); alphabet.Add(d); baseChain = new BaseChain(3); baseChain.Set(a, 0); baseChain.Set(b, 1); baseChain.Set(b, 2); matrix = new Matrix(alphabet.Cardinality, 2); var arrayCh = new int[baseChain.GetLength()]; arrayCh[0] = alphabet.IndexOf(baseChain[0]); arrayCh[1] = alphabet.IndexOf(baseChain[1]); arrayCh[2] = alphabet.IndexOf(baseChain[2]); Assert.Throws<ArgumentException>(() => matrix.Add(arrayCh)); }
/// <summary> /// Addes chain to alphabet. /// </summary> /// <param name="item"> /// The item. /// </param> /// <returns> /// <see cref="int"/>. /// </returns> public override int Add(IBaseObject item) { var temp = item as BaseChain; if (temp == null) { temp = new BaseChain(1); temp.Set(item, 0); } return base.Add(temp); }
/// <summary> /// Reorganizes <see cref="AbstractChain"/> into <see cref="AbstractChain"/>. /// </summary> /// <param name="source"> /// Source chain. /// </param> /// <returns> /// The <see cref="AbstractChain"/>. /// </returns> public override AbstractChain Reorganize(AbstractChain source) { var resent = new BaseChain(); resent.ClearAndSetNewLength(source.GetLength()); for (int i = 0; i < source.GetLength(); i++) { var phantom = source[i] as ValuePhantom; resent.Set(phantom != null ? phantom[0] : source[i], i); } return resent; }
public void TreeVolumeTest() { var m1 = new ValuePhantom { new ValueString('1'), new ValueString('2'), new ValueString('3') }; var m2 = new ValuePhantom { new ValueString('4'), new ValueString('3') }; var m3 = new ValuePhantom { new ValueString('a') }; var test = new BaseChain(4); test.Set(m1, 0); test.Set(m2, 1); test.Set(m2, 2); test.Set(m3, 3); IGenerator gen = new SimpleGenerator(); var tree = new TreeTop(test, gen); Assert.AreEqual(12, tree.Volume); var ch1 = tree.GetChild(0); Assert.AreEqual(4, ch1.Volume); var ch2 = tree.GetChild(1); Assert.AreEqual(4, ch2.Volume); var ch3 = tree.GetChild(2); Assert.AreEqual(4, ch3.Volume); }
public void SortListTest() { var temp = new ChainsAlphabet(); var a = new BaseChain(2); for (int i = 0; i < a.GetLength(); i++) { a.Set((ValueInt)i, i); } temp.Add(a); var b = new BaseChain(1); for (int i = 0; i < b.GetLength(); i++) { b.Set((ValueInt)i, i); } temp.Add(b); var c = new BaseChain(5); for (int i = 0; i < c.GetLength(); i++) { c.Set((ValueInt)i, i); } temp.Add(c); var d = new BaseChain(2); for (int i = 0; i < d.GetLength(); i++) { d.Set((ValueInt)(i + 1), i); } temp.Add(d); ArrayList list = temp.GetLengthList(); Assert.AreEqual(5, list[2]); Assert.AreEqual(2, list[1]); Assert.AreEqual(1, list[0]); }
/// <summary> /// Creates literature sequence in database. /// </summary> /// <param name="commonSequence"> /// The common sequence. /// </param> /// <param name="sequenceStream"> /// The sequence stream. /// </param> /// <param name="languageId"> /// The language id. /// </param> /// <param name="original"> /// The original. /// </param> /// <param name="translatorId"> /// The translator id. /// </param> public void Create(CommonSequence commonSequence, Stream sequenceStream, int languageId, bool original, int? translatorId) { var stringSequence = FileHelper.ReadSequenceFromStream(sequenceStream); string[] text = stringSequence.Split('\n'); for (int l = 0; l < text.Length - 1; l++) { // removing "\r" text[l] = text[l].Substring(0, text[l].Length - 1); } var chain = new BaseChain(text.Length - 1); // file always contains empty string at the end // TODO: rewrite this, add empty string check at the end or write a normal trim for (int i = 0; i < text.Length - 1; i++) { chain.Set(new ValueString(text[i]), i); } MatterRepository.CreateMatterFromSequence(commonSequence); var alphabet = ElementRepository.ToDbElements(chain.Alphabet, commonSequence.NotationId, true); Create(commonSequence, original, languageId, translatorId, alphabet, chain.Building); }
public void SecondTest() { var resultChain = new BaseChain(5); resultChain.Set(mother.PhantomMessageBc[1], 0); resultChain.Set(mother.PhantomMessageA[0], 1); resultChain.Set(mother.PhantomMessageBc[1], 2); resultChain.Set(mother.PhantomMessageA[0], 3); resultChain.Set(mother.PhantomMessageBc[0], 4); var gen = new PhantomChainGenerator(mother.UnnormalChain, new MockGenerator()); List<BaseChain> res = gen.Generate(1); Assert.AreEqual(1, res.Count); Assert.AreEqual(resultChain, res[0]); }
public void SixthTest() { var sourceChain = new BaseChain(3); sourceChain.Set(new ValueString("X"), 0); sourceChain.Set(new ValueString("S"), 1); sourceChain.Set(new ValueString("C"), 2); BaseChain forBuild = DnaTransformer.Decode(sourceChain); var gen = new PhantomChainGenerator(forBuild, new SimpleGenerator()); List<BaseChain> res = gen.Generate(1); Assert.AreEqual(9, res[0].GetLength()); }
public void LargerNTest() { alphabet.Add(a); alphabet.Add(b); alphabet.Add(c); alphabet.Add(d); baseChain = new BaseChain(2); baseChain.Set(f, 0); baseChain.Set(c, 1); matrix = new Matrix(alphabet.Cardinality, 2); var array = new int[baseChain.GetLength()]; array[0] = alphabet.IndexOf(baseChain[0]); array[1] = alphabet.IndexOf(baseChain[1]); Assert.Throws<ArgumentOutOfRangeException>(() => matrix.FrequencyFromObject(array)); }
public void Initialize() { alphabet = new Alphabet(); a = new ValueString('a'); b = new ValueString('b'); c = new ValueString('c'); d = new ValueString('d'); f = new ValueString('f'); testChain = new Chain(12); testChain.Set((ValueString)"a", 0); testChain.Set((ValueString)"d", 1); testChain.Set((ValueString)"b", 2); testChain.Set((ValueString)"a", 3); testChain.Set((ValueString)"a", 4); testChain.Set((ValueString)"c", 5); testChain.Set((ValueString)"b", 6); testChain.Set((ValueString)"b", 7); testChain.Set((ValueString)"a", 8); testChain.Set((ValueString)"a", 9); testChain.Set((ValueString)"c", 10); testChain.Set((ValueString)"a", 11); }
public void GetWithIndexesTest() { alphabet.Add(a); // 0 => a alphabet.Add(b); // 1 => b alphabet.Add(c); // 2 => c alphabet.Add(d); // 3 => d baseChain = new BaseChain(2); var ch1 = new BaseChain(2); var ch2 = new BaseChain(2); var ch3 = new BaseChain(2); var ch4 = new BaseChain(2); var ch5 = new BaseChain(1); var ch6 = new BaseChain(1); var ch7 = new BaseChain(1); baseChain.Set(a, 0); baseChain.Set(b, 1); ch1.Set(c, 0); ch1.Set(b, 1); ch2.Set(b, 0); ch2.Set(a, 1); ch3.Set(b, 0); ch3.Set(c, 1); matrix = new Matrix(alphabet.Cardinality, 2); var arrayToTeach = new int[2]; arrayToTeach[0] = alphabet.IndexOf(ch1[0]); arrayToTeach[1] = alphabet.IndexOf(ch1[1]); matrix.Add(arrayToTeach); arrayToTeach = new int[2]; arrayToTeach[0] = alphabet.IndexOf(ch2[0]); arrayToTeach[1] = alphabet.IndexOf(ch2[1]); matrix.Add(arrayToTeach); arrayToTeach = new int[2]; arrayToTeach[0] = alphabet.IndexOf(baseChain[0]); arrayToTeach[1] = alphabet.IndexOf(baseChain[1]); matrix.Add(arrayToTeach); arrayToTeach = new int[2]; arrayToTeach[0] = alphabet.IndexOf(ch3[0]); arrayToTeach[1] = alphabet.IndexOf(ch3[1]); matrix.Add(arrayToTeach); arrayToTeach = new int[2]; arrayToTeach[0] = alphabet.IndexOf(ch1[0]); arrayToTeach[1] = alphabet.IndexOf(ch1[1]); matrix.Add(arrayToTeach); arrayToTeach = new int[2]; arrayToTeach[0] = alphabet.IndexOf(ch3[0]); arrayToTeach[1] = alphabet.IndexOf(ch3[1]); matrix.Add(arrayToTeach); arrayToTeach = new int[2]; arrayToTeach[0] = alphabet.IndexOf(ch1[0]); arrayToTeach[1] = alphabet.IndexOf(ch1[1]); Assert.AreEqual(2, matrix.FrequencyFromObject(arrayToTeach)); ch4.Set(a, 0); ch4.Set(c, 1); arrayToTeach = new int[2]; arrayToTeach[0] = alphabet.IndexOf(ch4[0]); arrayToTeach[1] = alphabet.IndexOf(ch4[1]); Assert.AreEqual(0, matrix.FrequencyFromObject(arrayToTeach)); ch5.Set(b, 0); arrayToTeach = new int[1]; arrayToTeach[0] = alphabet.IndexOf(ch5[0]); Assert.AreEqual(3, matrix.FrequencyFromObject(arrayToTeach)); ch6.Set(a, 0); arrayToTeach = new int[1]; arrayToTeach[0] = alphabet.IndexOf(ch6[0]); Assert.AreEqual(1, matrix.FrequencyFromObject(arrayToTeach)); ch7.Set(c, 0); arrayToTeach = new int[1]; arrayToTeach[0] = alphabet.IndexOf(ch7[0]); Assert.AreEqual(2, matrix.FrequencyFromObject(arrayToTeach)); }