Set() public method

Sets or replaces element in specified position.
public Set ( IBaseObject item, int index ) : void
item IBaseObject /// Element to set. ///
index int /// Position in sequence. ///
return 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;
        }
Ejemplo n.º 8
0
        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));
        }