@Override public void test() throws Exception { Application<List<Boolean>, ProtocolBuilderBinary> app = producer -> producer.seq(builder -> { AdvancedBinary prov = builder.advancedBinary(); List<DRes<Boolean>> results = new ArrayList<>(); DRes<SBool> inp100 = builder.binary().known(false); results.add(builder.binary().open(prov.nand(inp100, false))); DRes<SBool> inp110 = builder.binary().known(true); results.add(builder.binary().open(prov.nand(inp110, false))); DRes<SBool> inp101 = builder.binary().known(false); results.add(builder.binary().open(prov.nand(inp101, true))); DRes<SBool> inp111 = builder.binary().known(true); results.add(builder.binary().open(prov.nand(inp111, true))); return () -> results; }).seq( (seq, results) -> () -> results.stream().map(DRes::out) .collect(Collectors.toList())); List<Boolean> res = runApplication(app); Assert.assertEquals(true, res.get(0)); Assert.assertEquals(true, res.get(1)); Assert.assertEquals(true, res.get(2)); Assert.assertEquals(false, res.get(3)); } };
@Override public void test() throws Exception { Application<List<Boolean>, ProtocolBuilderBinary> app = producer -> producer.seq(builder -> { AdvancedBinary prov = builder.advancedBinary(); List<DRes<Boolean>> results = new ArrayList<>(); DRes<SBool> inp100 = builder.binary().known(false); DRes<SBool> inp200 = builder.binary().known(false); results.add(builder.binary().open(prov.nand(inp100, inp200))); DRes<SBool> inp110 = builder.binary().known(true); DRes<SBool> inp210 = builder.binary().known(false); results.add(builder.binary().open(prov.nand(inp110, inp210))); DRes<SBool> inp101 = builder.binary().known(false); DRes<SBool> inp201 = builder.binary().known(true); results.add(builder.binary().open(prov.nand(inp101, inp201))); DRes<SBool> inp111 = builder.binary().known(true); DRes<SBool> inp211 = builder.binary().known(true); results.add(builder.binary().open(prov.nand(inp111, inp211))); return () -> results; }).seq( (seq, results) -> () -> results.stream().map(DRes::out) .collect(Collectors.toList())); List<Boolean> res = runApplication(app); Assert.assertEquals(true, res.get(0)); Assert.assertEquals(true, res.get(1)); Assert.assertEquals(true, res.get(2)); Assert.assertEquals(false, res.get(3)); } };