def test_collect(): a = cmod.FileRepr([0, 1, 2]) b = cmod.State.from_file(a) c = cmod.Delete(1) d = c.apply(b) e = cmod.collect_deleted_nodes(d.edges, d.nodes) assert e == {(Nodes.start, 0), (0, 2), (2, Nodes.end)} c = cmod.Insert(0, [3], 2) d = c.apply(b) e = cmod.Delete(2) f = e.apply(d) g = cmod.collect_deleted_nodes(f.edges, f.nodes) assert g == {(Nodes.start, 0), (0, 1), (0, 3), (1, Nodes.end), (3, Nodes.end)}
def test_diff_del(): a = cmod.FileReprEdit.from_size(3) assert a.node_list == [0, 1, 2] b = a.delete(0, 1) assert b.node_list == [1, 2] c = list(cmod.Change.from_diff(a, b)) assert c == [cmod.Delete(0)] b = a.delete(1, 1) assert b.node_list == [0, 2] c = list(cmod.Change.from_diff(a, b)) assert c == [cmod.Delete(1)] b = a.delete(1, 2) assert b.node_list == [0] c = list(cmod.Change.from_diff(a, b)) assert c == [cmod.Delete(1), cmod.Delete(2)]
def test_complex_del(): a = cmod.FileRepr([0, 1, 2]) b = cmod.State.from_file(a) c = cmod.Insert(Nodes.start, [3], 2) d = c.apply(b) assert d.nodes == [True, True, True, True] assert d.edges == { (Nodes.start, 0), (0, 1), (1, 2), (Nodes.start, 3), (3, 2), (2, Nodes.end), } e = cmod.Delete(0) f = e.apply(d) assert f.nodes == [False, True, True, True] assert f.edges == { (Nodes.start, 0), (0, 1), (1, 2), (Nodes.start, 3), (3, 2), (2, Nodes.end), }
def test_delete_apply(): a = cmod.FileRepr([0, 1, 2]) b = cmod.State.from_file(a) assert b.nodes == [True, True, True] assert b.edges == {(Nodes.start, 0), (0, 1), (1, 2), (2, Nodes.end)} c = cmod.Delete(1) d = c.apply(b) assert d.nodes == [True, False, True] assert d.edges == {(Nodes.start, 0), (0, 1), (1, 2), (2, Nodes.end)}
def test_diff_repl(): a = cmod.FileRepr([0, 1, 2]) b = cmod.FileRepr([0, 3, 2]) c = list(cmod.Change.from_diff(a, b)) assert c == [cmod.Delete(1), cmod.Insert(0, [3], 2)] a = cmod.FileRepr([0, 1, 2]) b = cmod.FileRepr([0, 1, 3]) c = list(cmod.Change.from_diff(a, b)) assert c == [cmod.Delete(2), cmod.Insert(1, [3], Nodes.end)] a = cmod.FileRepr([0, 1, 2]) b = cmod.FileRepr([3, 1, 2]) c = list(cmod.Change.from_diff(a, b)) assert c == [cmod.Delete(0), cmod.Insert(Nodes.start, [3], 1)] a = cmod.FileRepr([0, 1, 2]) b = cmod.FileRepr([0, 3, 4, 2]) c = list(cmod.Change.from_diff(a, b)) assert c == [cmod.Delete(1), cmod.Insert(0, [3, 4], 2)] a = cmod.FileRepr([0, 1, 2]) b = cmod.FileRepr([0, 3]) c = list(cmod.Change.from_diff(a, b)) assert c == [ cmod.Delete(1), cmod.Delete(2), cmod.Insert(0, [3], Nodes.end) ]
def test_collect_problem(): a = cmod.FileReprEdit.from_size(2) b = cmod.State.from_file(a) c = cmod.Delete(0).apply(b) assert c.nodes == [False, True] d = cmod.Insert(Nodes.start, [2], 1).apply(c) assert d.edges == { (Nodes.start, 0), (0, 1), (1, Nodes.end), (Nodes.start, 2), (2, 1), } e = cmod.collect_deleted_nodes(d.edges, d.nodes)