fix evolve 2D #11

Merged
gator merged 7 commits from dev into master 2022-12-29 17:21:48 +01:00
2 changed files with 20 additions and 3 deletions
Showing only changes of commit 2b042f89be - Show all commits

View File

@ -40,7 +40,7 @@ export function picToBoard(pixels, board) {
const flat = pixels.reduce((acc, pixel, index) => {
const i = index * 4;
const count = pixels[i] + pixels[i + 1] + pixels[i + 2];
const value = count >= 255 ? 1 : 0;
const value = (count >= 255) & 1;
acc[index] = value;
return acc;
}, []);
@ -58,8 +58,7 @@ export function boardToPic(board) {
const img = new ImageData(board.width, board.height);
const colors = [hexToRGB(live), hexToRGB(dead)];
board.grid.flat().reduce((acc, cell, index) => {
// TODO : bitshift operation instead of ternary
const color = cell === 1 ? colors[0] : colors[1];
const color = colors[(cell === 1) & 1];
const i = index * 4;
acc[i] = color[0];
acc[i + 1] = color[1];

18
tests/core.test.js Normal file
View File

@ -0,0 +1,18 @@
import { describe, expect, test } from "vitest";
import { evolve1d, create1dStateOneCell } from "src/modules/core.js";
import { presetRuleset } from "src/modules/preset.js";
describe("Core", () => {
test("evolve1d, rules73, 9 cells", () => {
const state = [0, 0, 0, 0, 1, 0, 0, 0, 0];
const got = evolve1d(state, presetRuleset[0].rules);
const valid = [1, 1, 1, 0, 0, 0, 1, 1, 1];
expect(got.length).toBe(state.length);
expect(got).toEqual(valid);
}),
test("create1dStateOneCell, 49 cells", () => {
const got = create1dStateOneCell(49);
expect(got.length).toBe(49);
expect(got[24]).toBe(1);
});
});