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); }
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); }