Skip to content

Commit

Permalink
renew matrix code & test for undefined size
Browse files Browse the repository at this point in the history
  • Loading branch information
gugu committed Nov 11, 2022
1 parent b00d05b commit 8614c26
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 30 deletions.
40 changes: 11 additions & 29 deletions src/matrix.ts
Expand Up @@ -2,13 +2,11 @@ import { Data, EcLevel, Matrix } from "./typing/types";

// {{{1 Initialize matrix with zeros
export function init(version: number): Matrix {
const N = version * 4 + 17;
const N = (version << 2) + 0b10001;
const matrix: Matrix = [];
let zeros: number[] | Buffer = Buffer.alloc(N);
zeros.fill(0);
zeros = [].slice.call(zeros);
let zeros: number[] = Array(N).fill(0);
for (let i = 0; i < N; i++) {
matrix[i] = zeros.slice() as number[];
matrix[i] = [...zeros];
}
return matrix;
}
Expand Down Expand Up @@ -176,30 +174,14 @@ export const fillReserved = (function () {
// {{{1 Fill data
export const fillData = (function () {
const MASK_FUNCTIONS = [
function (i: number, j: number) {
return (i + j) % 2 == 0;
},
function (i: number, j: number) {
return i % 2 == 0;
},
function (i: number, j: number) {
return j % 3 == 0;
},
function (i: number, j: number) {
return (i + j) % 3 == 0;
},
function (i: number, j: number) {
return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 == 0;
},
function (i: number, j: number) {
return ((i * j) % 2) + ((i * j) % 3) == 0;
},
function (i: number, j: number) {
return (((i * j) % 2) + ((i * j) % 3)) % 2 == 0;
},
function (i: number, j: number) {
return (((i * j) % 3) + ((i + j) % 2)) % 2 == 0;
},
(i: number, j: number) => (i + j) % 2 == 0,
(i: number, j: number) => i % 2 == 0,
(i: number, j: number) => j % 3 == 0,
(i: number, j: number) => (i + j) % 3 == 0,
(i: number, j: number) => (Math.floor(i / 2) + Math.floor(j / 3)) % 2 == 0,
(i: number, j: number) => ((i * j) % 2) + ((i * j) % 3) == 0,
(i: number, j: number) => (((i * j) % 2) + ((i * j) % 3)) % 2 == 0,
(i: number, j: number) => (((i * j) % 3) + ((i + j) % 2)) % 2 == 0,
];

return function fillData(matrix: Matrix, data: Data, mask: number) {
Expand Down
8 changes: 8 additions & 0 deletions src/tests/test.ts
Expand Up @@ -35,6 +35,14 @@ interface TestParams {
filename: "qr_with_empty_options.png",
options: {},
},
{
name: "PNG with undefined size",
fn: getPNG,
filename: "qr_with_undefined_size.png",
options: {
size: undefined,
},
},
{
name: "PNG with size",
fn: getPNG,
Expand Down
Binary file added test_data/golden/qr_with_undefined_size.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion tsconfig.tsbuildinfo

Large diffs are not rendered by default.

0 comments on commit 8614c26

Please sign in to comment.