Skip to content

Commit ed8f2ce

Browse files
committed
Improve code correctness
let -> const, initialize numbers, change equality operator, add missing comments.
1 parent 00626e7 commit ed8f2ce

File tree

3 files changed

+54
-52
lines changed

3 files changed

+54
-52
lines changed

src/core/oned/rss/AbstractRSSReader.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@ export default abstract class AbstractRSSReader extends OneDReader {
99
private static readonly MAX_AVG_VARIANCE: number = 0.2;
1010
private static readonly MAX_INDIVIDUAL_VARIANCE: number = 0.45;
1111

12+
/** Minimum ratio 10:12 (minus 0.5 for variance), from section 7.2.7 of ISO/IEC 24724:2006. */
1213
private static readonly MIN_FINDER_PATTERN_RATIO: number = 9.5 / 12.0;
14+
/** Maximum ratio 12:14 (plus 0.5 for variance), from section 7.2.7 of ISO/IEC 24724:2006. */
1315
private static readonly MAX_FINDER_PATTERN_RATIO: number = 12.5 / 14.0;
1416

1517
private readonly decodeFinderCounters: Int32Array;
@@ -98,7 +100,7 @@ export default abstract class AbstractRSSReader extends OneDReader {
98100
protected static isFinderPattern(counters: Int32Array): boolean {
99101
let firstTwoSum = counters[0] + counters[1];
100102
let sum = firstTwoSum + counters[2] + counters[3];
101-
let ratio = firstTwoSum / sum;
103+
const ratio = firstTwoSum / sum;
102104
if (ratio >= AbstractRSSReader.MIN_FINDER_PATTERN_RATIO && ratio <= AbstractRSSReader.MAX_FINDER_PATTERN_RATIO) {
103105
// passes ratio test in spec, but see if the counts are unreasonable
104106
let minCounter = Number.MAX_SAFE_INTEGER;

src/core/oned/rss/RSS14Reader.ts

+47-47
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ export default class RSS14Reader extends AbstractRSSReader {
5959
}
6060

6161
private static addOrTally(possiblePairs: Pair[], pair: Pair) {
62-
if (pair == null) {
62+
if (pair === null) {
6363
return;
6464
}
6565
let found = false;
@@ -81,18 +81,18 @@ export default class RSS14Reader extends AbstractRSSReader {
8181
}
8282

8383
private static constructResult(leftPair: Pair, rightPair: Pair): Result {
84-
let symbolValue = 4537077 * leftPair.getValue() + rightPair.getValue();
85-
let text = new String(symbolValue).toString();
84+
const symbolValue = 4537077 * leftPair.getValue() + rightPair.getValue();
85+
const text = String(symbolValue);
8686

87-
let buffer = new StringBuilder();
87+
const buffer = new StringBuilder();
8888
for (let i = 13 - text.length; i > 0; i--) {
8989
buffer.append('0');
9090
}
9191
buffer.append(text);
9292

9393
let checkDigit = 0;
9494
for (let i = 0; i < 13; i++) {
95-
let digit = buffer.charAt(i).charCodeAt(0) - '0'.charCodeAt(0);
95+
const digit = buffer.charAt(i).charCodeAt(0) - '0'.charCodeAt(0);
9696
checkDigit += ((i & 0x01) === 0) ? 3 * digit : digit;
9797
}
9898
checkDigit = 10 - (checkDigit % 10);
@@ -101,13 +101,13 @@ export default class RSS14Reader extends AbstractRSSReader {
101101
}
102102
buffer.append(checkDigit.toString());
103103

104-
let leftPoints = leftPair.getFinderPattern().getResultPoints();
105-
let rightPoints = rightPair.getFinderPattern().getResultPoints();
104+
const leftPoints = leftPair.getFinderPattern().getResultPoints();
105+
const rightPoints = rightPair.getFinderPattern().getResultPoints();
106106
return new Result(buffer.toString(), null, 0, [leftPoints[0], leftPoints[1], rightPoints[0], rightPoints[1]], BarcodeFormat.RSS_14, new Date().getTime());
107107
}
108108

109109
private static checkChecksum(leftPair: Pair, rightPair: Pair): boolean {
110-
let checkValue = (leftPair.getChecksumPortion() + 16 * rightPair.getChecksumPortion()) % 79;
110+
const checkValue = (leftPair.getChecksumPortion() + 16 * rightPair.getChecksumPortion()) % 79;
111111
let targetCheckValue =
112112
9 * leftPair.getFinderPattern().getValue() + rightPair.getFinderPattern().getValue();
113113
if (targetCheckValue > 72) {
@@ -121,10 +121,10 @@ export default class RSS14Reader extends AbstractRSSReader {
121121

122122
private decodePair(row: BitArray, right: boolean, rowNumber: number, hints: Map<DecodeHintType, any>): Pair {
123123
try {
124-
let startEnd = this.findFinderPattern(row, right);
125-
let pattern = this.parseFoundFinderPattern(row, rowNumber, right, startEnd);
124+
const startEnd = this.findFinderPattern(row, right);
125+
const pattern = this.parseFoundFinderPattern(row, rowNumber, right, startEnd);
126126

127-
let resultPointCallback = hints == null ? null : <ResultPointCallback>hints.get(DecodeHintType.NEED_RESULT_POINT_CALLBACK);
127+
const resultPointCallback = hints == null ? null : <ResultPointCallback>hints.get(DecodeHintType.NEED_RESULT_POINT_CALLBACK);
128128

129129
if (resultPointCallback != null) {
130130
let center = (startEnd[0] + startEnd[1]) / 2.0;
@@ -135,8 +135,8 @@ export default class RSS14Reader extends AbstractRSSReader {
135135
resultPointCallback.foundPossibleResultPoint(new ResultPoint(center, rowNumber));
136136
}
137137

138-
let outside = this.decodeDataCharacter(row, pattern, true);
139-
let inside = this.decodeDataCharacter(row, pattern, false);
138+
const outside = this.decodeDataCharacter(row, pattern, true);
139+
const inside = this.decodeDataCharacter(row, pattern, false);
140140
return new Pair(1597 * outside.getValue() + inside.getValue(),
141141
outside.getChecksumPortion() + 4 * inside.getChecksumPortion(),
142142
pattern);
@@ -152,7 +152,7 @@ export default class RSS14Reader extends AbstractRSSReader {
152152

153153
private decodeDataCharacter(row: BitArray, pattern: FinderPattern, outsideChar: boolean): DataCharacter {
154154

155-
let counters = this.getDataCharacterCounters();
155+
const counters = this.getDataCharacterCounters();
156156
for (let x = 0; x < counters.length; x++) {
157157
counters[x] = 0;
158158
}
@@ -163,29 +163,29 @@ export default class RSS14Reader extends AbstractRSSReader {
163163
OneDReader.recordPattern(row, pattern.getStartEnd()[1] + 1, counters);
164164
// reverse it
165165
for (let i = 0, j = counters.length - 1; i < j; i++ , j--) {
166-
let temp = counters[i];
166+
const temp = counters[i];
167167
counters[i] = counters[j];
168168
counters[j] = temp;
169169
}
170170
}
171171

172-
let numModules = outsideChar ? 16 : 15;
173-
let elementWidth = MathUtils.sum(new Int32Array(counters)) / numModules;
172+
const numModules = outsideChar ? 16 : 15;
173+
const elementWidth = MathUtils.sum(new Int32Array(counters)) / numModules;
174174

175-
let oddCounts = this.getOddCounts();
176-
let evenCounts = this.getEvenCounts();
177-
let oddRoundingErrors = this.getOddRoundingErrors();
178-
let evenRoundingErrors = this.getEvenRoundingErrors();
175+
const oddCounts = this.getOddCounts();
176+
const evenCounts = this.getEvenCounts();
177+
const oddRoundingErrors = this.getOddRoundingErrors();
178+
const evenRoundingErrors = this.getEvenRoundingErrors();
179179

180180
for (let i = 0; i < counters.length; i++) {
181-
let value = counters[i] / elementWidth;
182-
let count = Math.floor(value + 0.5);
181+
const value = counters[i] / elementWidth;
182+
let count = Math.floor(value + 0.5); // Round
183183
if (count < 1) {
184184
count = 1;
185185
} else if (count > 8) {
186186
count = 8;
187187
}
188-
let offset = Math.floor(i / 2);
188+
const offset = Math.floor(i / 2);
189189
if ((i & 0x01) === 0) {
190190
oddCounts[offset] = count;
191191
oddRoundingErrors[offset] = value - count;
@@ -211,45 +211,45 @@ export default class RSS14Reader extends AbstractRSSReader {
211211
evenChecksumPortion += evenCounts[i];
212212
evenSum += evenCounts[i];
213213
}
214-
let checksumPortion = oddChecksumPortion + 3 * evenChecksumPortion;
214+
const checksumPortion = oddChecksumPortion + 3 * evenChecksumPortion;
215215

216216
if (outsideChar) {
217217
if ((oddSum & 0x01) !== 0 || oddSum > 12 || oddSum < 4) {
218218
throw new NotFoundException();
219219
}
220-
let group = (12 - oddSum) / 2;
221-
let oddWidest = RSS14Reader.OUTSIDE_ODD_WIDEST[group];
222-
let evenWidest = 9 - oddWidest;
223-
let vOdd = RSSUtils.getRSSvalue(oddCounts, oddWidest, false);
224-
let vEven = RSSUtils.getRSSvalue(evenCounts, evenWidest, true);
225-
let tEven = RSS14Reader.OUTSIDE_EVEN_TOTAL_SUBSET[group];
226-
let gSum = RSS14Reader.OUTSIDE_GSUM[group];
220+
const group = (12 - oddSum) / 2;
221+
const oddWidest = RSS14Reader.OUTSIDE_ODD_WIDEST[group];
222+
const evenWidest = 9 - oddWidest;
223+
const vOdd = RSSUtils.getRSSvalue(oddCounts, oddWidest, false);
224+
const vEven = RSSUtils.getRSSvalue(evenCounts, evenWidest, true);
225+
const tEven = RSS14Reader.OUTSIDE_EVEN_TOTAL_SUBSET[group];
226+
const gSum = RSS14Reader.OUTSIDE_GSUM[group];
227227
return new DataCharacter(vOdd * tEven + vEven + gSum, checksumPortion);
228228
} else {
229229
if ((evenSum & 0x01) !== 0 || evenSum > 10 || evenSum < 4) {
230230
throw new NotFoundException();
231231
}
232-
let group = (10 - evenSum) / 2;
233-
let oddWidest = RSS14Reader.INSIDE_ODD_WIDEST[group];
234-
let evenWidest = 9 - oddWidest;
235-
let vOdd = RSSUtils.getRSSvalue(oddCounts, oddWidest, true);
236-
let vEven = RSSUtils.getRSSvalue(evenCounts, evenWidest, false);
237-
let tOdd = RSS14Reader.INSIDE_ODD_TOTAL_SUBSET[group];
238-
let gSum = RSS14Reader.INSIDE_GSUM[group];
232+
const group = (10 - evenSum) / 2;
233+
const oddWidest = RSS14Reader.INSIDE_ODD_WIDEST[group];
234+
const evenWidest = 9 - oddWidest;
235+
const vOdd = RSSUtils.getRSSvalue(oddCounts, oddWidest, true);
236+
const vEven = RSSUtils.getRSSvalue(evenCounts, evenWidest, false);
237+
const tOdd = RSS14Reader.INSIDE_ODD_TOTAL_SUBSET[group];
238+
const gSum = RSS14Reader.INSIDE_GSUM[group];
239239
return new DataCharacter(vEven * tOdd + vOdd + gSum, checksumPortion);
240240
}
241241

242242
}
243243

244244
private findFinderPattern(row: BitArray, rightFinderPattern: boolean): number[] {
245245

246-
let counters = this.getDecodeFinderCounters();
246+
const counters = this.getDecodeFinderCounters();
247247
counters[0] = 0;
248248
counters[1] = 0;
249249
counters[2] = 0;
250250
counters[3] = 0;
251251

252-
let width = row.getSize();
252+
const width = row.getSize();
253253
let isWhite = false;
254254
let rowOffset = 0;
255255
while (rowOffset < width) {
@@ -289,7 +289,7 @@ export default class RSS14Reader extends AbstractRSSReader {
289289

290290
private parseFoundFinderPattern(row: BitArray, rowNumber: number, right: boolean, startEnd: number[]): FinderPattern {
291291
// Actually we found elements 2-5
292-
let firstIsBlack = row.get(startEnd[0]);
292+
const firstIsBlack = row.get(startEnd[0]);
293293
let firstElementStart = startEnd[0] - 1;
294294
// Locate element 1
295295
while (firstElementStart >= 0 && firstIsBlack !== row.get(firstElementStart)) {
@@ -315,8 +315,8 @@ export default class RSS14Reader extends AbstractRSSReader {
315315

316316
private adjustOddEvenCounts(outsideChar: boolean, numModules: number) {
317317

318-
let oddSum = MathUtils.sum(new Int32Array(this.getOddCounts()));
319-
let evenSum = MathUtils.sum(new Int32Array(this.getEvenCounts()));
318+
const oddSum = MathUtils.sum(new Int32Array(this.getOddCounts()));
319+
const evenSum = MathUtils.sum(new Int32Array(this.getEvenCounts()));
320320

321321
let incrementOdd = false;
322322
let decrementOdd = false;
@@ -352,9 +352,9 @@ export default class RSS14Reader extends AbstractRSSReader {
352352
}
353353
}
354354

355-
let mismatch = oddSum + evenSum - numModules;
356-
let oddParityBad = (oddSum & 0x01) === (outsideChar ? 1 : 0);
357-
let evenParityBad = (evenSum & 0x01) === 1;
355+
const mismatch = oddSum + evenSum - numModules;
356+
const oddParityBad = (oddSum & 0x01) === (outsideChar ? 1 : 0);
357+
const evenParityBad = (evenSum & 0x01) === 1;
358358
if (mismatch === 1) {
359359
if (oddParityBad) {
360360
if (evenParityBad) {

src/core/oned/rss/RSSUtils.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ export default class RSSUtils {
1414
let narrowMask = 0;
1515
let elements = widths.length;
1616
for (let bar = 0; bar < elements - 1; bar++) {
17-
let elmWidth;
17+
let elmWidth: number;
1818
for (elmWidth = 1, narrowMask |= 1 << bar; elmWidth < widths[bar]; elmWidth++ , narrowMask &= ~(1 << bar)) {
1919
let subVal = RSSUtils.combins(n - elmWidth - 1, elements - bar - 2);
2020
if (noNarrow && (narrowMask === 0) && (n - elmWidth - (elements - bar - 1) >= elements - bar - 1)) {
@@ -37,8 +37,8 @@ export default class RSSUtils {
3737
}
3838

3939
private static combins(n: number, r: number): number {
40-
let maxDenom;
41-
let minDenom;
40+
let maxDenom = 0;
41+
let minDenom = 0;
4242
if (n - r > r) {
4343
minDenom = r;
4444
maxDenom = n - r;
@@ -55,7 +55,7 @@ export default class RSSUtils {
5555
j++;
5656
}
5757
}
58-
while ((j <= minDenom)) {
58+
while (j <= minDenom) {
5959
val /= j;
6060
j++;
6161
}

0 commit comments

Comments
 (0)