@Test public final void testClosure() { BooleanMatrix mF44 = f.matrix(Dimensions.square(4, 2)); assertTrue(equivalent(mF44, mF44.closure())); mF44.set(0, vars[0]); mF44.set(9, vars[9]); assertTrue(equivalent(mF44, mF44.closure())); mF44.set(2, vars[2]); BooleanValue[] result = new BooleanValue[mF44.dimensions().capacity()]; for (int i = 0; i < result.length; i++) { result[i] = FALSE; } result[0] = vars[0]; result[1] = f.and(vars[2], vars[9]); result[1] = f.or(result[1], f.and(vars[0], result[1])); result[2] = vars[2]; result[9] = vars[9]; assertTrue(equivalent(mF44.closure(), result)); mF44.set(7, vars[7]); result[7] = vars[7]; result[3] = f.and(vars[2], f.and(vars[9], vars[7])); result[11] = f.and(vars[7], vars[9]); assertTrue(equivalent(mF44.closure(), result)); // System.out.println(mF44.closure()); }