コード例 #1
0
        public BitArray CalculateCoarseGraining(Person person, int wordLength)
        {
            //calculate snapshots
            var snapshots = CalculateSnapshots(person);

            //convert snapshots to a long string of data
            string sequence = snapshots
                              .GetActivityCodeSequence()
                              .Cast <int>()
                              .AllToString();

            IHuffmanFixedLengthCoding c = new HuffmanFixedLengthCoding();

            c.Build(sequence, wordLength);
            var result = c.Encode();

            person.CoarseGrainedSequence = result;

            log.Debug("Total numer of words in sequence: " + c.SequenceInWords.Count());
            result.TraceEncoded();
            c.TraceWords();


            return(result);
        }
コード例 #2
0
        public void EncodeWithoutBuildingAtreeThrowsException()
        {
            IHuffmanFixedLengthCoding c = new HuffmanFixedLengthCoding();

            c.Encode();
            Assert.Fail("Should not come here");
        }
コード例 #3
0
        public IDictionary <string, decimal> GetCanonicalWordsProbability(Person p, int wordLength)
        {
            IHuffmanFixedLengthCoding c = new HuffmanFixedLengthCoding();
            string sequence             = p.GetNhanceSequenceString();

            return(c.CalculateCanonicalWordsProbability(sequence, wordLength));
        }
コード例 #4
0
        public IDictionary <string, decimal> GetWordsProbability(Person p, int wordLengh)
        {
            IHuffmanFixedLengthCoding c = new HuffmanFixedLengthCoding();
            string sequence             = p.GetNhanceSequenceString();

            c.Build(sequence, wordLengh);
            return(c.WordsProbability);
        }
コード例 #5
0
        public string GetWordsProbabilitiesAsString(Person p, int wordLengh)
        {
            IHuffmanFixedLengthCoding c = new HuffmanFixedLengthCoding();
            string sequence             = p.GetNhanceSequenceString();

            c.Build(sequence, wordLengh);
            log.Debug(p.Id + ". Total numer of unique words in sequence: " + c.WordsProbability.Count);
            return(c.GetWordsAsSingleString());
        }
コード例 #6
0
        //[Test]
        ////[Ignore]
        //public void SaveNhanesGroupActivityStatsTest()
        //{
        //    var fName = nhanesGroupService.SaveNhanesGroupActivityStats(TestedGroup);
        //    Assert.That(File.Exists(fName));
        //    Assert.That(File.ReadAllBytes(fName).Length > 0);
        //}

        //[TestCase(10)]
        //[Ignore]
        //public void SaveNhanesGroupWordsTest(int wordLength)
        //{
        //    var result = nhanesGroupService.SaveWordsProbabilitiesAsString(TestedGroup, wordLength);
        //    foreach (var fName in result)
        //    {
        //        Assert.That(File.Exists(fName));
        //        Assert.That(File.ReadAllBytes(fName).Length > 0);
        //    }
        //}

        private BitArray GetHuffmanEncodedSequence(Person p, int wordLengh)
        {
            IHuffmanFixedLengthCoding c = new HuffmanFixedLengthCoding();
            string sequence             = p.GetNhanceSequenceString();

            c.Build(sequence, wordLengh);
            var encoded = c.Encode();

            return(encoded);
        }
コード例 #7
0
        public void EncodeTest(string sequence, int wordLenth, string expected)
        {
            IHuffmanFixedLengthCoding c = new HuffmanFixedLengthCoding();

            c.Build(sequence, wordLenth);
            var actual = c.Encode();

            c.TraceWords();
            actual.TraceEncoded();

            Assert.AreEqual(expected, actual.ToBitString());
        }
コード例 #8
0
        public void EncodeDecodeTest(string sequence, int wordLenth)
        {
            IHuffmanFixedLengthCoding c = new HuffmanFixedLengthCoding();

            c.Build(sequence, wordLenth);
            var encoded = c.Encode();

            c.TraceWords();

            encoded.TraceEncoded();

            string actual = c.Decode(encoded);

            Assert.AreEqual(sequence, actual);
        }
コード例 #9
0
        //[TestCase("Data\\AnnaKarenina.Chapter1.txt", 6)]
        //[TestCase("Data\\AnnaKarenina.Chapter1.txt", 3)]
        public void EncodeDecodeFromFileTest(string path, int wordLenth)
        {
            string content = File.ReadAllText(path);

            IHuffmanFixedLengthCoding c = new HuffmanFixedLengthCoding();

            c.Build(content, wordLenth);
            var encoded = c.Encode();

            c.TraceWords();
            encoded.TraceEncoded();

            string actual = c.Decode(encoded);

            Assert.AreEqual(content, actual);
        }
コード例 #10
0
        public BitArray GetHuffmanEncodedSequence(Person p, int wordLengh)
        {
            IHuffmanFixedLengthCoding c = new HuffmanFixedLengthCoding();
            string sequence             = p.GetNhanceSequenceString();

            c.Build(sequence, wordLengh);
            var encoded = c.Encode();

            string traceStr = "Person " + p.Id + " has " + c.WordsProbability.Count + " words";

            log.Debug(traceStr);

            wordsLog.Debug("Person " + p.Id);
            c.TraceWords(wordsLog);
            encoded.TraceEncoded(wordsLog);
            wordsLog.Debug("==========*******===========");
            wordsLog.Debug("==========*******===========");
            wordsLog.Debug("==========*******===========");

            p.WordsProbability = c.WordsProbability;

            return(encoded);
        }