2584 Commits
Author SHA1 Message Date
Timofey Solomko 8933e6b3c6 Remove useless print statement from bzip2 compress 2017-09-27 22:48:51 +03:00
Timofey Solomko 60c5784595 Combine bzip2 compress strings tests into one test 2017-09-27 22:12:11 +03:00
Timofey Solomko 823d383ab3 Make bzip2 mtf function private 2017-09-27 22:04:36 +03:00
Timofey Solomko 25f6d4f5ac Make bzip2 lengths creation algorithm slightly more space efficient 2017-09-27 22:04:26 +03:00
Timofey Solomko d3839a70ad Rename files with compress extensions 2017-09-27 22:02:42 +03:00
Timofey Solomko 49b7de06a3 Create multiple bzip2 blocks 2017-09-27 22:01:57 +03:00
Timofey Solomko 25b19d209c Add more string tests for bzip2 compress 2017-09-27 21:59:32 +03:00
Timofey Solomko 401d3cf26b Extract code for BW transformation 2017-09-27 20:04:01 +03:00
Timofey Solomko a28732828f Update xcode project with xcode 9 2017-09-19 23:48:05 +03:00
Timofey Solomko fcb75c5315 Add answer(file)-based tests for BZip2 compression 2017-09-17 20:24:21 +03:00
Timofey Solomko 70b02066fc Fix potential crash with index out of range in selectorList in BZip2
Both compression and decompression.
2017-09-17 20:23:47 +03:00
Timofey Solomko f8d4451c18 Remove recursive procedure for huffman lengths generation 2017-09-17 13:03:59 +03:00
Timofey Solomko 3a0335d5f5 Use new lengths creation function in BZip2 compression 2017-09-17 13:03:03 +03:00
Timofey Solomko e5d2b78781 Add new procedure for huffman code length generation 2017-09-17 13:02:09 +03:00
Timofey Solomko fd3a886893 Improve coding style of markdown files 2017-09-10 19:04:25 +03:00
Timofey Solomko 5b94807409 Add configuration file for markdown linter 2017-09-10 19:03:53 +03:00
Timofey Solomko ce1c64ebcd Add some tests for BZip2 compression 2017-09-10 13:10:51 +03:00
Timofey Solomko 34f718e152 Add BZip2 compression implementation 2017-09-10 13:10:36 +03:00
Timofey Solomko 26d7e7e1b4 Add SuffixArray implementation 2017-09-10 13:09:40 +03:00
Timofey Solomko e9c3bc51b5 Add reference to readme about SAIS 2017-09-10 13:08:42 +03:00
Timofey Solomko 70411024d1 Slightly updated bitSize function of EncodingHuffmanTree 2017-09-03 23:20:22 +03:00
Timofey Solomko 59237d3790 Add RecursiveHuffmanTree enum
It will be used in HuffmanTree construction in BZip2 compression.
2017-09-03 23:18:49 +03:00
Timofey Solomko a70e557f38 Extract HuffmanLength array creation code into Deflate specific file 2017-09-03 22:46:00 +03:00
Timofey Solomko cebf0555e5 Make HuffmanLength Comparable and use this in their sorting in HuffmanTree 2017-09-03 20:04:44 +03:00
Timofey Solomko f96f446827 More elegant solution for zero code lengths problem 2017-09-03 19:59:46 +03:00
Timofey Solomko 69fa9a2646 Remove unused inits from HuffmanTrees 2017-09-03 14:18:23 +03:00
Timofey Solomko 49228a049f Fix HuffmanTree init crash when zero codeLength is encountered 2017-09-03 14:16:59 +03:00
Timofey Solomko a357837065 Use new HuffmanLengths in deflate compression huffmantree construction 2017-09-03 14:16:30 +03:00
Timofey Solomko 818e387028 Use new HuffmanLengths in dynamic deflate huffman tree construction 2017-09-03 14:16:10 +03:00
Timofey Solomko 4addd8098e Use new HuffmanLengths in construction of static huffman trees in deflate 2017-09-03 14:05:12 +03:00
Timofey Solomko fc63053899 Use new HuffmanLengths in BZip2 decompression (in huffman tables creation) 2017-09-03 14:01:50 +03:00
Timofey Solomko 5d19120b63 Add inits from new HuffmanLengths to HuffmanTrees 2017-09-03 14:00:26 +03:00
Timofey Solomko 97c767abf5 Add HuffmanLength class
This class represents (symbol, codeLength) pairs used in construction of HuffmanTrees. It also includes useful functions for generating HuffmanLengths from other structures.
2017-09-03 13:58:11 +03:00
Timofey Solomko 94545c06a9 Another batch of small changes to bzip2 2017-09-03 13:49:18 +03:00
Timofey Solomko 6e9248fcd5 Remove try and throws where possible
This is because of the replacement of symbolNotFound throws with fatalErrors in compression related functions.
2017-09-02 23:24:55 +03:00
Timofey Solomko af38fa1717 Fix problems with write(number:...) function of BitWriter 2017-09-02 23:12:55 +03:00
Timofey Solomko 8b6b9b9478 Add bitSize function to EncodingHuffmanTree
This function calculates expected size (in bits) of data based on data's stats.
2017-09-02 23:01:01 +03:00
Timofey Solomko baad3196dc Add variant of bzip2 crc32 function with Data argument
Will be used in BZip2 compression
2017-09-02 23:00:10 +03:00
Timofey Solomko 78fb8cb07b Small changes to bzip2 code 2017-09-02 22:59:31 +03:00
Timofey Solomko cc77cfaad6 Use fatalError instead of symbolNotFound error throw in EncodingHuffmanTree
It is a programming error if symbol is not found during encoding, thus, we should use fatalError.
2017-09-02 20:07:19 +03:00
Timofey Solomko 60b1499be8 Enable some new swiftlint rules 2017-09-02 20:03:48 +03:00
Timofey Solomko cb54a5fa02 Use tuples in inits of huffman trees 2017-09-02 20:03:21 +03:00
Timofey Solomko 5b3e4e72d3 Extract Deflate huffman trees' bootstraps as constants 2017-09-02 20:02:55 +03:00
Timofey Solomko 89dfa410fe Rename file with BZip2 tests for consistency 2017-09-02 19:56:40 +03:00
Timofey Solomko 12da128ddd Change EncodingHuffmanTree API to be more consistent with decoding tree and cleanup usage 2017-08-29 00:10:04 +03:00
Timofey Solomko 2aca494757 Rename HuffmanTree into DecodingHuffmanTree 2017-08-29 00:03:56 +03:00
Timofey Solomko 9827e32bdd Extract code for huffman encoding into separate class 2017-08-29 00:01:03 +03:00
Timofey Solomko 43f7dd6c50 Remove FIXME in 7zContainer 2017-08-22 15:01:13 +03:00
Timofey Solomko 9ac826ff74 Merge branch 'release-3.3.0' into develop 2017-08-20 10:51:04 +03:00
Timofey Solomko 11370465af Merge branch 'release-3.3.0' v3.3.0 2017-08-20 10:50:04 +03:00