示例#1
0
        public void CanCompressRepeatedChars()
        {
            var docs = new[]
            {
                "{'id':1,'name':'Ryan Peterson','country':'Northern Mariana Islands','email':'*****@*****.**'}",
                "{'id':2,'name':'Judith Mason','country':'Puerto Rico','email':'*****@*****.**'}",
                "{'id':3,'name':'Kenneth Berry','country':'Pakistan','email':'*****@*****.**'}",
                "{'id':4,'name':'Judith Ortiz','country':'Cuba','email':'*****@*****.**'}",
                "{'id':5,'name':'Adam Lewis','country':'Poland','email':'*****@*****.**'}",
                "{'id':6,'name':'Angela Spencer','country':'Poland','email':'*****@*****.**'}",
                "{'id':7,'name':'Jason Snyder','country':'Cambodia','email':'*****@*****.**'}",
                "{'id':8,'name':'Pamela Palmer','country':'Guinea-Bissau','email':'*****@*****.**'}",
                "{'id':9,'name':'Mary Graham','country':'Niger','email':'*****@*****.**'}",
                "{'id':10,'name':'Christopher Brooks','country':'Trinidad and Tobago','email':'*****@*****.**'}",
                "{'id':11,'name':'Anna West','country':'Nepal','email':'*****@*****.**'}",
                "{'id':12,'name':'Angela Watkins','country':'Iceland','email':'*****@*****.**'}",
                "{'id':13,'name':'Gregory Coleman','country':'Oman','email':'*****@*****.**'}",
                "{'id':14,'name':'Andrew Hamilton','country':'Ukraine','email':'*****@*****.**'}",
                "{'id':15,'name':'James Patterson','country':'Poland','email':'*****@*****.**'}",
                "{'id':16,'name':'Patricia Kelley','country':'Papua New Guinea','email':'*****@*****.**'}",
                "{'id':17,'name':'Annie Burton','country':'Germany','email':'*****@*****.**'}",
                "{'id':18,'name':'Margaret Wilson','country':'Saudia Arabia','email':'*****@*****.**'}",
                "{'id':19,'name':'Louise Harper','country':'Poland','email':'*****@*****.**'}",
                "{'id':20,'name':'Henry Hunt','country':'Martinique','email':'*****@*****.**'}"
            };

            var trainer = new CompressionTrainer();

            foreach (var doc in docs)
            {
                trainer.TrainOn(doc);
            }

            var compressionHandler = trainer.CreateHandler();

            var memoryStream = new MemoryStream();
            var text         = "{'id':11111,'name':'Albert Perry','country':'Congo, Republic of','email':'*****@*****.**'}";

            compressionHandler.Compress(text, memoryStream);
            var compressDebug = compressionHandler.CompressDebug(text);
            var d             = compressionHandler.DecompressDebug(compressDebug);

            Assert.Equal(text, d);

            memoryStream.Position = 0;
            var result = compressionHandler.Decompress(memoryStream);

            var s = Encoding.UTF8.GetString(result);

            Assert.Equal(text, s);
        }
示例#2
0
        public void CanCompressRepeatedChars()
        {
            var docs = new[]
            {
                "{'id':1,'name':'Ryan Peterson','country':'Northern Mariana Islands','email':'*****@*****.**'}",
                "{'id':2,'name':'Judith Mason','country':'Puerto Rico','email':'*****@*****.**'}",
                "{'id':3,'name':'Kenneth Berry','country':'Pakistan','email':'*****@*****.**'}",
                "{'id':4,'name':'Judith Ortiz','country':'Cuba','email':'*****@*****.**'}",
                "{'id':5,'name':'Adam Lewis','country':'Poland','email':'*****@*****.**'}",
                "{'id':6,'name':'Angela Spencer','country':'Poland','email':'*****@*****.**'}",
                "{'id':7,'name':'Jason Snyder','country':'Cambodia','email':'*****@*****.**'}",
                "{'id':8,'name':'Pamela Palmer','country':'Guinea-Bissau','email':'*****@*****.**'}",
                "{'id':9,'name':'Mary Graham','country':'Niger','email':'*****@*****.**'}",
                "{'id':10,'name':'Christopher Brooks','country':'Trinidad and Tobago','email':'*****@*****.**'}",
                "{'id':11,'name':'Anna West','country':'Nepal','email':'*****@*****.**'}",
                "{'id':12,'name':'Angela Watkins','country':'Iceland','email':'*****@*****.**'}",
                "{'id':13,'name':'Gregory Coleman','country':'Oman','email':'*****@*****.**'}",
                "{'id':14,'name':'Andrew Hamilton','country':'Ukraine','email':'*****@*****.**'}",
                "{'id':15,'name':'James Patterson','country':'Poland','email':'*****@*****.**'}",
                "{'id':16,'name':'Patricia Kelley','country':'Papua New Guinea','email':'*****@*****.**'}",
                "{'id':17,'name':'Annie Burton','country':'Germany','email':'*****@*****.**'}",
                "{'id':18,'name':'Margaret Wilson','country':'Saudia Arabia','email':'*****@*****.**'}",
                "{'id':19,'name':'Louise Harper','country':'Poland','email':'*****@*****.**'}",
                "{'id':20,'name':'Henry Hunt','country':'Martinique','email':'*****@*****.**'}"

            };

            var trainer = new CompressionTrainer();

            foreach (var doc in docs)
            {
                trainer.TrainOn(doc);
            }

            var compressionHandler = trainer.CreateHandler();

            var memoryStream = new MemoryStream();
            var text = "{'id':11111,'name':'Albert Perry','country':'Congo, Republic of','email':'*****@*****.**'}";
            compressionHandler.Compress(text,memoryStream);
            var compressDebug = compressionHandler.CompressDebug(text);
            var d = compressionHandler.DecompressDebug(compressDebug);

            Assert.Equal(text, d);

            memoryStream.Position = 0;
            var result = compressionHandler.Decompress(memoryStream);

            var s = Encoding.UTF8.GetString(result);

            Assert.Equal(text, s);
        }