'use strict'; import { world_update } from '../world/world.js'; import { validity } from './validity.js'; test("agents are not allowed to move into immutables", () => { const actions = [{ size: 1, propose: (world, agent, head) => { return [{ agent_changes: [{ agent_id: agent.id, x: agent.x + 1, y: agent.y, }], }]; }, }]; const agent = { id: 1, net: { compute: () => [[1], null] }, state: null, x: 0, y: 0, flags: {}, }; const lattice = [[{ type: 'empty', flags: {} }, { type: 'immutable', flags: {} }]]; const world = { lattice, lattice_rules: { empty: ()=>{}, immutable: ()=>{} }, agents: [agent], senses: [], actions, validity, }; expect(world_update(world).agents[0]).toEqual(agent); world.validity = []; expect(world_update(world).agents[0]).toEqual({ ...agent, x: 1, y: 0, }); });