avocado/packages/math/test/floodwalk.js

28 lines
724 B
JavaScript
Raw Normal View History

2021-03-19 09:05:51 -05:00
require('source-map-support').install();
import {expect} from 'chai';
import floodwalk from '../src/floodwalk';
describe('Floodwalk', () => {
it('can walk', () => {
const data = [
0, 0, 0, 0, 0, 0, 0, 0,
2021-04-19 12:11:02 -05:00
0, 1, 1, 1, 1, 1, 1, 0,
2021-03-19 09:05:51 -05:00
1, 1, 1, 1, 0, 1, 1, 1,
0, 0, 0, 0, 0, 0, 0, 1,
];
let correct = data.reduce((r, v, i) => r.concat(v ? [+i] : []), []);
expect(
2021-04-19 12:11:02 -05:00
floodwalk(new Set([1]), data, [1, 1, 8, 4])
2021-03-19 09:05:51 -05:00
.sort((l, r) => l < r ? -1 : 1)
).to.deep.equal(correct);
data[12] = 0;
2021-04-19 12:11:02 -05:00
correct = [9, 10, 11, 16, 17, 18, 19];
2021-03-19 09:05:51 -05:00
expect(
2021-04-19 12:11:02 -05:00
floodwalk(new Set([1]), data, [1, 1, 8, 4])
2021-03-19 09:05:51 -05:00
.sort((l, r) => l < r ? -1 : 1)
).to.deep.equal(correct);
});
});