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():
138138
139139def test_range_encoder_decoder ():
140140 """
141- Additional tests whether RangeDecoder reproduces symbols encoded by RangeEncoder.
141+ Additional tests to check whether RangeDecoder reproduces symbols encoded by RangeEncoder.
142142 """
143143
144144 random .seed (0 )
145145
146146 filepath = mkstemp ()[1 ]
147147
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 ()
149152
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 ()
155156
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 ()
159160
160- assert data == dataRec
161+ assert data == dataRec
161162
162163 os .remove (filepath )
163164
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 {
101101 }
102102
103103 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+ }
107109 }
108110
109111 uint t = L + R;
Original file line number Diff line number Diff line change 22
33setup (
44 name = "range_coder" ,
5- version = "1.0 " ,
5+ version = "1.1 " ,
66 description = "A fast implementation of a range coder" ,
77 packages = ["range_coder" ],
88 package_dir = {"range_coder" : "python" },
You can’t perform that action at this time.
0 commit comments