{"abstract":"A peer that has never heard from a client never receives its structs.","category":"CRDT convergence","checks":8,"contract":"The local store holds structs [client, clock, length] covering clocks clock..clock+length-1. The remote state vector maps client ids (decimal strings, as decoded from JSON) to the next clock it expects; absent clients expect 0. Send, sorted by client then clock, every struct part the remote lacks, slicing a partly known struct to start at the expected clock. Also return the local state vector.","evaluation_group":"w2-crdt-convergence-state-vector-diff","failed_approach":"Defaulting to clock 1 drops the first clock of every unknown client.","family":"w2-crdt-convergence-state-vector-diff-absent-client-default","id":"FA-75306","implementations":{"attempt":{"sha256":"70531acca9157be61752c394991307c3a30984c8f9c6c96e168bd2914d4728b0","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(structs, remote):\n    send = []\n    local = {}\n    for client, clock, length in sorted(structs):\n        local[str(client)] = max(local.get(str(client), 0), clock + length)\n        start = remote.get(str(client), 1)\n        if clock + length > start:\n            if clock < start:\n                send.append([client, start, clock + length - start])\n            else:\n                send.append([client, clock, length])\n    return {'send': send, 'state_vector': sorted([k, v] for k, v in local.items())}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = {\n    1: [('empty remote vector gets everything', [[[1, 0, 3], [1, 3, 2], [2, 0, 2], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {}], {'send': [[1, 0, 3], [1, 3, 2], [1, 5, 4], [2, 0, 2], [7, 0, 2], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 2], ['7', 3]]}), ('remote caught up gets nothing', [[[1, 0, 3], [1, 3, 2], [2, 0, 2], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 9, '2': 2, '7': 3}], {'send': [], 'state_vector': [['1', 9], ['2', 2], ['7', 3]]}), ('boundary between structs', [[[1, 0, 3], [1, 3, 2], [2, 0, 2], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 3, '7': 2}], {'send': [[1, 3, 2], [1, 5, 4], [2, 0, 2], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 2], ['7', 3]]}), ('partial struct is sliced', [[[1, 0, 3], [1, 3, 2], [2, 0, 2], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 4, '2': 1}], {'send': [[1, 4, 1], [1, 5, 4], [2, 1, 1], [7, 0, 2], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 2], ['7', 3]]}), ('remote ahead of local', [[[1, 0, 3], [1, 3, 2], [2, 0, 2], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 20, '2': 6, '7': 9}], {'send': [], 'state_vector': [['1', 9], ['2', 2], ['7', 3]]}), ('unknown remote clients count from zero', [[[1, 0, 3], [1, 3, 2], [2, 0, 2], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'2': 1}], {'send': [[1, 0, 3], [1, 3, 2], [1, 5, 4], [2, 1, 1], [7, 0, 2], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 2], ['7', 3]]}), ('late struct partially known', [[[1, 0, 3], [1, 3, 2], [2, 0, 2], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 7, '7': 1}], {'send': [[1, 7, 2], [2, 0, 2], [7, 1, 1], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 2], ['7', 3]]}), ('single client store', [[[4, 0, 3]], {'4': 1}], {'send': [[4, 1, 2]], 'state_vector': [['4', 3]]})],\n    2: [('empty remote vector gets everything', [[[1, 0, 3], [1, 3, 2], [2, 0, 3], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {}], {'send': [[1, 0, 3], [1, 3, 2], [1, 5, 4], [2, 0, 3], [7, 0, 2], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 3], ['7', 3]]}), ('remote caught up gets nothing', [[[1, 0, 3], [1, 3, 2], [2, 0, 3], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 9, '2': 3, '7': 3}], {'send': [], 'state_vector': [['1', 9], ['2', 3], ['7', 3]]}), ('boundary between structs', [[[1, 0, 3], [1, 3, 2], [2, 0, 3], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 3, '7': 2}], {'send': [[1, 3, 2], [1, 5, 4], [2, 0, 3], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 3], ['7', 3]]}), ('partial struct is sliced', [[[1, 0, 3], [1, 3, 2], [2, 0, 3], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 4, '2': 1}], {'send': [[1, 4, 1], [1, 5, 4], [2, 1, 2], [7, 0, 2], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 3], ['7', 3]]}), ('remote ahead of local', [[[1, 0, 3], [1, 3, 2], [2, 0, 3], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 20, '2': 7, '7': 9}], {'send': [], 'state_vector': [['1', 9], ['2', 3], ['7', 3]]}), ('unknown remote clients count from zero', [[[1, 0, 3], [1, 3, 2], [2, 0, 3], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'2': 2}], {'send': [[1, 0, 3], [1, 3, 2], [1, 5, 4], [2, 2, 1], [7, 0, 2], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 3], ['7', 3]]}), ('late struct partially known', [[[1, 0, 3], [1, 3, 2], [2, 0, 3], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 7, '7': 1}], {'send': [[1, 7, 2], [2, 0, 3], [7, 1, 1], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 3], ['7', 3]]}), ('single client store', [[[4, 0, 4]], {'4': 1}], {'send': [[4, 1, 3]], 'state_vector': [['4', 4]]})],\n    3: [('empty remote vector gets everything', [[[1, 0, 3], [1, 3, 2], [2, 0, 4], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {}], {'send': [[1, 0, 3], [1, 3, 2], [1, 5, 4], [2, 0, 4], [7, 0, 2], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 4], ['7', 3]]}), ('remote caught up gets nothing', [[[1, 0, 3], [1, 3, 2], [2, 0, 4], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 9, '2': 4, '7': 3}], {'send': [], 'state_vector': [['1', 9], ['2', 4], ['7', 3]]}), ('boundary between structs', [[[1, 0, 3], [1, 3, 2], [2, 0, 4], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 3, '7': 2}], {'send': [[1, 3, 2], [1, 5, 4], [2, 0, 4], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 4], ['7', 3]]}), ('partial struct is sliced', [[[1, 0, 3], [1, 3, 2], [2, 0, 4], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 4, '2': 1}], {'send': [[1, 4, 1], [1, 5, 4], [2, 1, 3], [7, 0, 2], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 4], ['7', 3]]}), ('remote ahead of local', [[[1, 0, 3], [1, 3, 2], [2, 0, 4], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 20, '2': 8, '7': 9}], {'send': [], 'state_vector': [['1', 9], ['2', 4], ['7', 3]]}), ('unknown remote clients count from zero', [[[1, 0, 3], [1, 3, 2], [2, 0, 4], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'2': 3}], {'send': [[1, 0, 3], [1, 3, 2], [1, 5, 4], [2, 3, 1], [7, 0, 2], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 4], ['7', 3]]}), ('late struct partially known', [[[1, 0, 3], [1, 3, 2], [2, 0, 4], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 7, '7': 1}], {'send': [[1, 7, 2], [2, 0, 4], [7, 1, 1], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 4], ['7', 3]]}), ('single client store', [[[4, 0, 5]], {'4': 1}], {'send': [[4, 1, 4]], 'state_vector': [['4', 5]]})],\n    4: [('empty remote vector gets everything', [[[1, 0, 3], [1, 3, 2], [2, 0, 5], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {}], {'send': [[1, 0, 3], [1, 3, 2], [1, 5, 4], [2, 0, 5], [7, 0, 2], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 5], ['7', 3]]}), ('remote caught up gets nothing', [[[1, 0, 3], [1, 3, 2], [2, 0, 5], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 9, '2': 5, '7': 3}], {'send': [], 'state_vector': [['1', 9], ['2', 5], ['7', 3]]}), ('boundary between structs', [[[1, 0, 3], [1, 3, 2], [2, 0, 5], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 3, '7': 2}], {'send': [[1, 3, 2], [1, 5, 4], [2, 0, 5], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 5], ['7', 3]]}), ('partial struct is sliced', [[[1, 0, 3], [1, 3, 2], [2, 0, 5], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 4, '2': 1}], {'send': [[1, 4, 1], [1, 5, 4], [2, 1, 4], [7, 0, 2], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 5], ['7', 3]]}), ('remote ahead of local', [[[1, 0, 3], [1, 3, 2], [2, 0, 5], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 20, '2': 9, '7': 9}], {'send': [], 'state_vector': [['1', 9], ['2', 5], ['7', 3]]}), ('unknown remote clients count from zero', [[[1, 0, 3], [1, 3, 2], [2, 0, 5], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'2': 4}], {'send': [[1, 0, 3], [1, 3, 2], [1, 5, 4], [2, 4, 1], [7, 0, 2], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 5], ['7', 3]]}), ('late struct partially known', [[[1, 0, 3], [1, 3, 2], [2, 0, 5], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 7, '7': 1}], {'send': [[1, 7, 2], [2, 0, 5], [7, 1, 1], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 5], ['7', 3]]}), ('single client store', [[[4, 0, 6]], {'4': 1}], {'send': [[4, 1, 5]], 'state_vector': [['4', 6]]})],\n    5: [('empty remote vector gets everything', [[[1, 0, 3], [1, 3, 2], [2, 0, 6], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {}], {'send': [[1, 0, 3], [1, 3, 2], [1, 5, 4], [2, 0, 6], [7, 0, 2], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 6], ['7', 3]]}), ('remote caught up gets nothing', [[[1, 0, 3], [1, 3, 2], [2, 0, 6], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 9, '2': 6, '7': 3}], {'send': [], 'state_vector': [['1', 9], ['2', 6], ['7', 3]]}), ('boundary between structs', [[[1, 0, 3], [1, 3, 2], [2, 0, 6], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 3, '7': 2}], {'send': [[1, 3, 2], [1, 5, 4], [2, 0, 6], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 6], ['7', 3]]}), ('partial struct is sliced', [[[1, 0, 3], [1, 3, 2], [2, 0, 6], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 4, '2': 1}], {'send': [[1, 4, 1], [1, 5, 4], [2, 1, 5], [7, 0, 2], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 6], ['7', 3]]}), ('remote ahead of local', [[[1, 0, 3], [1, 3, 2], [2, 0, 6], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 20, '2': 10, '7': 9}], {'send': [], 'state_vector': [['1', 9], ['2', 6], ['7', 3]]}), ('unknown remote clients count from zero', [[[1, 0, 3], [1, 3, 2], [2, 0, 6], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'2': 5}], {'send': [[1, 0, 3], [1, 3, 2], [1, 5, 4], [2, 5, 1], [7, 0, 2], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 6], ['7', 3]]}), ('late struct partially known', [[[1, 0, 3], [1, 3, 2], [2, 0, 6], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 7, '7': 1}], {'send': [[1, 7, 2], [2, 0, 6], [7, 1, 1], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 6], ['7', 3]]}), ('single client store', [[[4, 0, 7]], {'4': 1}], {'send': [[4, 1, 6]], 'state_vector': [['4', 7]]})],\n}[N]\nfor label, args, expected in cases:\n    check(label, solve(*args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"15a76a9d0e92c6f46c07f9f959b064fe6a723cecd946226b3830626be0d0807d","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(structs, remote):\n    send = []\n    local = {}\n    for client, clock, length in sorted(structs):\n        local[str(client)] = max(local.get(str(client), 0), clock + length)\n        if str(client) not in remote:\n            continue\n        start = remote[str(client)]\n        if clock + length > start:\n            if clock < start:\n                send.append([client, start, clock + length - start])\n            else:\n                send.append([client, clock, length])\n    return {'send': send, 'state_vector': sorted([k, v] for k, v in local.items())}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = {\n    1: [('empty remote vector gets everything', [[[1, 0, 3], [1, 3, 2], [2, 0, 2], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {}], {'send': [[1, 0, 3], [1, 3, 2], [1, 5, 4], [2, 0, 2], [7, 0, 2], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 2], ['7', 3]]}), ('remote caught up gets nothing', [[[1, 0, 3], [1, 3, 2], [2, 0, 2], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 9, '2': 2, '7': 3}], {'send': [], 'state_vector': [['1', 9], ['2', 2], ['7', 3]]}), ('boundary between structs', [[[1, 0, 3], [1, 3, 2], [2, 0, 2], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 3, '7': 2}], {'send': [[1, 3, 2], [1, 5, 4], [2, 0, 2], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 2], ['7', 3]]}), ('partial struct is sliced', [[[1, 0, 3], [1, 3, 2], [2, 0, 2], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 4, '2': 1}], {'send': [[1, 4, 1], [1, 5, 4], [2, 1, 1], [7, 0, 2], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 2], ['7', 3]]}), ('remote ahead of local', [[[1, 0, 3], [1, 3, 2], [2, 0, 2], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 20, '2': 6, '7': 9}], {'send': [], 'state_vector': [['1', 9], ['2', 2], ['7', 3]]}), ('unknown remote clients count from zero', [[[1, 0, 3], [1, 3, 2], [2, 0, 2], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'2': 1}], {'send': [[1, 0, 3], [1, 3, 2], [1, 5, 4], [2, 1, 1], [7, 0, 2], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 2], ['7', 3]]}), ('late struct partially known', [[[1, 0, 3], [1, 3, 2], [2, 0, 2], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 7, '7': 1}], {'send': [[1, 7, 2], [2, 0, 2], [7, 1, 1], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 2], ['7', 3]]}), ('single client store', [[[4, 0, 3]], {'4': 1}], {'send': [[4, 1, 2]], 'state_vector': [['4', 3]]})],\n    2: [('empty remote vector gets everything', [[[1, 0, 3], [1, 3, 2], [2, 0, 3], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {}], {'send': [[1, 0, 3], [1, 3, 2], [1, 5, 4], [2, 0, 3], [7, 0, 2], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 3], ['7', 3]]}), ('remote caught up gets nothing', [[[1, 0, 3], [1, 3, 2], [2, 0, 3], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 9, '2': 3, '7': 3}], {'send': [], 'state_vector': [['1', 9], ['2', 3], ['7', 3]]}), ('boundary between structs', [[[1, 0, 3], [1, 3, 2], [2, 0, 3], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 3, '7': 2}], {'send': [[1, 3, 2], [1, 5, 4], [2, 0, 3], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 3], ['7', 3]]}), ('partial struct is sliced', [[[1, 0, 3], [1, 3, 2], [2, 0, 3], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 4, '2': 1}], {'send': [[1, 4, 1], [1, 5, 4], [2, 1, 2], [7, 0, 2], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 3], ['7', 3]]}), ('remote ahead of local', [[[1, 0, 3], [1, 3, 2], [2, 0, 3], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 20, '2': 7, '7': 9}], {'send': [], 'state_vector': [['1', 9], ['2', 3], ['7', 3]]}), ('unknown remote clients count from zero', [[[1, 0, 3], [1, 3, 2], [2, 0, 3], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'2': 2}], {'send': [[1, 0, 3], [1, 3, 2], [1, 5, 4], [2, 2, 1], [7, 0, 2], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 3], ['7', 3]]}), ('late struct partially known', [[[1, 0, 3], [1, 3, 2], [2, 0, 3], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 7, '7': 1}], {'send': [[1, 7, 2], [2, 0, 3], [7, 1, 1], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 3], ['7', 3]]}), ('single client store', [[[4, 0, 4]], {'4': 1}], {'send': [[4, 1, 3]], 'state_vector': [['4', 4]]})],\n    3: [('empty remote vector gets everything', [[[1, 0, 3], [1, 3, 2], [2, 0, 4], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {}], {'send': [[1, 0, 3], [1, 3, 2], [1, 5, 4], [2, 0, 4], [7, 0, 2], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 4], ['7', 3]]}), ('remote caught up gets nothing', [[[1, 0, 3], [1, 3, 2], [2, 0, 4], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 9, '2': 4, '7': 3}], {'send': [], 'state_vector': [['1', 9], ['2', 4], ['7', 3]]}), ('boundary between structs', [[[1, 0, 3], [1, 3, 2], [2, 0, 4], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 3, '7': 2}], {'send': [[1, 3, 2], [1, 5, 4], [2, 0, 4], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 4], ['7', 3]]}), ('partial struct is sliced', [[[1, 0, 3], [1, 3, 2], [2, 0, 4], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 4, '2': 1}], {'send': [[1, 4, 1], [1, 5, 4], [2, 1, 3], [7, 0, 2], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 4], ['7', 3]]}), ('remote ahead of local', [[[1, 0, 3], [1, 3, 2], [2, 0, 4], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 20, '2': 8, '7': 9}], {'send': [], 'state_vector': [['1', 9], ['2', 4], ['7', 3]]}), ('unknown remote clients count from zero', [[[1, 0, 3], [1, 3, 2], [2, 0, 4], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'2': 3}], {'send': [[1, 0, 3], [1, 3, 2], [1, 5, 4], [2, 3, 1], [7, 0, 2], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 4], ['7', 3]]}), ('late struct partially known', [[[1, 0, 3], [1, 3, 2], [2, 0, 4], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 7, '7': 1}], {'send': [[1, 7, 2], [2, 0, 4], [7, 1, 1], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 4], ['7', 3]]}), ('single client store', [[[4, 0, 5]], {'4': 1}], {'send': [[4, 1, 4]], 'state_vector': [['4', 5]]})],\n    4: [('empty remote vector gets everything', [[[1, 0, 3], [1, 3, 2], [2, 0, 5], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {}], {'send': [[1, 0, 3], [1, 3, 2], [1, 5, 4], [2, 0, 5], [7, 0, 2], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 5], ['7', 3]]}), ('remote caught up gets nothing', [[[1, 0, 3], [1, 3, 2], [2, 0, 5], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 9, '2': 5, '7': 3}], {'send': [], 'state_vector': [['1', 9], ['2', 5], ['7', 3]]}), ('boundary between structs', [[[1, 0, 3], [1, 3, 2], [2, 0, 5], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 3, '7': 2}], {'send': [[1, 3, 2], [1, 5, 4], [2, 0, 5], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 5], ['7', 3]]}), ('partial struct is sliced', [[[1, 0, 3], [1, 3, 2], [2, 0, 5], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 4, '2': 1}], {'send': [[1, 4, 1], [1, 5, 4], [2, 1, 4], [7, 0, 2], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 5], ['7', 3]]}), ('remote ahead of local', [[[1, 0, 3], [1, 3, 2], [2, 0, 5], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 20, '2': 9, '7': 9}], {'send': [], 'state_vector': [['1', 9], ['2', 5], ['7', 3]]}), ('unknown remote clients count from zero', [[[1, 0, 3], [1, 3, 2], [2, 0, 5], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'2': 4}], {'send': [[1, 0, 3], [1, 3, 2], [1, 5, 4], [2, 4, 1], [7, 0, 2], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 5], ['7', 3]]}), ('late struct partially known', [[[1, 0, 3], [1, 3, 2], [2, 0, 5], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 7, '7': 1}], {'send': [[1, 7, 2], [2, 0, 5], [7, 1, 1], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 5], ['7', 3]]}), ('single client store', [[[4, 0, 6]], {'4': 1}], {'send': [[4, 1, 5]], 'state_vector': [['4', 6]]})],\n    5: [('empty remote vector gets everything', [[[1, 0, 3], [1, 3, 2], [2, 0, 6], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {}], {'send': [[1, 0, 3], [1, 3, 2], [1, 5, 4], [2, 0, 6], [7, 0, 2], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 6], ['7', 3]]}), ('remote caught up gets nothing', [[[1, 0, 3], [1, 3, 2], [2, 0, 6], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 9, '2': 6, '7': 3}], {'send': [], 'state_vector': [['1', 9], ['2', 6], ['7', 3]]}), ('boundary between structs', [[[1, 0, 3], [1, 3, 2], [2, 0, 6], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 3, '7': 2}], {'send': [[1, 3, 2], [1, 5, 4], [2, 0, 6], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 6], ['7', 3]]}), ('partial struct is sliced', [[[1, 0, 3], [1, 3, 2], [2, 0, 6], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 4, '2': 1}], {'send': [[1, 4, 1], [1, 5, 4], [2, 1, 5], [7, 0, 2], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 6], ['7', 3]]}), ('remote ahead of local', [[[1, 0, 3], [1, 3, 2], [2, 0, 6], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 20, '2': 10, '7': 9}], {'send': [], 'state_vector': [['1', 9], ['2', 6], ['7', 3]]}), ('unknown remote clients count from zero', [[[1, 0, 3], [1, 3, 2], [2, 0, 6], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'2': 5}], {'send': [[1, 0, 3], [1, 3, 2], [1, 5, 4], [2, 5, 1], [7, 0, 2], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 6], ['7', 3]]}), ('late struct partially known', [[[1, 0, 3], [1, 3, 2], [2, 0, 6], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 7, '7': 1}], {'send': [[1, 7, 2], [2, 0, 6], [7, 1, 1], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 6], ['7', 3]]}), ('single client store', [[[4, 0, 7]], {'4': 1}], {'send': [[4, 1, 6]], 'state_vector': [['4', 7]]})],\n}[N]\nfor label, args, expected in cases:\n    check(label, solve(*args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"fixed":{"sha256":"8153beb4fde141a6a70103d2f58d6274a88cc1c5cf41bf00ac0262016571309f","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(structs, remote):\n    send = []\n    local = {}\n    for client, clock, length in sorted(structs):\n        local[str(client)] = max(local.get(str(client), 0), clock + length)\n        start = remote.get(str(client), 0)\n        if clock + length > start:\n            if clock < start:\n                send.append([client, start, clock + length - start])\n            else:\n                send.append([client, clock, length])\n    return {'send': send, 'state_vector': sorted([k, v] for k, v in local.items())}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = {\n    1: [('empty remote vector gets everything', [[[1, 0, 3], [1, 3, 2], [2, 0, 2], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {}], {'send': [[1, 0, 3], [1, 3, 2], [1, 5, 4], [2, 0, 2], [7, 0, 2], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 2], ['7', 3]]}), ('remote caught up gets nothing', [[[1, 0, 3], [1, 3, 2], [2, 0, 2], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 9, '2': 2, '7': 3}], {'send': [], 'state_vector': [['1', 9], ['2', 2], ['7', 3]]}), ('boundary between structs', [[[1, 0, 3], [1, 3, 2], [2, 0, 2], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 3, '7': 2}], {'send': [[1, 3, 2], [1, 5, 4], [2, 0, 2], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 2], ['7', 3]]}), ('partial struct is sliced', [[[1, 0, 3], [1, 3, 2], [2, 0, 2], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 4, '2': 1}], {'send': [[1, 4, 1], [1, 5, 4], [2, 1, 1], [7, 0, 2], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 2], ['7', 3]]}), ('remote ahead of local', [[[1, 0, 3], [1, 3, 2], [2, 0, 2], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 20, '2': 6, '7': 9}], {'send': [], 'state_vector': [['1', 9], ['2', 2], ['7', 3]]}), ('unknown remote clients count from zero', [[[1, 0, 3], [1, 3, 2], [2, 0, 2], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'2': 1}], {'send': [[1, 0, 3], [1, 3, 2], [1, 5, 4], [2, 1, 1], [7, 0, 2], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 2], ['7', 3]]}), ('late struct partially known', [[[1, 0, 3], [1, 3, 2], [2, 0, 2], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 7, '7': 1}], {'send': [[1, 7, 2], [2, 0, 2], [7, 1, 1], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 2], ['7', 3]]}), ('single client store', [[[4, 0, 3]], {'4': 1}], {'send': [[4, 1, 2]], 'state_vector': [['4', 3]]})],\n    2: [('empty remote vector gets everything', [[[1, 0, 3], [1, 3, 2], [2, 0, 3], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {}], {'send': [[1, 0, 3], [1, 3, 2], [1, 5, 4], [2, 0, 3], [7, 0, 2], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 3], ['7', 3]]}), ('remote caught up gets nothing', [[[1, 0, 3], [1, 3, 2], [2, 0, 3], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 9, '2': 3, '7': 3}], {'send': [], 'state_vector': [['1', 9], ['2', 3], ['7', 3]]}), ('boundary between structs', [[[1, 0, 3], [1, 3, 2], [2, 0, 3], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 3, '7': 2}], {'send': [[1, 3, 2], [1, 5, 4], [2, 0, 3], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 3], ['7', 3]]}), ('partial struct is sliced', [[[1, 0, 3], [1, 3, 2], [2, 0, 3], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 4, '2': 1}], {'send': [[1, 4, 1], [1, 5, 4], [2, 1, 2], [7, 0, 2], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 3], ['7', 3]]}), ('remote ahead of local', [[[1, 0, 3], [1, 3, 2], [2, 0, 3], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 20, '2': 7, '7': 9}], {'send': [], 'state_vector': [['1', 9], ['2', 3], ['7', 3]]}), ('unknown remote clients count from zero', [[[1, 0, 3], [1, 3, 2], [2, 0, 3], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'2': 2}], {'send': [[1, 0, 3], [1, 3, 2], [1, 5, 4], [2, 2, 1], [7, 0, 2], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 3], ['7', 3]]}), ('late struct partially known', [[[1, 0, 3], [1, 3, 2], [2, 0, 3], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 7, '7': 1}], {'send': [[1, 7, 2], [2, 0, 3], [7, 1, 1], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 3], ['7', 3]]}), ('single client store', [[[4, 0, 4]], {'4': 1}], {'send': [[4, 1, 3]], 'state_vector': [['4', 4]]})],\n    3: [('empty remote vector gets everything', [[[1, 0, 3], [1, 3, 2], [2, 0, 4], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {}], {'send': [[1, 0, 3], [1, 3, 2], [1, 5, 4], [2, 0, 4], [7, 0, 2], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 4], ['7', 3]]}), ('remote caught up gets nothing', [[[1, 0, 3], [1, 3, 2], [2, 0, 4], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 9, '2': 4, '7': 3}], {'send': [], 'state_vector': [['1', 9], ['2', 4], ['7', 3]]}), ('boundary between structs', [[[1, 0, 3], [1, 3, 2], [2, 0, 4], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 3, '7': 2}], {'send': [[1, 3, 2], [1, 5, 4], [2, 0, 4], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 4], ['7', 3]]}), ('partial struct is sliced', [[[1, 0, 3], [1, 3, 2], [2, 0, 4], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 4, '2': 1}], {'send': [[1, 4, 1], [1, 5, 4], [2, 1, 3], [7, 0, 2], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 4], ['7', 3]]}), ('remote ahead of local', [[[1, 0, 3], [1, 3, 2], [2, 0, 4], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 20, '2': 8, '7': 9}], {'send': [], 'state_vector': [['1', 9], ['2', 4], ['7', 3]]}), ('unknown remote clients count from zero', [[[1, 0, 3], [1, 3, 2], [2, 0, 4], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'2': 3}], {'send': [[1, 0, 3], [1, 3, 2], [1, 5, 4], [2, 3, 1], [7, 0, 2], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 4], ['7', 3]]}), ('late struct partially known', [[[1, 0, 3], [1, 3, 2], [2, 0, 4], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 7, '7': 1}], {'send': [[1, 7, 2], [2, 0, 4], [7, 1, 1], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 4], ['7', 3]]}), ('single client store', [[[4, 0, 5]], {'4': 1}], {'send': [[4, 1, 4]], 'state_vector': [['4', 5]]})],\n    4: [('empty remote vector gets everything', [[[1, 0, 3], [1, 3, 2], [2, 0, 5], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {}], {'send': [[1, 0, 3], [1, 3, 2], [1, 5, 4], [2, 0, 5], [7, 0, 2], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 5], ['7', 3]]}), ('remote caught up gets nothing', [[[1, 0, 3], [1, 3, 2], [2, 0, 5], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 9, '2': 5, '7': 3}], {'send': [], 'state_vector': [['1', 9], ['2', 5], ['7', 3]]}), ('boundary between structs', [[[1, 0, 3], [1, 3, 2], [2, 0, 5], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 3, '7': 2}], {'send': [[1, 3, 2], [1, 5, 4], [2, 0, 5], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 5], ['7', 3]]}), ('partial struct is sliced', [[[1, 0, 3], [1, 3, 2], [2, 0, 5], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 4, '2': 1}], {'send': [[1, 4, 1], [1, 5, 4], [2, 1, 4], [7, 0, 2], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 5], ['7', 3]]}), ('remote ahead of local', [[[1, 0, 3], [1, 3, 2], [2, 0, 5], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 20, '2': 9, '7': 9}], {'send': [], 'state_vector': [['1', 9], ['2', 5], ['7', 3]]}), ('unknown remote clients count from zero', [[[1, 0, 3], [1, 3, 2], [2, 0, 5], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'2': 4}], {'send': [[1, 0, 3], [1, 3, 2], [1, 5, 4], [2, 4, 1], [7, 0, 2], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 5], ['7', 3]]}), ('late struct partially known', [[[1, 0, 3], [1, 3, 2], [2, 0, 5], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 7, '7': 1}], {'send': [[1, 7, 2], [2, 0, 5], [7, 1, 1], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 5], ['7', 3]]}), ('single client store', [[[4, 0, 6]], {'4': 1}], {'send': [[4, 1, 5]], 'state_vector': [['4', 6]]})],\n    5: [('empty remote vector gets everything', [[[1, 0, 3], [1, 3, 2], [2, 0, 6], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {}], {'send': [[1, 0, 3], [1, 3, 2], [1, 5, 4], [2, 0, 6], [7, 0, 2], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 6], ['7', 3]]}), ('remote caught up gets nothing', [[[1, 0, 3], [1, 3, 2], [2, 0, 6], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 9, '2': 6, '7': 3}], {'send': [], 'state_vector': [['1', 9], ['2', 6], ['7', 3]]}), ('boundary between structs', [[[1, 0, 3], [1, 3, 2], [2, 0, 6], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 3, '7': 2}], {'send': [[1, 3, 2], [1, 5, 4], [2, 0, 6], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 6], ['7', 3]]}), ('partial struct is sliced', [[[1, 0, 3], [1, 3, 2], [2, 0, 6], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 4, '2': 1}], {'send': [[1, 4, 1], [1, 5, 4], [2, 1, 5], [7, 0, 2], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 6], ['7', 3]]}), ('remote ahead of local', [[[1, 0, 3], [1, 3, 2], [2, 0, 6], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 20, '2': 10, '7': 9}], {'send': [], 'state_vector': [['1', 9], ['2', 6], ['7', 3]]}), ('unknown remote clients count from zero', [[[1, 0, 3], [1, 3, 2], [2, 0, 6], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'2': 5}], {'send': [[1, 0, 3], [1, 3, 2], [1, 5, 4], [2, 5, 1], [7, 0, 2], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 6], ['7', 3]]}), ('late struct partially known', [[[1, 0, 3], [1, 3, 2], [2, 0, 6], [1, 5, 4], [7, 0, 2], [7, 2, 1]], {'1': 7, '7': 1}], {'send': [[1, 7, 2], [2, 0, 6], [7, 1, 1], [7, 2, 1]], 'state_vector': [['1', 9], ['2', 6], ['7', 3]]}), ('single client store', [[[4, 0, 7]], {'4': 1}], {'send': [[4, 1, 6]], 'state_vector': [['4', 7]]})],\n}[N]\nfor label, args, expected in cases:\n    check(label, solve(*args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"A deterministic, bounded teaching model of one replicated data type with stipulated operation and merge rules; it is not a production CRDT library and makes no claim of conformance to any specific published design. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"w2-crdt-convergence-state-vector-diff-absent-client-default","generated_at":"2026-09-29T14:49:05.277560+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Delta sync in sequence CRDTs exchanges state vectors to ship only the structs the peer is missing.","repair":"Treat an absent client as expecting clock 0.","root_cause":"Clients missing from the remote vector are skipped instead of defaulting to clock 0.","sha256":"2b5d62b3e179e4232411607d89d27ae194170bb61f0885bdb6aad2287d2a3de9","title":"State vector diff: clients unknown to the peer are never sent · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":44.067,"exit_code":1,"observations":[{"actual":{"send":[[1,1,2],[1,3,2],[1,5,4],[2,1,1],[7,1,1],[7,2,1]],"state_vector":[["1",9],["2",2],["7",3]]},"check":"empty remote vector gets everything","expected":{"send":[[1,0,3],[1,3,2],[1,5,4],[2,0,2],[7,0,2],[7,2,1]],"state_vector":[["1",9],["2",2],["7",3]]},"passed":false},{"actual":{"send":[],"state_vector":[["1",9],["2",2],["7",3]]},"check":"remote caught up gets nothing","expected":{"send":[],"state_vector":[["1",9],["2",2],["7",3]]},"passed":true},{"actual":{"send":[[1,3,2],[1,5,4],[2,1,1],[7,2,1]],"state_vector":[["1",9],["2",2],["7",3]]},"check":"boundary between structs","expected":{"send":[[1,3,2],[1,5,4],[2,0,2],[7,2,1]],"state_vector":[["1",9],["2",2],["7",3]]},"passed":false},{"actual":{"send":[[1,4,1],[1,5,4],[2,1,1],[7,1,1],[7,2,1]],"state_vector":[["1",9],["2",2],["7",3]]},"check":"partial struct is sliced","expected":{"send":[[1,4,1],[1,5,4],[2,1,1],[7,0,2],[7,2,1]],"state_vector":[["1",9],["2",2],["7",3]]},"passed":false},{"actual":{"send":[],"state_vector":[["1",9],["2",2],["7",3]]},"check":"remote ahead of local","expected":{"send":[],"state_vector":[["1",9],["2",2],["7",3]]},"passed":true},{"actual":{"send":[[1,1,2],[1,3,2],[1,5,4],[2,1,1],[7,1,1],[7,2,1]],"state_vector":[["1",9],["2",2],["7",3]]},"check":"unknown remote clients count from zero","expected":{"send":[[1,0,3],[1,3,2],[1,5,4],[2,1,1],[7,0,2],[7,2,1]],"state_vector":[["1",9],["2",2],["7",3]]},"passed":false},{"actual":{"send":[[1,7,2],[2,1,1],[7,1,1],[7,2,1]],"state_vector":[["1",9],["2",2],["7",3]]},"check":"late struct partially known","expected":{"send":[[1,7,2],[2,0,2],[7,1,1],[7,2,1]],"state_vector":[["1",9],["2",2],["7",3]]},"passed":false},{"actual":{"send":[[4,1,2]],"state_vector":[["4",3]]},"check":"single client store","expected":{"send":[[4,1,2]],"state_vector":[["4",3]]},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"empty remote vector gets everything\", \"actual\": {\"send\": [[1, 1, 2], [1, 3, 2], [1, 5, 4], [2, 1, 1], [7, 1, 1], [7, 2, 1]], \"state_vector\": [[\"1\", 9], [\"2\", 2], [\"7\", 3]]}, \"expected\": {\"send\": [[1, 0, 3], [1, 3, 2], [1, 5, 4], [2, 0, 2], [7, 0, 2], [7, 2, 1]], \"state_vector\": [[\"1\", 9], [\"2\", 2], [\"7\", 3]]}, \"passed\": false}, {\"check\": \"remote caught up gets nothing\", \"actual\": {\"send\": [], \"state_vector\": [[\"1\", 9], [\"2\", 2], [\"7\", 3]]}, \"expected\": {\"send\": [], \"state_vector\": [[\"1\", 9], [\"2\", 2], [\"7\", 3]]}, \"passed\": true}, {\"check\": \"boundary between structs\", \"actual\": {\"send\": [[1, 3, 2], [1, 5, 4], [2, 1, 1], [7, 2, 1]], \"state_vector\": [[\"1\", 9], [\"2\", 2], [\"7\", 3]]}, \"expected\": {\"send\": [[1, 3, 2], [1, 5, 4], [2, 0, 2], [7, 2, 1]], \"state_vector\": [[\"1\", 9], [\"2\", 2], [\"7\", 3]]}, \"passed\": false}, {\"check\": \"partial struct is sliced\", \"actual\": {\"send\": [[1, 4, 1], [1, 5, 4], [2, 1, 1], [7, 1, 1], [7, 2, 1]], \"state_vector\": [[\"1\", 9], [\"2\", 2], [\"7\", 3]]}, \"expected\": {\"send\": [[1, 4, 1], [1, 5, 4], [2, 1, 1], [7, 0, 2], [7, 2, 1]], \"state_vector\": [[\"1\", 9], [\"2\", 2], [\"7\", 3]]}, \"passed\": false}, {\"check\": \"remote ahead of local\", \"actual\": {\"send\": [], \"state_vector\": [[\"1\", 9], [\"2\", 2], [\"7\", 3]]}, \"expected\": {\"send\": [], \"state_vector\": [[\"1\", 9], [\"2\", 2], [\"7\", 3]]}, \"passed\": true}, {\"check\": \"unknown remote clients count from zero\", \"actual\": {\"send\": [[1, 1, 2], [1, 3, 2], [1, 5, 4], [2, 1, 1], [7, 1, 1], [7, 2, 1]], \"state_vector\": [[\"1\", 9], [\"2\", 2], [\"7\", 3]]}, \"expected\": {\"send\": [[1, 0, 3], [1, 3, 2], [1, 5, 4], [2, 1, 1], [7, 0, 2], [7, 2, 1]], \"state_vector\": [[\"1\", 9], [\"2\", 2], [\"7\", 3]]}, \"passed\": false}, {\"check\": \"late struct partially known\", \"actual\": {\"send\": [[1, 7, 2], [2, 1, 1], [7, 1, 1], [7, 2, 1]], \"state_vector\": [[\"1\", 9], [\"2\", 2], [\"7\", 3]]}, \"expected\": {\"send\": [[1, 7, 2], [2, 0, 2], [7, 1, 1], [7, 2, 1]], \"state_vector\": [[\"1\", 9], [\"2\", 2], [\"7\", 3]]}, \"passed\": false}, {\"check\": \"single client store\", \"actual\": {\"send\": [[4, 1, 2]], \"state_vector\": [[\"4\", 3]]}, \"expected\": {\"send\": [[4, 1, 2]], \"state_vector\": [[\"4\", 3]]}, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":45.833,"exit_code":1,"observations":[{"actual":{"send":[],"state_vector":[["1",9],["2",2],["7",3]]},"check":"empty remote vector gets everything","expected":{"send":[[1,0,3],[1,3,2],[1,5,4],[2,0,2],[7,0,2],[7,2,1]],"state_vector":[["1",9],["2",2],["7",3]]},"passed":false},{"actual":{"send":[],"state_vector":[["1",9],["2",2],["7",3]]},"check":"remote caught up gets nothing","expected":{"send":[],"state_vector":[["1",9],["2",2],["7",3]]},"passed":true},{"actual":{"send":[[1,3,2],[1,5,4],[7,2,1]],"state_vector":[["1",9],["2",2],["7",3]]},"check":"boundary between structs","expected":{"send":[[1,3,2],[1,5,4],[2,0,2],[7,2,1]],"state_vector":[["1",9],["2",2],["7",3]]},"passed":false},{"actual":{"send":[[1,4,1],[1,5,4],[2,1,1]],"state_vector":[["1",9],["2",2],["7",3]]},"check":"partial struct is sliced","expected":{"send":[[1,4,1],[1,5,4],[2,1,1],[7,0,2],[7,2,1]],"state_vector":[["1",9],["2",2],["7",3]]},"passed":false},{"actual":{"send":[],"state_vector":[["1",9],["2",2],["7",3]]},"check":"remote ahead of local","expected":{"send":[],"state_vector":[["1",9],["2",2],["7",3]]},"passed":true},{"actual":{"send":[[2,1,1]],"state_vector":[["1",9],["2",2],["7",3]]},"check":"unknown remote clients count from zero","expected":{"send":[[1,0,3],[1,3,2],[1,5,4],[2,1,1],[7,0,2],[7,2,1]],"state_vector":[["1",9],["2",2],["7",3]]},"passed":false},{"actual":{"send":[[1,7,2],[7,1,1],[7,2,1]],"state_vector":[["1",9],["2",2],["7",3]]},"check":"late struct partially known","expected":{"send":[[1,7,2],[2,0,2],[7,1,1],[7,2,1]],"state_vector":[["1",9],["2",2],["7",3]]},"passed":false},{"actual":{"send":[[4,1,2]],"state_vector":[["4",3]]},"check":"single client store","expected":{"send":[[4,1,2]],"state_vector":[["4",3]]},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"empty remote vector gets everything\", \"actual\": {\"send\": [], \"state_vector\": [[\"1\", 9], [\"2\", 2], [\"7\", 3]]}, \"expected\": {\"send\": [[1, 0, 3], [1, 3, 2], [1, 5, 4], [2, 0, 2], [7, 0, 2], [7, 2, 1]], \"state_vector\": [[\"1\", 9], [\"2\", 2], [\"7\", 3]]}, \"passed\": false}, {\"check\": \"remote caught up gets nothing\", \"actual\": {\"send\": [], \"state_vector\": [[\"1\", 9], [\"2\", 2], [\"7\", 3]]}, \"expected\": {\"send\": [], \"state_vector\": [[\"1\", 9], [\"2\", 2], [\"7\", 3]]}, \"passed\": true}, {\"check\": \"boundary between structs\", \"actual\": {\"send\": [[1, 3, 2], [1, 5, 4], [7, 2, 1]], \"state_vector\": [[\"1\", 9], [\"2\", 2], [\"7\", 3]]}, \"expected\": {\"send\": [[1, 3, 2], [1, 5, 4], [2, 0, 2], [7, 2, 1]], \"state_vector\": [[\"1\", 9], [\"2\", 2], [\"7\", 3]]}, \"passed\": false}, {\"check\": \"partial struct is sliced\", \"actual\": {\"send\": [[1, 4, 1], [1, 5, 4], [2, 1, 1]], \"state_vector\": [[\"1\", 9], [\"2\", 2], [\"7\", 3]]}, \"expected\": {\"send\": [[1, 4, 1], [1, 5, 4], [2, 1, 1], [7, 0, 2], [7, 2, 1]], \"state_vector\": [[\"1\", 9], [\"2\", 2], [\"7\", 3]]}, \"passed\": false}, {\"check\": \"remote ahead of local\", \"actual\": {\"send\": [], \"state_vector\": [[\"1\", 9], [\"2\", 2], [\"7\", 3]]}, \"expected\": {\"send\": [], \"state_vector\": [[\"1\", 9], [\"2\", 2], [\"7\", 3]]}, \"passed\": true}, {\"check\": \"unknown remote clients count from zero\", \"actual\": {\"send\": [[2, 1, 1]], \"state_vector\": [[\"1\", 9], [\"2\", 2], [\"7\", 3]]}, \"expected\": {\"send\": [[1, 0, 3], [1, 3, 2], [1, 5, 4], [2, 1, 1], [7, 0, 2], [7, 2, 1]], \"state_vector\": [[\"1\", 9], [\"2\", 2], [\"7\", 3]]}, \"passed\": false}, {\"check\": \"late struct partially known\", \"actual\": {\"send\": [[1, 7, 2], [7, 1, 1], [7, 2, 1]], \"state_vector\": [[\"1\", 9], [\"2\", 2], [\"7\", 3]]}, \"expected\": {\"send\": [[1, 7, 2], [2, 0, 2], [7, 1, 1], [7, 2, 1]], \"state_vector\": [[\"1\", 9], [\"2\", 2], [\"7\", 3]]}, \"passed\": false}, {\"check\": \"single client store\", \"actual\": {\"send\": [[4, 1, 2]], \"state_vector\": [[\"4\", 3]]}, \"expected\": {\"send\": [[4, 1, 2]], \"state_vector\": [[\"4\", 3]]}, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":49.96,"exit_code":0,"observations":[{"actual":{"send":[[1,0,3],[1,3,2],[1,5,4],[2,0,2],[7,0,2],[7,2,1]],"state_vector":[["1",9],["2",2],["7",3]]},"check":"empty remote vector gets everything","expected":{"send":[[1,0,3],[1,3,2],[1,5,4],[2,0,2],[7,0,2],[7,2,1]],"state_vector":[["1",9],["2",2],["7",3]]},"passed":true},{"actual":{"send":[],"state_vector":[["1",9],["2",2],["7",3]]},"check":"remote caught up gets nothing","expected":{"send":[],"state_vector":[["1",9],["2",2],["7",3]]},"passed":true},{"actual":{"send":[[1,3,2],[1,5,4],[2,0,2],[7,2,1]],"state_vector":[["1",9],["2",2],["7",3]]},"check":"boundary between structs","expected":{"send":[[1,3,2],[1,5,4],[2,0,2],[7,2,1]],"state_vector":[["1",9],["2",2],["7",3]]},"passed":true},{"actual":{"send":[[1,4,1],[1,5,4],[2,1,1],[7,0,2],[7,2,1]],"state_vector":[["1",9],["2",2],["7",3]]},"check":"partial struct is sliced","expected":{"send":[[1,4,1],[1,5,4],[2,1,1],[7,0,2],[7,2,1]],"state_vector":[["1",9],["2",2],["7",3]]},"passed":true},{"actual":{"send":[],"state_vector":[["1",9],["2",2],["7",3]]},"check":"remote ahead of local","expected":{"send":[],"state_vector":[["1",9],["2",2],["7",3]]},"passed":true},{"actual":{"send":[[1,0,3],[1,3,2],[1,5,4],[2,1,1],[7,0,2],[7,2,1]],"state_vector":[["1",9],["2",2],["7",3]]},"check":"unknown remote clients count from zero","expected":{"send":[[1,0,3],[1,3,2],[1,5,4],[2,1,1],[7,0,2],[7,2,1]],"state_vector":[["1",9],["2",2],["7",3]]},"passed":true},{"actual":{"send":[[1,7,2],[2,0,2],[7,1,1],[7,2,1]],"state_vector":[["1",9],["2",2],["7",3]]},"check":"late struct partially known","expected":{"send":[[1,7,2],[2,0,2],[7,1,1],[7,2,1]],"state_vector":[["1",9],["2",2],["7",3]]},"passed":true},{"actual":{"send":[[4,1,2]],"state_vector":[["4",3]]},"check":"single client store","expected":{"send":[[4,1,2]],"state_vector":[["4",3]]},"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"empty remote vector gets everything\", \"actual\": {\"send\": [[1, 0, 3], [1, 3, 2], [1, 5, 4], [2, 0, 2], [7, 0, 2], [7, 2, 1]], \"state_vector\": [[\"1\", 9], [\"2\", 2], [\"7\", 3]]}, \"expected\": {\"send\": [[1, 0, 3], [1, 3, 2], [1, 5, 4], [2, 0, 2], [7, 0, 2], [7, 2, 1]], \"state_vector\": [[\"1\", 9], [\"2\", 2], [\"7\", 3]]}, \"passed\": true}, {\"check\": \"remote caught up gets nothing\", \"actual\": {\"send\": [], \"state_vector\": [[\"1\", 9], [\"2\", 2], [\"7\", 3]]}, \"expected\": {\"send\": [], \"state_vector\": [[\"1\", 9], [\"2\", 2], [\"7\", 3]]}, \"passed\": true}, {\"check\": \"boundary between structs\", \"actual\": {\"send\": [[1, 3, 2], [1, 5, 4], [2, 0, 2], [7, 2, 1]], \"state_vector\": [[\"1\", 9], [\"2\", 2], [\"7\", 3]]}, \"expected\": {\"send\": [[1, 3, 2], [1, 5, 4], [2, 0, 2], [7, 2, 1]], \"state_vector\": [[\"1\", 9], [\"2\", 2], [\"7\", 3]]}, \"passed\": true}, {\"check\": \"partial struct is sliced\", \"actual\": {\"send\": [[1, 4, 1], [1, 5, 4], [2, 1, 1], [7, 0, 2], [7, 2, 1]], \"state_vector\": [[\"1\", 9], [\"2\", 2], [\"7\", 3]]}, \"expected\": {\"send\": [[1, 4, 1], [1, 5, 4], [2, 1, 1], [7, 0, 2], [7, 2, 1]], \"state_vector\": [[\"1\", 9], [\"2\", 2], [\"7\", 3]]}, \"passed\": true}, {\"check\": \"remote ahead of local\", \"actual\": {\"send\": [], \"state_vector\": [[\"1\", 9], [\"2\", 2], [\"7\", 3]]}, \"expected\": {\"send\": [], \"state_vector\": [[\"1\", 9], [\"2\", 2], [\"7\", 3]]}, \"passed\": true}, {\"check\": \"unknown remote clients count from zero\", \"actual\": {\"send\": [[1, 0, 3], [1, 3, 2], [1, 5, 4], [2, 1, 1], [7, 0, 2], [7, 2, 1]], \"state_vector\": [[\"1\", 9], [\"2\", 2], [\"7\", 3]]}, \"expected\": {\"send\": [[1, 0, 3], [1, 3, 2], [1, 5, 4], [2, 1, 1], [7, 0, 2], [7, 2, 1]], \"state_vector\": [[\"1\", 9], [\"2\", 2], [\"7\", 3]]}, \"passed\": true}, {\"check\": \"late struct partially known\", \"actual\": {\"send\": [[1, 7, 2], [2, 0, 2], [7, 1, 1], [7, 2, 1]], \"state_vector\": [[\"1\", 9], [\"2\", 2], [\"7\", 3]]}, \"expected\": {\"send\": [[1, 7, 2], [2, 0, 2], [7, 1, 1], [7, 2, 1]], \"state_vector\": [[\"1\", 9], [\"2\", 2], [\"7\", 3]]}, \"passed\": true}, {\"check\": \"single client store\", \"actual\": {\"send\": [[4, 1, 2]], \"state_vector\": [[\"4\", 3]]}, \"expected\": {\"send\": [[4, 1, 2]], \"state_vector\": [[\"4\", 3]]}, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}