Merge branch 'dev' of dev.ariona.fr:gator/explorata into dev
This commit is contained in:
commit
2b042f89be
@ -40,7 +40,7 @@ export function picToBoard(pixels, board) {
|
|||||||
const flat = pixels.reduce((acc, pixel, index) => {
|
const flat = pixels.reduce((acc, pixel, index) => {
|
||||||
const i = index * 4;
|
const i = index * 4;
|
||||||
const count = pixels[i] + pixels[i + 1] + pixels[i + 2];
|
const count = pixels[i] + pixels[i + 1] + pixels[i + 2];
|
||||||
const value = count >= 255 ? 1 : 0;
|
const value = (count >= 255) & 1;
|
||||||
acc[index] = value;
|
acc[index] = value;
|
||||||
return acc;
|
return acc;
|
||||||
}, []);
|
}, []);
|
||||||
@ -58,8 +58,7 @@ export function boardToPic(board) {
|
|||||||
const img = new ImageData(board.width, board.height);
|
const img = new ImageData(board.width, board.height);
|
||||||
const colors = [hexToRGB(live), hexToRGB(dead)];
|
const colors = [hexToRGB(live), hexToRGB(dead)];
|
||||||
board.grid.flat().reduce((acc, cell, index) => {
|
board.grid.flat().reduce((acc, cell, index) => {
|
||||||
// TODO : bitshift operation instead of ternary
|
const color = colors[(cell === 1) & 1];
|
||||||
const color = cell === 1 ? colors[0] : colors[1];
|
|
||||||
const i = index * 4;
|
const i = index * 4;
|
||||||
acc[i] = color[0];
|
acc[i] = color[0];
|
||||||
acc[i + 1] = color[1];
|
acc[i + 1] = color[1];
|
||||||
|
18
tests/core.test.js
Normal file
18
tests/core.test.js
Normal 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);
|
||||||
|
});
|
||||||
|
});
|
Loading…
Reference in New Issue
Block a user