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 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
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