File tree Expand file tree Collapse file tree 3 files changed +18
-15
lines changed Expand file tree Collapse file tree 3 files changed +18
-15
lines changed Original file line number Diff line number Diff line change @@ -138,26 +138,27 @@ def test_range_decoder():
138
138
139
139
def test_range_encoder_decoder ():
140
140
"""
141
- Additional tests whether RangeDecoder reproduces symbols encoded by RangeEncoder.
141
+ Additional tests to check whether RangeDecoder reproduces symbols encoded by RangeEncoder.
142
142
"""
143
143
144
144
random .seed (0 )
145
145
146
146
filepath = mkstemp ()[1 ]
147
147
148
- cumFreq = [0.25 , 0.25 , 0.5 ]
148
+ for _ in range (20 ):
149
+ numSymbols = np .random .randint (1 , 6 )
150
+ cumFreq = [0 ] + np .cumsum (np .random .randint (1 , 10 , size = numSymbols )).tolist ()
151
+ data = np .random .randint (numSymbols , size = np .random .randint (20 )).tolist ()
149
152
150
- data = [0 , 1 , 2 ]
151
-
152
- encoder = RangeEncoder (filepath )
153
- encoder .encode (data , cumFreq )
154
- encoder .close ()
153
+ encoder = RangeEncoder (filepath )
154
+ encoder .encode (data , cumFreq )
155
+ encoder .close ()
155
156
156
- decoder = RangeDecoder (filepath )
157
- dataRec = decoder .decode (len (data ), cumFreq )
158
- decoder .close ()
157
+ decoder = RangeDecoder (filepath )
158
+ dataRec = decoder .decode (len (data ), cumFreq )
159
+ decoder .close ()
159
160
160
- assert data == dataRec
161
+ assert data == dataRec
161
162
162
163
os .remove (filepath )
163
164
Original file line number Diff line number Diff line change @@ -101,9 +101,11 @@ template <class Iter> class rc_encoder_t : public rc_type_t {
101
101
}
102
102
103
103
void final () {
104
- *iter++ = buffer;
105
- for (; carryN != 0 ; carryN--) {
106
- *iter++ = 0xFF ;
104
+ if (!start) {
105
+ *iter++ = buffer;
106
+ for (; carryN != 0 ; carryN--) {
107
+ *iter++ = 0xFF ;
108
+ }
107
109
}
108
110
109
111
uint t = L + R;
Original file line number Diff line number Diff line change 2
2
3
3
setup (
4
4
name = "range_coder" ,
5
- version = "1.0 " ,
5
+ version = "1.1 " ,
6
6
description = "A fast implementation of a range coder" ,
7
7
packages = ["range_coder" ],
8
8
package_dir = {"range_coder" : "python" },
You can’t perform that action at this time.
0 commit comments