@Test public void removeAll2Test() throws Exception { tree.setRemoveEntireSubtree(true); tree2.setRemoveEntireSubtree(true); StandardSizeCalculator sdc = new StandardSizeCalculator(true); long s1 = sdc.serializ(tree); long s2 = sdc.serializ(tree2); long s3 = sdc.serializ(tree3); assertTrue(s3 < s1); assertTrue(s3 < s2); CRDTMessage mess1 = tree2.remove(Arrays.asList(0)); // f CRDTMessage mess2 = tree2.remove(Arrays.asList(0)); // f CRDTMessage mess3 = tree2.remove(Arrays.asList(0)); // f tree.applyRemote(mess1); tree.applyRemote(mess3); tree.applyRemote(mess2); assertEquals("null", tree2.getRoot().nodetail()); assertEquals("null", tree.getRoot().nodetail()); long sa1 = sdc.serializ(tree); long sa2 = sdc.serializ(tree2); assertEquals(1, tree.map.size()); assertEquals(1, tree2.map.size()); assertEquals(s3, sa1); assertEquals(s3, sa2); }
@Test public void moveTest() { CRDTMessage m = tree2.move(Arrays.asList(0, 1), Arrays.asList(2), 1); tree.applyRemote(m); assertEquals("null{a{d,},b,c{g,e{f,},h,},}", tree.getRoot().nodetail()); assertEquals("null{a{d,},b,c{g,e{f,},h,},}", tree2.getRoot().nodetail()); }
@Test public void moveTestop() throws PreconditionException { OrderedTreeOperation<String> op1 = new OrderedTreeOperation<String>(MOVE, Arrays.asList(0, 1), Arrays.asList(2), 1, null); CRDTMessage m = tree2.applyLocal(op1); tree.applyRemote(m); assertEquals("null{a{d,},b,c{g,e{f,},h,},}", tree.getRoot().nodetail()); assertEquals("null{a{d,},b,c{g,e{f,},h,},}", tree2.getRoot().nodetail()); }