public void GroupTest2()
        {
            // AACGTNA
            // TACGNAT
            // CCCTTAN
            // CNTAAGG
            // ATTAGCA
            // ATAGCAT
            var groupAlignment =
                new GroupAlignment(
                    new[]
                        {
                            new Sequence(new[] { Nucleotide.A, Nucleotide.A, Nucleotide.C, Nucleotide.G, Nucleotide.T, Nucleotide.C, Nucleotide.A }),
                            new Sequence(new[] { Nucleotide.T, Nucleotide.A, Nucleotide.C, Nucleotide.G, Nucleotide.G, Nucleotide.A, Nucleotide.T }),
                            new Sequence(new[] { Nucleotide.C, Nucleotide.G, Nucleotide.C, Nucleotide.T, Nucleotide.T, Nucleotide.A, Nucleotide.C }),
                            new Sequence(new[] { Nucleotide.C, Nucleotide.C, Nucleotide.T, Nucleotide.A, Nucleotide.A, Nucleotide.G, Nucleotide.G }),
                            new Sequence(new[] { Nucleotide.A, Nucleotide.T, Nucleotide.T, Nucleotide.A, Nucleotide.G, Nucleotide.C, Nucleotide.A }),
                            new Sequence(new[] { Nucleotide.A, Nucleotide.T, Nucleotide.A, Nucleotide.G, Nucleotide.C, Nucleotide.A, Nucleotide.T })
                        },
                    true);

            var estimator = new OperationDistanceEstimator(3, 2, 0, 1);
            var groupAlgorithm = new GroupAlignmentAlgorithm(estimator);
            groupAlgorithm.Condensate(groupAlignment);
        }
        public void FillAlignedSequencesWithDifferentCountTest()
        {
            // AACGCTAG
            // ATCCTAG
            var sequence1 =
                new Sequence(
                    new[]
                        {
                            Nucleotide.A, Nucleotide.A, Nucleotide.C, Nucleotide.G, Nucleotide.C, Nucleotide.T,
                            Nucleotide.A, Nucleotide.G
                        },
                    1);
            var sequence2 =
                new Sequence(
                    new[]
                        {
                            Nucleotide.A, Nucleotide.T, Nucleotide.C, Nucleotide.C, Nucleotide.T, Nucleotide.A,
                            Nucleotide.G
                        },
                    2);

            var estimator = new OperationDistanceEstimator(4, 2, 0, 1);
            var multipleAlignment1 = new MultipleAlignment(1, new[] { sequence1 }, estimator);
            var multipleAlignment2 = new MultipleAlignment(2, new[] { sequence2 }, estimator);
            var newMultipleAlignment = new MultipleAlignment(3, multipleAlignment1, multipleAlignment2);
            var algorithm = new MultipleAlignmentAlgorithm(estimator);
            var groupAlgorithm = new GroupAlignmentAlgorithm(estimator);
            algorithm.FillAlignedSequences(newMultipleAlignment, groupAlgorithm.GeneratePairAlignmentsMap(newMultipleAlignment));
        }
        public void GroupTest1()
        {
            // AACGTAG
            // ATACTAC
            // GACCTAC
            // GTACTTG
            // GTCGTTG
            var groupAlignment =
                new GroupAlignment(
                    new[]
                        {
                            new Sequence(new[] { Nucleotide.A, Nucleotide.A, Nucleotide.C, Nucleotide.G, Nucleotide.T, Nucleotide.A, Nucleotide.G }),
                            new Sequence(new[] { Nucleotide.A, Nucleotide.T, Nucleotide.A, Nucleotide.C, Nucleotide.T, Nucleotide.A, Nucleotide.C }),
                            new Sequence(new[] { Nucleotide.G, Nucleotide.A, Nucleotide.C, Nucleotide.C, Nucleotide.T, Nucleotide.A, Nucleotide.C }),
                            new Sequence(new[] { Nucleotide.G, Nucleotide.T, Nucleotide.A, Nucleotide.C, Nucleotide.T, Nucleotide.T, Nucleotide.G }),
                            new Sequence(new[] { Nucleotide.G, Nucleotide.T, Nucleotide.C, Nucleotide.G, Nucleotide.T, Nucleotide.T, Nucleotide.G })
                        },
                    true);

            var estimator = new OperationDistanceEstimator(4, 2, 0, 1);
            var groupAlgorithm = new GroupAlignmentAlgorithm(estimator);
            groupAlgorithm.Condensate(groupAlignment);
        }