{"abstract":"List concatenation rebases child offsets by parent-row count.","category":"Data systems","checks":7,"contract":"Concatenate offset-based list batches into one compact child buffer. Rebase every row offset, copy only each batch referenced child span, preserve parent validity, and preserve child nulls. Output [offsets,visible-child,parent-validity].","evaluation_group":"s3-data-systems-list-child-concatenation","failed_approach":"Parent metadata length is not the child element count.","family":"s3-data-systems-list-child-concatenation-child-base","id":"FA-45146","implementations":{"attempt":{"sha256":"334b0a9e4c57c8ce8c9999bbfba58e9563dac27851f7095bb1c8a887b4c9ca2f","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(d):\n    try:\n        out_offsets=[0]; out_child=[]; out_valid=[]\n        for offsets,child,child_valid,parent_valid in d:\n            start=offsets[0]; stop=offsets[-1]\n            base=len(out_offsets)\n            out_child.extend(child[i] if child_valid[i] else None for i in range(start,stop))\n            out_offsets.extend(base+x-start for x in offsets[1:])\n            out_valid.extend(parent_valid)\n        return [out_offsets,out_child,out_valid]\n    except (IndexError, KeyError, ValueError, StopIteration) as exc:\n        return {\"representation_error\": type(exc).__name__}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nif N == 1:\n    check('two batches', solve([[[0, 2], [1, 2], [True, True], [True]], [[0, 1], [3], [True], [True]]]), [[0, 2, 3], [1, 2, 3], [True, True]])\n    check('sliced child', solve([[[1, 3], [0, 1, 2, 99], [True, True, True, True], [True]]]), [[0, 2], [1, 2], [True]])\n    check('null children', solve([[[0, 2], [1, 2], [False, True], [True]]]), [[0, 2], [None, 2], [True]])\n    check('empty valid row', solve([[[0, 0], [], [], [True]]]), [[0, 0], [], [True]])\n    check('null parent storage', solve([[[0, 1], [1], [True], [False]]]), [[0, 1], [1], [False]])\n    check('no batches', solve([]), [[0], [], []])\n    check('empty batch then row', solve([[[0], [], [], []], [[0, 1], [1], [True], [True]]]), [[0, 1], [1], [True]])\nelif N == 2:\n    check('two batches', solve([[[0, 2], [2, 3], [True, True], [True]], [[0, 1], [4], [True], [True]]]), [[0, 2, 3], [2, 3, 4], [True, True]])\n    check('sliced child', solve([[[1, 3], [0, 2, 3, 99], [True, True, True, True], [True]]]), [[0, 2], [2, 3], [True]])\n    check('null children', solve([[[0, 2], [2, 3], [False, True], [True]]]), [[0, 2], [None, 3], [True]])\n    check('empty valid row', solve([[[0, 0], [], [], [True]]]), [[0, 0], [], [True]])\n    check('null parent storage', solve([[[0, 1], [2], [True], [False]]]), [[0, 1], [2], [False]])\n    check('no batches', solve([]), [[0], [], []])\n    check('empty batch then row', solve([[[0], [], [], []], [[0, 1], [2], [True], [True]]]), [[0, 1], [2], [True]])\nelif N == 3:\n    check('two batches', solve([[[0, 2], [3, 4], [True, True], [True]], [[0, 1], [5], [True], [True]]]), [[0, 2, 3], [3, 4, 5], [True, True]])\n    check('sliced child', solve([[[1, 3], [0, 3, 4, 99], [True, True, True, True], [True]]]), [[0, 2], [3, 4], [True]])\n    check('null children', solve([[[0, 2], [3, 4], [False, True], [True]]]), [[0, 2], [None, 4], [True]])\n    check('empty valid row', solve([[[0, 0], [], [], [True]]]), [[0, 0], [], [True]])\n    check('null parent storage', solve([[[0, 1], [3], [True], [False]]]), [[0, 1], [3], [False]])\n    check('no batches', solve([]), [[0], [], []])\n    check('empty batch then row', solve([[[0], [], [], []], [[0, 1], [3], [True], [True]]]), [[0, 1], [3], [True]])\nelif N == 4:\n    check('two batches', solve([[[0, 2], [4, 5], [True, True], [True]], [[0, 1], [6], [True], [True]]]), [[0, 2, 3], [4, 5, 6], [True, True]])\n    check('sliced child', solve([[[1, 3], [0, 4, 5, 99], [True, True, True, True], [True]]]), [[0, 2], [4, 5], [True]])\n    check('null children', solve([[[0, 2], [4, 5], [False, True], [True]]]), [[0, 2], [None, 5], [True]])\n    check('empty valid row', solve([[[0, 0], [], [], [True]]]), [[0, 0], [], [True]])\n    check('null parent storage', solve([[[0, 1], [4], [True], [False]]]), [[0, 1], [4], [False]])\n    check('no batches', solve([]), [[0], [], []])\n    check('empty batch then row', solve([[[0], [], [], []], [[0, 1], [4], [True], [True]]]), [[0, 1], [4], [True]])\nelif N == 5:\n    check('two batches', solve([[[0, 2], [5, 6], [True, True], [True]], [[0, 1], [7], [True], [True]]]), [[0, 2, 3], [5, 6, 7], [True, True]])\n    check('sliced child', solve([[[1, 3], [0, 5, 6, 99], [True, True, True, True], [True]]]), [[0, 2], [5, 6], [True]])\n    check('null children', solve([[[0, 2], [5, 6], [False, True], [True]]]), [[0, 2], [None, 6], [True]])\n    check('empty valid row', solve([[[0, 0], [], [], [True]]]), [[0, 0], [], [True]])\n    check('null parent storage', solve([[[0, 1], [5], [True], [False]]]), [[0, 1], [5], [False]])\n    check('no batches', solve([]), [[0], [], []])\n    check('empty batch then row', solve([[[0], [], [], []], [[0, 1], [5], [True], [True]]]), [[0, 1], [5], [True]])\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":"0f18c69a89706ddd743f705e1e10548eb908776216a4a3fd8b22dd2ed0414bb5","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(d):\n    try:\n        out_offsets=[0]; out_child=[]; out_valid=[]\n        for offsets,child,child_valid,parent_valid in d:\n            start=offsets[0]; stop=offsets[-1]\n            base=len(out_valid)\n            out_child.extend(child[i] if child_valid[i] else None for i in range(start,stop))\n            out_offsets.extend(base+x-start for x in offsets[1:])\n            out_valid.extend(parent_valid)\n        return [out_offsets,out_child,out_valid]\n    except (IndexError, KeyError, ValueError, StopIteration) as exc:\n        return {\"representation_error\": type(exc).__name__}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nif N == 1:\n    check('two batches', solve([[[0, 2], [1, 2], [True, True], [True]], [[0, 1], [3], [True], [True]]]), [[0, 2, 3], [1, 2, 3], [True, True]])\n    check('sliced child', solve([[[1, 3], [0, 1, 2, 99], [True, True, True, True], [True]]]), [[0, 2], [1, 2], [True]])\n    check('null children', solve([[[0, 2], [1, 2], [False, True], [True]]]), [[0, 2], [None, 2], [True]])\n    check('empty valid row', solve([[[0, 0], [], [], [True]]]), [[0, 0], [], [True]])\n    check('null parent storage', solve([[[0, 1], [1], [True], [False]]]), [[0, 1], [1], [False]])\n    check('no batches', solve([]), [[0], [], []])\n    check('empty batch then row', solve([[[0], [], [], []], [[0, 1], [1], [True], [True]]]), [[0, 1], [1], [True]])\nelif N == 2:\n    check('two batches', solve([[[0, 2], [2, 3], [True, True], [True]], [[0, 1], [4], [True], [True]]]), [[0, 2, 3], [2, 3, 4], [True, True]])\n    check('sliced child', solve([[[1, 3], [0, 2, 3, 99], [True, True, True, True], [True]]]), [[0, 2], [2, 3], [True]])\n    check('null children', solve([[[0, 2], [2, 3], [False, True], [True]]]), [[0, 2], [None, 3], [True]])\n    check('empty valid row', solve([[[0, 0], [], [], [True]]]), [[0, 0], [], [True]])\n    check('null parent storage', solve([[[0, 1], [2], [True], [False]]]), [[0, 1], [2], [False]])\n    check('no batches', solve([]), [[0], [], []])\n    check('empty batch then row', solve([[[0], [], [], []], [[0, 1], [2], [True], [True]]]), [[0, 1], [2], [True]])\nelif N == 3:\n    check('two batches', solve([[[0, 2], [3, 4], [True, True], [True]], [[0, 1], [5], [True], [True]]]), [[0, 2, 3], [3, 4, 5], [True, True]])\n    check('sliced child', solve([[[1, 3], [0, 3, 4, 99], [True, True, True, True], [True]]]), [[0, 2], [3, 4], [True]])\n    check('null children', solve([[[0, 2], [3, 4], [False, True], [True]]]), [[0, 2], [None, 4], [True]])\n    check('empty valid row', solve([[[0, 0], [], [], [True]]]), [[0, 0], [], [True]])\n    check('null parent storage', solve([[[0, 1], [3], [True], [False]]]), [[0, 1], [3], [False]])\n    check('no batches', solve([]), [[0], [], []])\n    check('empty batch then row', solve([[[0], [], [], []], [[0, 1], [3], [True], [True]]]), [[0, 1], [3], [True]])\nelif N == 4:\n    check('two batches', solve([[[0, 2], [4, 5], [True, True], [True]], [[0, 1], [6], [True], [True]]]), [[0, 2, 3], [4, 5, 6], [True, True]])\n    check('sliced child', solve([[[1, 3], [0, 4, 5, 99], [True, True, True, True], [True]]]), [[0, 2], [4, 5], [True]])\n    check('null children', solve([[[0, 2], [4, 5], [False, True], [True]]]), [[0, 2], [None, 5], [True]])\n    check('empty valid row', solve([[[0, 0], [], [], [True]]]), [[0, 0], [], [True]])\n    check('null parent storage', solve([[[0, 1], [4], [True], [False]]]), [[0, 1], [4], [False]])\n    check('no batches', solve([]), [[0], [], []])\n    check('empty batch then row', solve([[[0], [], [], []], [[0, 1], [4], [True], [True]]]), [[0, 1], [4], [True]])\nelif N == 5:\n    check('two batches', solve([[[0, 2], [5, 6], [True, True], [True]], [[0, 1], [7], [True], [True]]]), [[0, 2, 3], [5, 6, 7], [True, True]])\n    check('sliced child', solve([[[1, 3], [0, 5, 6, 99], [True, True, True, True], [True]]]), [[0, 2], [5, 6], [True]])\n    check('null children', solve([[[0, 2], [5, 6], [False, True], [True]]]), [[0, 2], [None, 6], [True]])\n    check('empty valid row', solve([[[0, 0], [], [], [True]]]), [[0, 0], [], [True]])\n    check('null parent storage', solve([[[0, 1], [5], [True], [False]]]), [[0, 1], [5], [False]])\n    check('no batches', solve([]), [[0], [], []])\n    check('empty batch then row', solve([[[0], [], [], []], [[0, 1], [5], [True], [True]]]), [[0, 1], [5], [True]])\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":"32650eed22c840753293bda7e50e40c49e947ec273e55c86ee57addc9cf76730","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(d):\n    try:\n        out_offsets=[0]; out_child=[]; out_valid=[]\n        for offsets,child,child_valid,parent_valid in d:\n            start=offsets[0]; stop=offsets[-1]\n            base=len(out_child)\n            out_child.extend(child[i] if child_valid[i] else None for i in range(start,stop))\n            out_offsets.extend(base+x-start for x in offsets[1:])\n            out_valid.extend(parent_valid)\n        return [out_offsets,out_child,out_valid]\n    except (IndexError, KeyError, ValueError, StopIteration) as exc:\n        return {\"representation_error\": type(exc).__name__}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nif N == 1:\n    check('two batches', solve([[[0, 2], [1, 2], [True, True], [True]], [[0, 1], [3], [True], [True]]]), [[0, 2, 3], [1, 2, 3], [True, True]])\n    check('sliced child', solve([[[1, 3], [0, 1, 2, 99], [True, True, True, True], [True]]]), [[0, 2], [1, 2], [True]])\n    check('null children', solve([[[0, 2], [1, 2], [False, True], [True]]]), [[0, 2], [None, 2], [True]])\n    check('empty valid row', solve([[[0, 0], [], [], [True]]]), [[0, 0], [], [True]])\n    check('null parent storage', solve([[[0, 1], [1], [True], [False]]]), [[0, 1], [1], [False]])\n    check('no batches', solve([]), [[0], [], []])\n    check('empty batch then row', solve([[[0], [], [], []], [[0, 1], [1], [True], [True]]]), [[0, 1], [1], [True]])\nelif N == 2:\n    check('two batches', solve([[[0, 2], [2, 3], [True, True], [True]], [[0, 1], [4], [True], [True]]]), [[0, 2, 3], [2, 3, 4], [True, True]])\n    check('sliced child', solve([[[1, 3], [0, 2, 3, 99], [True, True, True, True], [True]]]), [[0, 2], [2, 3], [True]])\n    check('null children', solve([[[0, 2], [2, 3], [False, True], [True]]]), [[0, 2], [None, 3], [True]])\n    check('empty valid row', solve([[[0, 0], [], [], [True]]]), [[0, 0], [], [True]])\n    check('null parent storage', solve([[[0, 1], [2], [True], [False]]]), [[0, 1], [2], [False]])\n    check('no batches', solve([]), [[0], [], []])\n    check('empty batch then row', solve([[[0], [], [], []], [[0, 1], [2], [True], [True]]]), [[0, 1], [2], [True]])\nelif N == 3:\n    check('two batches', solve([[[0, 2], [3, 4], [True, True], [True]], [[0, 1], [5], [True], [True]]]), [[0, 2, 3], [3, 4, 5], [True, True]])\n    check('sliced child', solve([[[1, 3], [0, 3, 4, 99], [True, True, True, True], [True]]]), [[0, 2], [3, 4], [True]])\n    check('null children', solve([[[0, 2], [3, 4], [False, True], [True]]]), [[0, 2], [None, 4], [True]])\n    check('empty valid row', solve([[[0, 0], [], [], [True]]]), [[0, 0], [], [True]])\n    check('null parent storage', solve([[[0, 1], [3], [True], [False]]]), [[0, 1], [3], [False]])\n    check('no batches', solve([]), [[0], [], []])\n    check('empty batch then row', solve([[[0], [], [], []], [[0, 1], [3], [True], [True]]]), [[0, 1], [3], [True]])\nelif N == 4:\n    check('two batches', solve([[[0, 2], [4, 5], [True, True], [True]], [[0, 1], [6], [True], [True]]]), [[0, 2, 3], [4, 5, 6], [True, True]])\n    check('sliced child', solve([[[1, 3], [0, 4, 5, 99], [True, True, True, True], [True]]]), [[0, 2], [4, 5], [True]])\n    check('null children', solve([[[0, 2], [4, 5], [False, True], [True]]]), [[0, 2], [None, 5], [True]])\n    check('empty valid row', solve([[[0, 0], [], [], [True]]]), [[0, 0], [], [True]])\n    check('null parent storage', solve([[[0, 1], [4], [True], [False]]]), [[0, 1], [4], [False]])\n    check('no batches', solve([]), [[0], [], []])\n    check('empty batch then row', solve([[[0], [], [], []], [[0, 1], [4], [True], [True]]]), [[0, 1], [4], [True]])\nelif N == 5:\n    check('two batches', solve([[[0, 2], [5, 6], [True, True], [True]], [[0, 1], [7], [True], [True]]]), [[0, 2, 3], [5, 6, 7], [True, True]])\n    check('sliced child', solve([[[1, 3], [0, 5, 6, 99], [True, True, True, True], [True]]]), [[0, 2], [5, 6], [True]])\n    check('null children', solve([[[0, 2], [5, 6], [False, True], [True]]]), [[0, 2], [None, 6], [True]])\n    check('empty valid row', solve([[[0, 0], [], [], [True]]]), [[0, 0], [], [True]])\n    check('null parent storage', solve([[[0, 1], [5], [True], [False]]]), [[0, 1], [5], [False]])\n    check('no batches', solve([]), [[0], [], []])\n    check('empty batch then row', solve([[[0], [], [], []], [[0, 1], [5], [True], [True]]]), [[0, 1], [5], [True]])\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":"Offline stipulated semantics over valid small inputs; no performance, concurrency, or production-engine conformance claim. 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":"s3-data-systems-list-child-concatenation-child-base","generated_at":"2026-09-29T14:44:19.313794+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"A bounded deterministic data engine model makes representation and changelog faults reproducible.","repair":"Preserve the stated physical representation and operation order: Concatenate offset-based list batches into one compact child buffer. Rebase every row offset, copy only each batch referenced child span, preserve parent validity, and preserve child nulls. Output [offsets,visible-child,parent-validity].","root_cause":"list-child-concatenation: List concatenation rebases child offsets by parent-row count.","sha256":"fc0eac96536d2371eacd2937f315c3c5cb8bef4f926292de3c647a1b4787f1d7","title":"List concatenation rebases child offsets by parent-row count · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":46.157,"exit_code":1,"observations":[{"actual":[[0,3,3],[1,2,3],[true,true]],"check":"two batches","expected":[[0,2,3],[1,2,3],[true,true]],"passed":false},{"actual":[[0,3],[1,2],[true]],"check":"sliced child","expected":[[0,2],[1,2],[true]],"passed":false},{"actual":[[0,3],[null,2],[true]],"check":"null children","expected":[[0,2],[null,2],[true]],"passed":false},{"actual":[[0,1],[],[true]],"check":"empty valid row","expected":[[0,0],[],[true]],"passed":false},{"actual":[[0,2],[1],[false]],"check":"null parent storage","expected":[[0,1],[1],[false]],"passed":false},{"actual":[[0],[],[]],"check":"no batches","expected":[[0],[],[]],"passed":true},{"actual":[[0,2],[1],[true]],"check":"empty batch then row","expected":[[0,1],[1],[true]],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"two batches\", \"actual\": [[0, 3, 3], [1, 2, 3], [true, true]], \"expected\": [[0, 2, 3], [1, 2, 3], [true, true]], \"passed\": false}, {\"check\": \"sliced child\", \"actual\": [[0, 3], [1, 2], [true]], \"expected\": [[0, 2], [1, 2], [true]], \"passed\": false}, {\"check\": \"null children\", \"actual\": [[0, 3], [null, 2], [true]], \"expected\": [[0, 2], [null, 2], [true]], \"passed\": false}, {\"check\": \"empty valid row\", \"actual\": [[0, 1], [], [true]], \"expected\": [[0, 0], [], [true]], \"passed\": false}, {\"check\": \"null parent storage\", \"actual\": [[0, 2], [1], [false]], \"expected\": [[0, 1], [1], [false]], \"passed\": false}, {\"check\": \"no batches\", \"actual\": [[0], [], []], \"expected\": [[0], [], []], \"passed\": true}, {\"check\": \"empty batch then row\", \"actual\": [[0, 2], [1], [true]], \"expected\": [[0, 1], [1], [true]], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":44.809,"exit_code":1,"observations":[{"actual":[[0,2,2],[1,2,3],[true,true]],"check":"two batches","expected":[[0,2,3],[1,2,3],[true,true]],"passed":false},{"actual":[[0,2],[1,2],[true]],"check":"sliced child","expected":[[0,2],[1,2],[true]],"passed":true},{"actual":[[0,2],[null,2],[true]],"check":"null children","expected":[[0,2],[null,2],[true]],"passed":true},{"actual":[[0,0],[],[true]],"check":"empty valid row","expected":[[0,0],[],[true]],"passed":true},{"actual":[[0,1],[1],[false]],"check":"null parent storage","expected":[[0,1],[1],[false]],"passed":true},{"actual":[[0],[],[]],"check":"no batches","expected":[[0],[],[]],"passed":true},{"actual":[[0,1],[1],[true]],"check":"empty batch then row","expected":[[0,1],[1],[true]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"two batches\", \"actual\": [[0, 2, 2], [1, 2, 3], [true, true]], \"expected\": [[0, 2, 3], [1, 2, 3], [true, true]], \"passed\": false}, {\"check\": \"sliced child\", \"actual\": [[0, 2], [1, 2], [true]], \"expected\": [[0, 2], [1, 2], [true]], \"passed\": true}, {\"check\": \"null children\", \"actual\": [[0, 2], [null, 2], [true]], \"expected\": [[0, 2], [null, 2], [true]], \"passed\": true}, {\"check\": \"empty valid row\", \"actual\": [[0, 0], [], [true]], \"expected\": [[0, 0], [], [true]], \"passed\": true}, {\"check\": \"null parent storage\", \"actual\": [[0, 1], [1], [false]], \"expected\": [[0, 1], [1], [false]], \"passed\": true}, {\"check\": \"no batches\", \"actual\": [[0], [], []], \"expected\": [[0], [], []], \"passed\": true}, {\"check\": \"empty batch then row\", \"actual\": [[0, 1], [1], [true]], \"expected\": [[0, 1], [1], [true]], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":49.352,"exit_code":0,"observations":[{"actual":[[0,2,3],[1,2,3],[true,true]],"check":"two batches","expected":[[0,2,3],[1,2,3],[true,true]],"passed":true},{"actual":[[0,2],[1,2],[true]],"check":"sliced child","expected":[[0,2],[1,2],[true]],"passed":true},{"actual":[[0,2],[null,2],[true]],"check":"null children","expected":[[0,2],[null,2],[true]],"passed":true},{"actual":[[0,0],[],[true]],"check":"empty valid row","expected":[[0,0],[],[true]],"passed":true},{"actual":[[0,1],[1],[false]],"check":"null parent storage","expected":[[0,1],[1],[false]],"passed":true},{"actual":[[0],[],[]],"check":"no batches","expected":[[0],[],[]],"passed":true},{"actual":[[0,1],[1],[true]],"check":"empty batch then row","expected":[[0,1],[1],[true]],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"two batches\", \"actual\": [[0, 2, 3], [1, 2, 3], [true, true]], \"expected\": [[0, 2, 3], [1, 2, 3], [true, true]], \"passed\": true}, {\"check\": \"sliced child\", \"actual\": [[0, 2], [1, 2], [true]], \"expected\": [[0, 2], [1, 2], [true]], \"passed\": true}, {\"check\": \"null children\", \"actual\": [[0, 2], [null, 2], [true]], \"expected\": [[0, 2], [null, 2], [true]], \"passed\": true}, {\"check\": \"empty valid row\", \"actual\": [[0, 0], [], [true]], \"expected\": [[0, 0], [], [true]], \"passed\": true}, {\"check\": \"null parent storage\", \"actual\": [[0, 1], [1], [false]], \"expected\": [[0, 1], [1], [false]], \"passed\": true}, {\"check\": \"no batches\", \"actual\": [[0], [], []], \"expected\": [[0], [], []], \"passed\": true}, {\"check\": \"empty batch then row\", \"actual\": [[0, 1], [1], [true]], \"expected\": [[0, 1], [1], [true]], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}