Example #1
0
        public static CompressionList <T> GetBestCompressionOf <T>(List <T> listToCompress, int sizeOfTStructure)
        {
            CompressionList <T> best = GetCompressionClass <T>(CompressionType.NoCompression);

            best.Compress(listToCompress);

            CompressionList <T> contender1 = GetCompressionClass <T>(CompressionType.ConstantCompression);

            contender1.Compress(listToCompress);

            if (contender1.GetApproxSizeInBytes(sizeOfTStructure) < best.GetApproxSizeInBytes(sizeOfTStructure))
            {
                best = contender1;
            }

            CompressionList <T> contender2 = GetCompressionClass <T>(CompressionType.LinearCompression);

            contender2.Compress(listToCompress);

            if (contender2.GetApproxSizeInBytes(sizeOfTStructure) < best.GetApproxSizeInBytes(sizeOfTStructure))
            {
                best = contender2;
            }

            //Console.WriteLine("Best compression method: " + best.GetType().Name + ", "
            //	+ (sizeOfTStructure * listToCompress.Count) + " to " + best.GetApproxSizeInBytes(sizeOfTStructure));

            return(best);
        }