{"abstract":"The query violates its result contract: requires every known measurement to be positive.","category":"Analytical processing","checks":9,"contract":"Return key and sum for groups whose known measurements sum to a strictly positive total. Inputs are finite relations a=rows and b=refs with columns (id,k,v,w,flag,parent). IDs are unique within each relation, None is SQL NULL, keys are ASCII strings or None, and other values are integers or None. Return an unordered result bag as lists sorted by repr, preserving multiplicity unless explicitly distinct.","evaluation_group":"xs-group-total-filter","failed_approach":"The alternative query still fails because it filters using the sum of unique amounts. Attempted SQL: SELECT k,SUM(v) FROM a GROUP BY k HAVING SUM(DISTINCT v)>0","family":"xs-group-total-filter-all-positive","id":"FA-2206","implementations":{"attempt":{"sha256":"b70e91491de8b04025616b4f643bff05eb80e0fffc857eb99217475e6506f63f","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport sqlite3\nN = 1\nobservations = []\ndef solve(rows, refs):\n    db = sqlite3.connect(':memory:')\n    try:\n        for name, records in [('a', rows), ('b', refs)]:\n            db.execute('CREATE TABLE ' + name + ' (id INTEGER PRIMARY KEY, k TEXT, v INTEGER, w INTEGER, flag INTEGER, parent INTEGER)')\n            db.executemany('INSERT INTO ' + name + ' VALUES (?,?,?,?,?,?)', records)\n        return sorted([list(row) for row in db.execute('SELECT k,SUM(v) FROM a GROUP BY k HAVING SUM(DISTINCT v)>0')], key=repr)\n    finally:\n        db.close()\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nif N == 1:\n    check('empty relations', solve([], []), [])\n    check('left facts without references', solve([[11, 'a', None, 8, None, None], [21, 'a', 0, 3, 0, 11], [31, 'a', 2, 1, 1, 21], [41, 'a', 2, 2, 2, 901], [51, 'a', -1, 4, -1, 31], [61, 'a', 3, 1, 1, 41], [71, 'b', -2, 2, 0, 11], [81, 'b', 2, 8, 1, 21], [91, 'b', None, 4, None, None], [101, None, None, 0, 1, 901], [111, None, 0, 5, 0, 11], [121, None, None, 7, None, 21], [131, 'c', None, 6, None, 31], [141, 'd', -1, 1, 0, 41], [151, 'A', 2, 2, 1, 51], [161, ' a ', 2, 8, 1, None], [171, '', None, 2, 0, None], [181, 'a', 2, 8, 1, 11], [191, 'd', 1, 3, 0, 41], [201, 'd', -1, 0, -1, 21]], []), [[' a ', 2], ['A', 2], ['a', 8]])\n    check('references without candidates', solve([], [[11, 'a', None, 0, 1, None], [21, 'a', 2, 2, 0, None], [31, 'a', 2, 3, 2, None], [41, 'a', 3, 4, None, None], [51, 'b', -2, 2, 1, None], [61, 'b', 0, 8, -1, None], [71, None, None, 2, 1, None], [81, None, 0, 5, None, None], [91, 'z', 3, 2, 0, None], [101, 'z', 3, 2, 1, None], [111, 'A', 2, 1, 1, None], [121, 'c', None, 2, 0, None]]), [])\n    check('mixed nullable groups duplicates ties and truth flags', solve([[11, 'a', None, 8, None, None], [21, 'a', 0, 3, 0, 11], [31, 'a', 2, 1, 1, 21], [41, 'a', 2, 2, 2, 901], [51, 'a', -1, 4, -1, 31], [61, 'a', 3, 1, 1, 41], [71, 'b', -2, 2, 0, 11], [81, 'b', 2, 8, 1, 21], [91, 'b', None, 4, None, None], [101, None, None, 0, 1, 901], [111, None, 0, 5, 0, 11], [121, None, None, 7, None, 21], [131, 'c', None, 6, None, 31], [141, 'd', -1, 1, 0, 41], [151, 'A', 2, 2, 1, 51], [161, ' a ', 2, 8, 1, None], [171, '', None, 2, 0, None], [181, 'a', 2, 8, 1, 11], [191, 'd', 1, 3, 0, 41], [201, 'd', -1, 0, -1, 21]], [[11, 'a', None, 0, 1, None], [21, 'a', 2, 2, 0, None], [31, 'a', 2, 3, 2, None], [41, 'a', 3, 4, None, None], [51, 'b', -2, 2, 1, None], [61, 'b', 0, 8, -1, None], [71, None, None, 2, 1, None], [81, None, 0, 5, None, None], [91, 'z', 3, 2, 0, None], [101, 'z', 3, 2, 1, None], [111, 'A', 2, 1, 1, None], [121, 'c', None, 2, 0, None]]), [[' a ', 2], ['A', 2], ['a', 8]])\n    check('unknown-only group with duplicate nullable index keys', solve([[11, None, None, 3, None, None], [21, None, None, 4, None, None], [31, 'x', None, 5, None, None]], [[11, None, None, 2, None, None]]), [])\n    check('single known zero and matching reference', solve([[11, 'a', 0, 9, 0, 11]], [[11, 'a', 0, 3, 1, None]]), [])\n    check('negative-only group and missing measurement', solve([[11, 'n', -2, 4, -1, 11], [21, 'n', None, 2, 0, 21], [31, 'n', -1, 0, 2, None]], [[11, 'n', -2, 1, 1, None]]), [])\n    check('positive-only group with repeated measurements and NULL', solve([[11, 'p', 2, 1, 1, 11], [21, 'p', 2, 2, 1, 11], [31, 'p', 3, 0, 1, 11], [41, 'p', None, 1, 0, None]], [[11, 'p', 2, 1, 1, None], [21, 'p', 2, 1, 1, None]]), [['p', 7]])\n    check('adversarial key cardinality and NULL placement witness 9', solve([[11, None, -2, 1, 0, 11], [21, 'b', None, 2, 1, 191], [31, None, 2, 7, 2, 191], [41, 'A', 3, 3, -1, 31], [51, ' a ', None, 7, 2, 11], [61, '', 1, 7, 2, None], [71, None, 2, 0, 2, 21], [81, 'A', None, 3, -1, 21], [91, 'a', 2, 7, 2, 191], [101, 'b', 3, 2, 0, None], [111, 'c', None, 3, 2, None], [121, 'A', 5, 2, None, None], [131, ' a ', 0, 1, 1, 21], [141, 'b', 2, 7, 2, None]], [[11, ' a ', -1, 1, 0, 31], [21, 'a', 5, 0, 0, None], [31, 'c', -3, 0, 1, 191], [41, ' a ', 2, 7, 1, None], [51, 'b', None, 7, -1, 11], [61, '', 2, 0, None, 31], [71, 'b', -3, 3, 1, None], [81, 'a', 0, 1, None, 191], [91, 'a', 5, 0, None, 11], [101, '', None, 3, 0, 191]]), [['', 1], ['A', 8], ['a', 2], ['b', 5], [None, 2]])\nelif N == 2:\n    check('empty relations', solve([], []), [])\n    check('left facts without references', solve([[12, 'a', None, 8, None, None], [22, 'a', 0, 3, 0, 12], [32, 'a', 2, 1, 1, 22], [42, 'a', 2, 2, 2, 902], [52, 'a', -1, 4, -1, 32], [62, 'a', 3, 1, 1, 42], [72, 'b', -2, 2, 0, 12], [82, 'b', 2, 8, 1, 22], [92, 'b', None, 4, None, None], [102, None, None, 0, 1, 902], [112, None, 0, 5, 0, 12], [122, None, None, 7, None, 22], [132, 'c', None, 6, None, 32], [142, 'd', -1, 1, 0, 42], [152, 'A', 2, 2, 1, 52], [162, ' a ', 2, 8, 1, None], [172, '', None, 2, 0, None], [182, 'a', 2, 8, 1, 12], [192, 'd', 1, 3, 0, 42], [202, 'd', -1, 0, -1, 22]], []), [[' a ', 2], ['A', 2], ['a', 8]])\n    check('references without candidates', solve([], [[12, 'a', None, 0, 1, None], [22, 'a', 2, 2, 0, None], [32, 'a', 2, 3, 2, None], [42, 'a', 3, 4, None, None], [52, 'b', -2, 2, 1, None], [62, 'b', 0, 8, -1, None], [72, None, None, 2, 1, None], [82, None, 0, 5, None, None], [92, 'z', 3, 2, 0, None], [102, 'z', 3, 2, 1, None], [112, 'A', 2, 1, 1, None], [122, 'c', None, 2, 0, None]]), [])\n    check('mixed nullable groups duplicates ties and truth flags', solve([[12, 'a', None, 8, None, None], [22, 'a', 0, 3, 0, 12], [32, 'a', 2, 1, 1, 22], [42, 'a', 2, 2, 2, 902], [52, 'a', -1, 4, -1, 32], [62, 'a', 3, 1, 1, 42], [72, 'b', -2, 2, 0, 12], [82, 'b', 2, 8, 1, 22], [92, 'b', None, 4, None, None], [102, None, None, 0, 1, 902], [112, None, 0, 5, 0, 12], [122, None, None, 7, None, 22], [132, 'c', None, 6, None, 32], [142, 'd', -1, 1, 0, 42], [152, 'A', 2, 2, 1, 52], [162, ' a ', 2, 8, 1, None], [172, '', None, 2, 0, None], [182, 'a', 2, 8, 1, 12], [192, 'd', 1, 3, 0, 42], [202, 'd', -1, 0, -1, 22]], [[12, 'a', None, 0, 1, None], [22, 'a', 2, 2, 0, None], [32, 'a', 2, 3, 2, None], [42, 'a', 3, 4, None, None], [52, 'b', -2, 2, 1, None], [62, 'b', 0, 8, -1, None], [72, None, None, 2, 1, None], [82, None, 0, 5, None, None], [92, 'z', 3, 2, 0, None], [102, 'z', 3, 2, 1, None], [112, 'A', 2, 1, 1, None], [122, 'c', None, 2, 0, None]]), [[' a ', 2], ['A', 2], ['a', 8]])\n    check('unknown-only group with duplicate nullable index keys', solve([[12, None, None, 3, None, None], [22, None, None, 4, None, None], [32, 'x', None, 5, None, None]], [[12, None, None, 2, None, None]]), [])\n    check('single known zero and matching reference', solve([[12, 'a', 0, 9, 0, 12]], [[12, 'a', 0, 3, 1, None]]), [])\n    check('negative-only group and missing measurement', solve([[12, 'n', -2, 4, -1, 12], [22, 'n', None, 2, 0, 22], [32, 'n', -1, 0, 2, None]], [[12, 'n', -2, 1, 1, None]]), [])\n    check('positive-only group with repeated measurements and NULL', solve([[12, 'p', 2, 1, 1, 12], [22, 'p', 2, 2, 1, 12], [32, 'p', 3, 0, 1, 12], [42, 'p', None, 1, 0, None]], [[12, 'p', 2, 1, 1, None], [22, 'p', 2, 1, 1, None]]), [['p', 7]])\n    check('adversarial key cardinality and NULL placement witness 9', solve([[12, None, -2, 1, 0, 12], [22, 'b', None, 2, 1, 192], [32, None, 2, 7, 2, 192], [42, 'A', 3, 3, -1, 32], [52, ' a ', None, 7, 2, 12], [62, '', 1, 7, 2, None], [72, None, 2, 0, 2, 22], [82, 'A', None, 3, -1, 22], [92, 'a', 2, 7, 2, 192], [102, 'b', 3, 2, 0, None], [112, 'c', None, 3, 2, None], [122, 'A', 5, 2, None, None], [132, ' a ', 0, 1, 1, 22], [142, 'b', 2, 7, 2, None]], [[12, ' a ', -1, 1, 0, 32], [22, 'a', 5, 0, 0, None], [32, 'c', -3, 0, 1, 192], [42, ' a ', 2, 7, 1, None], [52, 'b', None, 7, -1, 12], [62, '', 2, 0, None, 32], [72, 'b', -3, 3, 1, None], [82, 'a', 0, 1, None, 192], [92, 'a', 5, 0, None, 12], [102, '', None, 3, 0, 192]]), [['', 1], ['A', 8], ['a', 2], ['b', 5], [None, 2]])\nelif N == 3:\n    check('empty relations', solve([], []), [])\n    check('left facts without references', solve([[13, 'a', None, 8, None, None], [23, 'a', 0, 3, 0, 13], [33, 'a', 2, 1, 1, 23], [43, 'a', 2, 2, 2, 903], [53, 'a', -1, 4, -1, 33], [63, 'a', 3, 1, 1, 43], [73, 'b', -2, 2, 0, 13], [83, 'b', 2, 8, 1, 23], [93, 'b', None, 4, None, None], [103, None, None, 0, 1, 903], [113, None, 0, 5, 0, 13], [123, None, None, 7, None, 23], [133, 'c', None, 6, None, 33], [143, 'd', -1, 1, 0, 43], [153, 'A', 2, 2, 1, 53], [163, ' a ', 2, 8, 1, None], [173, '', None, 2, 0, None], [183, 'a', 2, 8, 1, 13], [193, 'd', 1, 3, 0, 43], [203, 'd', -1, 0, -1, 23]], []), [[' a ', 2], ['A', 2], ['a', 8]])\n    check('references without candidates', solve([], [[13, 'a', None, 0, 1, None], [23, 'a', 2, 2, 0, None], [33, 'a', 2, 3, 2, None], [43, 'a', 3, 4, None, None], [53, 'b', -2, 2, 1, None], [63, 'b', 0, 8, -1, None], [73, None, None, 2, 1, None], [83, None, 0, 5, None, None], [93, 'z', 3, 2, 0, None], [103, 'z', 3, 2, 1, None], [113, 'A', 2, 1, 1, None], [123, 'c', None, 2, 0, None]]), [])\n    check('mixed nullable groups duplicates ties and truth flags', solve([[13, 'a', None, 8, None, None], [23, 'a', 0, 3, 0, 13], [33, 'a', 2, 1, 1, 23], [43, 'a', 2, 2, 2, 903], [53, 'a', -1, 4, -1, 33], [63, 'a', 3, 1, 1, 43], [73, 'b', -2, 2, 0, 13], [83, 'b', 2, 8, 1, 23], [93, 'b', None, 4, None, None], [103, None, None, 0, 1, 903], [113, None, 0, 5, 0, 13], [123, None, None, 7, None, 23], [133, 'c', None, 6, None, 33], [143, 'd', -1, 1, 0, 43], [153, 'A', 2, 2, 1, 53], [163, ' a ', 2, 8, 1, None], [173, '', None, 2, 0, None], [183, 'a', 2, 8, 1, 13], [193, 'd', 1, 3, 0, 43], [203, 'd', -1, 0, -1, 23]], [[13, 'a', None, 0, 1, None], [23, 'a', 2, 2, 0, None], [33, 'a', 2, 3, 2, None], [43, 'a', 3, 4, None, None], [53, 'b', -2, 2, 1, None], [63, 'b', 0, 8, -1, None], [73, None, None, 2, 1, None], [83, None, 0, 5, None, None], [93, 'z', 3, 2, 0, None], [103, 'z', 3, 2, 1, None], [113, 'A', 2, 1, 1, None], [123, 'c', None, 2, 0, None]]), [[' a ', 2], ['A', 2], ['a', 8]])\n    check('unknown-only group with duplicate nullable index keys', solve([[13, None, None, 3, None, None], [23, None, None, 4, None, None], [33, 'x', None, 5, None, None]], [[13, None, None, 2, None, None]]), [])\n    check('single known zero and matching reference', solve([[13, 'a', 0, 9, 0, 13]], [[13, 'a', 0, 3, 1, None]]), [])\n    check('negative-only group and missing measurement', solve([[13, 'n', -2, 4, -1, 13], [23, 'n', None, 2, 0, 23], [33, 'n', -1, 0, 2, None]], [[13, 'n', -2, 1, 1, None]]), [])\n    check('positive-only group with repeated measurements and NULL', solve([[13, 'p', 2, 1, 1, 13], [23, 'p', 2, 2, 1, 13], [33, 'p', 3, 0, 1, 13], [43, 'p', None, 1, 0, None]], [[13, 'p', 2, 1, 1, None], [23, 'p', 2, 1, 1, None]]), [['p', 7]])\n    check('adversarial key cardinality and NULL placement witness 9', solve([[13, None, -2, 1, 0, 13], [23, 'b', None, 2, 1, 193], [33, None, 2, 7, 2, 193], [43, 'A', 3, 3, -1, 33], [53, ' a ', None, 7, 2, 13], [63, '', 1, 7, 2, None], [73, None, 2, 0, 2, 23], [83, 'A', None, 3, -1, 23], [93, 'a', 2, 7, 2, 193], [103, 'b', 3, 2, 0, None], [113, 'c', None, 3, 2, None], [123, 'A', 5, 2, None, None], [133, ' a ', 0, 1, 1, 23], [143, 'b', 2, 7, 2, None]], [[13, ' a ', -1, 1, 0, 33], [23, 'a', 5, 0, 0, None], [33, 'c', -3, 0, 1, 193], [43, ' a ', 2, 7, 1, None], [53, 'b', None, 7, -1, 13], [63, '', 2, 0, None, 33], [73, 'b', -3, 3, 1, None], [83, 'a', 0, 1, None, 193], [93, 'a', 5, 0, None, 13], [103, '', None, 3, 0, 193]]), [['', 1], ['A', 8], ['a', 2], ['b', 5], [None, 2]])\nelif N == 4:\n    check('empty relations', solve([], []), [])\n    check('left facts without references', solve([[14, 'a', None, 8, None, None], [24, 'a', 0, 3, 0, 14], [34, 'a', 2, 1, 1, 24], [44, 'a', 2, 2, 2, 904], [54, 'a', -1, 4, -1, 34], [64, 'a', 3, 1, 1, 44], [74, 'b', -2, 2, 0, 14], [84, 'b', 2, 8, 1, 24], [94, 'b', None, 4, None, None], [104, None, None, 0, 1, 904], [114, None, 0, 5, 0, 14], [124, None, None, 7, None, 24], [134, 'c', None, 6, None, 34], [144, 'd', -1, 1, 0, 44], [154, 'A', 2, 2, 1, 54], [164, ' a ', 2, 8, 1, None], [174, '', None, 2, 0, None], [184, 'a', 2, 8, 1, 14], [194, 'd', 1, 3, 0, 44], [204, 'd', -1, 0, -1, 24]], []), [[' a ', 2], ['A', 2], ['a', 8]])\n    check('references without candidates', solve([], [[14, 'a', None, 0, 1, None], [24, 'a', 2, 2, 0, None], [34, 'a', 2, 3, 2, None], [44, 'a', 3, 4, None, None], [54, 'b', -2, 2, 1, None], [64, 'b', 0, 8, -1, None], [74, None, None, 2, 1, None], [84, None, 0, 5, None, None], [94, 'z', 3, 2, 0, None], [104, 'z', 3, 2, 1, None], [114, 'A', 2, 1, 1, None], [124, 'c', None, 2, 0, None]]), [])\n    check('mixed nullable groups duplicates ties and truth flags', solve([[14, 'a', None, 8, None, None], [24, 'a', 0, 3, 0, 14], [34, 'a', 2, 1, 1, 24], [44, 'a', 2, 2, 2, 904], [54, 'a', -1, 4, -1, 34], [64, 'a', 3, 1, 1, 44], [74, 'b', -2, 2, 0, 14], [84, 'b', 2, 8, 1, 24], [94, 'b', None, 4, None, None], [104, None, None, 0, 1, 904], [114, None, 0, 5, 0, 14], [124, None, None, 7, None, 24], [134, 'c', None, 6, None, 34], [144, 'd', -1, 1, 0, 44], [154, 'A', 2, 2, 1, 54], [164, ' a ', 2, 8, 1, None], [174, '', None, 2, 0, None], [184, 'a', 2, 8, 1, 14], [194, 'd', 1, 3, 0, 44], [204, 'd', -1, 0, -1, 24]], [[14, 'a', None, 0, 1, None], [24, 'a', 2, 2, 0, None], [34, 'a', 2, 3, 2, None], [44, 'a', 3, 4, None, None], [54, 'b', -2, 2, 1, None], [64, 'b', 0, 8, -1, None], [74, None, None, 2, 1, None], [84, None, 0, 5, None, None], [94, 'z', 3, 2, 0, None], [104, 'z', 3, 2, 1, None], [114, 'A', 2, 1, 1, None], [124, 'c', None, 2, 0, None]]), [[' a ', 2], ['A', 2], ['a', 8]])\n    check('unknown-only group with duplicate nullable index keys', solve([[14, None, None, 3, None, None], [24, None, None, 4, None, None], [34, 'x', None, 5, None, None]], [[14, None, None, 2, None, None]]), [])\n    check('single known zero and matching reference', solve([[14, 'a', 0, 9, 0, 14]], [[14, 'a', 0, 3, 1, None]]), [])\n    check('negative-only group and missing measurement', solve([[14, 'n', -2, 4, -1, 14], [24, 'n', None, 2, 0, 24], [34, 'n', -1, 0, 2, None]], [[14, 'n', -2, 1, 1, None]]), [])\n    check('positive-only group with repeated measurements and NULL', solve([[14, 'p', 2, 1, 1, 14], [24, 'p', 2, 2, 1, 14], [34, 'p', 3, 0, 1, 14], [44, 'p', None, 1, 0, None]], [[14, 'p', 2, 1, 1, None], [24, 'p', 2, 1, 1, None]]), [['p', 7]])\n    check('adversarial key cardinality and NULL placement witness 9', solve([[14, None, -2, 1, 0, 14], [24, 'b', None, 2, 1, 194], [34, None, 2, 7, 2, 194], [44, 'A', 3, 3, -1, 34], [54, ' a ', None, 7, 2, 14], [64, '', 1, 7, 2, None], [74, None, 2, 0, 2, 24], [84, 'A', None, 3, -1, 24], [94, 'a', 2, 7, 2, 194], [104, 'b', 3, 2, 0, None], [114, 'c', None, 3, 2, None], [124, 'A', 5, 2, None, None], [134, ' a ', 0, 1, 1, 24], [144, 'b', 2, 7, 2, None]], [[14, ' a ', -1, 1, 0, 34], [24, 'a', 5, 0, 0, None], [34, 'c', -3, 0, 1, 194], [44, ' a ', 2, 7, 1, None], [54, 'b', None, 7, -1, 14], [64, '', 2, 0, None, 34], [74, 'b', -3, 3, 1, None], [84, 'a', 0, 1, None, 194], [94, 'a', 5, 0, None, 14], [104, '', None, 3, 0, 194]]), [['', 1], ['A', 8], ['a', 2], ['b', 5], [None, 2]])\nelif N == 5:\n    check('empty relations', solve([], []), [])\n    check('left facts without references', solve([[15, 'a', None, 8, None, None], [25, 'a', 0, 3, 0, 15], [35, 'a', 2, 1, 1, 25], [45, 'a', 2, 2, 2, 905], [55, 'a', -1, 4, -1, 35], [65, 'a', 3, 1, 1, 45], [75, 'b', -2, 2, 0, 15], [85, 'b', 2, 8, 1, 25], [95, 'b', None, 4, None, None], [105, None, None, 0, 1, 905], [115, None, 0, 5, 0, 15], [125, None, None, 7, None, 25], [135, 'c', None, 6, None, 35], [145, 'd', -1, 1, 0, 45], [155, 'A', 2, 2, 1, 55], [165, ' a ', 2, 8, 1, None], [175, '', None, 2, 0, None], [185, 'a', 2, 8, 1, 15], [195, 'd', 1, 3, 0, 45], [205, 'd', -1, 0, -1, 25]], []), [[' a ', 2], ['A', 2], ['a', 8]])\n    check('references without candidates', solve([], [[15, 'a', None, 0, 1, None], [25, 'a', 2, 2, 0, None], [35, 'a', 2, 3, 2, None], [45, 'a', 3, 4, None, None], [55, 'b', -2, 2, 1, None], [65, 'b', 0, 8, -1, None], [75, None, None, 2, 1, None], [85, None, 0, 5, None, None], [95, 'z', 3, 2, 0, None], [105, 'z', 3, 2, 1, None], [115, 'A', 2, 1, 1, None], [125, 'c', None, 2, 0, None]]), [])\n    check('mixed nullable groups duplicates ties and truth flags', solve([[15, 'a', None, 8, None, None], [25, 'a', 0, 3, 0, 15], [35, 'a', 2, 1, 1, 25], [45, 'a', 2, 2, 2, 905], [55, 'a', -1, 4, -1, 35], [65, 'a', 3, 1, 1, 45], [75, 'b', -2, 2, 0, 15], [85, 'b', 2, 8, 1, 25], [95, 'b', None, 4, None, None], [105, None, None, 0, 1, 905], [115, None, 0, 5, 0, 15], [125, None, None, 7, None, 25], [135, 'c', None, 6, None, 35], [145, 'd', -1, 1, 0, 45], [155, 'A', 2, 2, 1, 55], [165, ' a ', 2, 8, 1, None], [175, '', None, 2, 0, None], [185, 'a', 2, 8, 1, 15], [195, 'd', 1, 3, 0, 45], [205, 'd', -1, 0, -1, 25]], [[15, 'a', None, 0, 1, None], [25, 'a', 2, 2, 0, None], [35, 'a', 2, 3, 2, None], [45, 'a', 3, 4, None, None], [55, 'b', -2, 2, 1, None], [65, 'b', 0, 8, -1, None], [75, None, None, 2, 1, None], [85, None, 0, 5, None, None], [95, 'z', 3, 2, 0, None], [105, 'z', 3, 2, 1, None], [115, 'A', 2, 1, 1, None], [125, 'c', None, 2, 0, None]]), [[' a ', 2], ['A', 2], ['a', 8]])\n    check('unknown-only group with duplicate nullable index keys', solve([[15, None, None, 3, None, None], [25, None, None, 4, None, None], [35, 'x', None, 5, None, None]], [[15, None, None, 2, None, None]]), [])\n    check('single known zero and matching reference', solve([[15, 'a', 0, 9, 0, 15]], [[15, 'a', 0, 3, 1, None]]), [])\n    check('negative-only group and missing measurement', solve([[15, 'n', -2, 4, -1, 15], [25, 'n', None, 2, 0, 25], [35, 'n', -1, 0, 2, None]], [[15, 'n', -2, 1, 1, None]]), [])\n    check('positive-only group with repeated measurements and NULL', solve([[15, 'p', 2, 1, 1, 15], [25, 'p', 2, 2, 1, 15], [35, 'p', 3, 0, 1, 15], [45, 'p', None, 1, 0, None]], [[15, 'p', 2, 1, 1, None], [25, 'p', 2, 1, 1, None]]), [['p', 7]])\n    check('adversarial key cardinality and NULL placement witness 9', solve([[15, None, -2, 1, 0, 15], [25, 'b', None, 2, 1, 195], [35, None, 2, 7, 2, 195], [45, 'A', 3, 3, -1, 35], [55, ' a ', None, 7, 2, 15], [65, '', 1, 7, 2, None], [75, None, 2, 0, 2, 25], [85, 'A', None, 3, -1, 25], [95, 'a', 2, 7, 2, 195], [105, 'b', 3, 2, 0, None], [115, 'c', None, 3, 2, None], [125, 'A', 5, 2, None, None], [135, ' a ', 0, 1, 1, 25], [145, 'b', 2, 7, 2, None]], [[15, ' a ', -1, 1, 0, 35], [25, 'a', 5, 0, 0, None], [35, 'c', -3, 0, 1, 195], [45, ' a ', 2, 7, 1, None], [55, 'b', None, 7, -1, 15], [65, '', 2, 0, None, 35], [75, 'b', -3, 3, 1, None], [85, 'a', 0, 1, None, 195], [95, 'a', 5, 0, None, 15], [105, '', None, 3, 0, 195]]), [['', 1], ['A', 8], ['a', 2], ['b', 5], [None, 2]])\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":"750c71d7ec5db03394106bc2f7c1f51ff9fcf26fb31274a86f7803b0cae51ab7","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport sqlite3\nN = 1\nobservations = []\ndef solve(rows, refs):\n    db = sqlite3.connect(':memory:')\n    try:\n        for name, records in [('a', rows), ('b', refs)]:\n            db.execute('CREATE TABLE ' + name + ' (id INTEGER PRIMARY KEY, k TEXT, v INTEGER, w INTEGER, flag INTEGER, parent INTEGER)')\n            db.executemany('INSERT INTO ' + name + ' VALUES (?,?,?,?,?,?)', records)\n        return sorted([list(row) for row in db.execute('SELECT k,SUM(v) FROM a GROUP BY k HAVING MIN(v)>0')], key=repr)\n    finally:\n        db.close()\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nif N == 1:\n    check('empty relations', solve([], []), [])\n    check('left facts without references', solve([[11, 'a', None, 8, None, None], [21, 'a', 0, 3, 0, 11], [31, 'a', 2, 1, 1, 21], [41, 'a', 2, 2, 2, 901], [51, 'a', -1, 4, -1, 31], [61, 'a', 3, 1, 1, 41], [71, 'b', -2, 2, 0, 11], [81, 'b', 2, 8, 1, 21], [91, 'b', None, 4, None, None], [101, None, None, 0, 1, 901], [111, None, 0, 5, 0, 11], [121, None, None, 7, None, 21], [131, 'c', None, 6, None, 31], [141, 'd', -1, 1, 0, 41], [151, 'A', 2, 2, 1, 51], [161, ' a ', 2, 8, 1, None], [171, '', None, 2, 0, None], [181, 'a', 2, 8, 1, 11], [191, 'd', 1, 3, 0, 41], [201, 'd', -1, 0, -1, 21]], []), [[' a ', 2], ['A', 2], ['a', 8]])\n    check('references without candidates', solve([], [[11, 'a', None, 0, 1, None], [21, 'a', 2, 2, 0, None], [31, 'a', 2, 3, 2, None], [41, 'a', 3, 4, None, None], [51, 'b', -2, 2, 1, None], [61, 'b', 0, 8, -1, None], [71, None, None, 2, 1, None], [81, None, 0, 5, None, None], [91, 'z', 3, 2, 0, None], [101, 'z', 3, 2, 1, None], [111, 'A', 2, 1, 1, None], [121, 'c', None, 2, 0, None]]), [])\n    check('mixed nullable groups duplicates ties and truth flags', solve([[11, 'a', None, 8, None, None], [21, 'a', 0, 3, 0, 11], [31, 'a', 2, 1, 1, 21], [41, 'a', 2, 2, 2, 901], [51, 'a', -1, 4, -1, 31], [61, 'a', 3, 1, 1, 41], [71, 'b', -2, 2, 0, 11], [81, 'b', 2, 8, 1, 21], [91, 'b', None, 4, None, None], [101, None, None, 0, 1, 901], [111, None, 0, 5, 0, 11], [121, None, None, 7, None, 21], [131, 'c', None, 6, None, 31], [141, 'd', -1, 1, 0, 41], [151, 'A', 2, 2, 1, 51], [161, ' a ', 2, 8, 1, None], [171, '', None, 2, 0, None], [181, 'a', 2, 8, 1, 11], [191, 'd', 1, 3, 0, 41], [201, 'd', -1, 0, -1, 21]], [[11, 'a', None, 0, 1, None], [21, 'a', 2, 2, 0, None], [31, 'a', 2, 3, 2, None], [41, 'a', 3, 4, None, None], [51, 'b', -2, 2, 1, None], [61, 'b', 0, 8, -1, None], [71, None, None, 2, 1, None], [81, None, 0, 5, None, None], [91, 'z', 3, 2, 0, None], [101, 'z', 3, 2, 1, None], [111, 'A', 2, 1, 1, None], [121, 'c', None, 2, 0, None]]), [[' a ', 2], ['A', 2], ['a', 8]])\n    check('unknown-only group with duplicate nullable index keys', solve([[11, None, None, 3, None, None], [21, None, None, 4, None, None], [31, 'x', None, 5, None, None]], [[11, None, None, 2, None, None]]), [])\n    check('single known zero and matching reference', solve([[11, 'a', 0, 9, 0, 11]], [[11, 'a', 0, 3, 1, None]]), [])\n    check('negative-only group and missing measurement', solve([[11, 'n', -2, 4, -1, 11], [21, 'n', None, 2, 0, 21], [31, 'n', -1, 0, 2, None]], [[11, 'n', -2, 1, 1, None]]), [])\n    check('positive-only group with repeated measurements and NULL', solve([[11, 'p', 2, 1, 1, 11], [21, 'p', 2, 2, 1, 11], [31, 'p', 3, 0, 1, 11], [41, 'p', None, 1, 0, None]], [[11, 'p', 2, 1, 1, None], [21, 'p', 2, 1, 1, None]]), [['p', 7]])\n    check('adversarial key cardinality and NULL placement witness 9', solve([[11, None, -2, 1, 0, 11], [21, 'b', None, 2, 1, 191], [31, None, 2, 7, 2, 191], [41, 'A', 3, 3, -1, 31], [51, ' a ', None, 7, 2, 11], [61, '', 1, 7, 2, None], [71, None, 2, 0, 2, 21], [81, 'A', None, 3, -1, 21], [91, 'a', 2, 7, 2, 191], [101, 'b', 3, 2, 0, None], [111, 'c', None, 3, 2, None], [121, 'A', 5, 2, None, None], [131, ' a ', 0, 1, 1, 21], [141, 'b', 2, 7, 2, None]], [[11, ' a ', -1, 1, 0, 31], [21, 'a', 5, 0, 0, None], [31, 'c', -3, 0, 1, 191], [41, ' a ', 2, 7, 1, None], [51, 'b', None, 7, -1, 11], [61, '', 2, 0, None, 31], [71, 'b', -3, 3, 1, None], [81, 'a', 0, 1, None, 191], [91, 'a', 5, 0, None, 11], [101, '', None, 3, 0, 191]]), [['', 1], ['A', 8], ['a', 2], ['b', 5], [None, 2]])\nelif N == 2:\n    check('empty relations', solve([], []), [])\n    check('left facts without references', solve([[12, 'a', None, 8, None, None], [22, 'a', 0, 3, 0, 12], [32, 'a', 2, 1, 1, 22], [42, 'a', 2, 2, 2, 902], [52, 'a', -1, 4, -1, 32], [62, 'a', 3, 1, 1, 42], [72, 'b', -2, 2, 0, 12], [82, 'b', 2, 8, 1, 22], [92, 'b', None, 4, None, None], [102, None, None, 0, 1, 902], [112, None, 0, 5, 0, 12], [122, None, None, 7, None, 22], [132, 'c', None, 6, None, 32], [142, 'd', -1, 1, 0, 42], [152, 'A', 2, 2, 1, 52], [162, ' a ', 2, 8, 1, None], [172, '', None, 2, 0, None], [182, 'a', 2, 8, 1, 12], [192, 'd', 1, 3, 0, 42], [202, 'd', -1, 0, -1, 22]], []), [[' a ', 2], ['A', 2], ['a', 8]])\n    check('references without candidates', solve([], [[12, 'a', None, 0, 1, None], [22, 'a', 2, 2, 0, None], [32, 'a', 2, 3, 2, None], [42, 'a', 3, 4, None, None], [52, 'b', -2, 2, 1, None], [62, 'b', 0, 8, -1, None], [72, None, None, 2, 1, None], [82, None, 0, 5, None, None], [92, 'z', 3, 2, 0, None], [102, 'z', 3, 2, 1, None], [112, 'A', 2, 1, 1, None], [122, 'c', None, 2, 0, None]]), [])\n    check('mixed nullable groups duplicates ties and truth flags', solve([[12, 'a', None, 8, None, None], [22, 'a', 0, 3, 0, 12], [32, 'a', 2, 1, 1, 22], [42, 'a', 2, 2, 2, 902], [52, 'a', -1, 4, -1, 32], [62, 'a', 3, 1, 1, 42], [72, 'b', -2, 2, 0, 12], [82, 'b', 2, 8, 1, 22], [92, 'b', None, 4, None, None], [102, None, None, 0, 1, 902], [112, None, 0, 5, 0, 12], [122, None, None, 7, None, 22], [132, 'c', None, 6, None, 32], [142, 'd', -1, 1, 0, 42], [152, 'A', 2, 2, 1, 52], [162, ' a ', 2, 8, 1, None], [172, '', None, 2, 0, None], [182, 'a', 2, 8, 1, 12], [192, 'd', 1, 3, 0, 42], [202, 'd', -1, 0, -1, 22]], [[12, 'a', None, 0, 1, None], [22, 'a', 2, 2, 0, None], [32, 'a', 2, 3, 2, None], [42, 'a', 3, 4, None, None], [52, 'b', -2, 2, 1, None], [62, 'b', 0, 8, -1, None], [72, None, None, 2, 1, None], [82, None, 0, 5, None, None], [92, 'z', 3, 2, 0, None], [102, 'z', 3, 2, 1, None], [112, 'A', 2, 1, 1, None], [122, 'c', None, 2, 0, None]]), [[' a ', 2], ['A', 2], ['a', 8]])\n    check('unknown-only group with duplicate nullable index keys', solve([[12, None, None, 3, None, None], [22, None, None, 4, None, None], [32, 'x', None, 5, None, None]], [[12, None, None, 2, None, None]]), [])\n    check('single known zero and matching reference', solve([[12, 'a', 0, 9, 0, 12]], [[12, 'a', 0, 3, 1, None]]), [])\n    check('negative-only group and missing measurement', solve([[12, 'n', -2, 4, -1, 12], [22, 'n', None, 2, 0, 22], [32, 'n', -1, 0, 2, None]], [[12, 'n', -2, 1, 1, None]]), [])\n    check('positive-only group with repeated measurements and NULL', solve([[12, 'p', 2, 1, 1, 12], [22, 'p', 2, 2, 1, 12], [32, 'p', 3, 0, 1, 12], [42, 'p', None, 1, 0, None]], [[12, 'p', 2, 1, 1, None], [22, 'p', 2, 1, 1, None]]), [['p', 7]])\n    check('adversarial key cardinality and NULL placement witness 9', solve([[12, None, -2, 1, 0, 12], [22, 'b', None, 2, 1, 192], [32, None, 2, 7, 2, 192], [42, 'A', 3, 3, -1, 32], [52, ' a ', None, 7, 2, 12], [62, '', 1, 7, 2, None], [72, None, 2, 0, 2, 22], [82, 'A', None, 3, -1, 22], [92, 'a', 2, 7, 2, 192], [102, 'b', 3, 2, 0, None], [112, 'c', None, 3, 2, None], [122, 'A', 5, 2, None, None], [132, ' a ', 0, 1, 1, 22], [142, 'b', 2, 7, 2, None]], [[12, ' a ', -1, 1, 0, 32], [22, 'a', 5, 0, 0, None], [32, 'c', -3, 0, 1, 192], [42, ' a ', 2, 7, 1, None], [52, 'b', None, 7, -1, 12], [62, '', 2, 0, None, 32], [72, 'b', -3, 3, 1, None], [82, 'a', 0, 1, None, 192], [92, 'a', 5, 0, None, 12], [102, '', None, 3, 0, 192]]), [['', 1], ['A', 8], ['a', 2], ['b', 5], [None, 2]])\nelif N == 3:\n    check('empty relations', solve([], []), [])\n    check('left facts without references', solve([[13, 'a', None, 8, None, None], [23, 'a', 0, 3, 0, 13], [33, 'a', 2, 1, 1, 23], [43, 'a', 2, 2, 2, 903], [53, 'a', -1, 4, -1, 33], [63, 'a', 3, 1, 1, 43], [73, 'b', -2, 2, 0, 13], [83, 'b', 2, 8, 1, 23], [93, 'b', None, 4, None, None], [103, None, None, 0, 1, 903], [113, None, 0, 5, 0, 13], [123, None, None, 7, None, 23], [133, 'c', None, 6, None, 33], [143, 'd', -1, 1, 0, 43], [153, 'A', 2, 2, 1, 53], [163, ' a ', 2, 8, 1, None], [173, '', None, 2, 0, None], [183, 'a', 2, 8, 1, 13], [193, 'd', 1, 3, 0, 43], [203, 'd', -1, 0, -1, 23]], []), [[' a ', 2], ['A', 2], ['a', 8]])\n    check('references without candidates', solve([], [[13, 'a', None, 0, 1, None], [23, 'a', 2, 2, 0, None], [33, 'a', 2, 3, 2, None], [43, 'a', 3, 4, None, None], [53, 'b', -2, 2, 1, None], [63, 'b', 0, 8, -1, None], [73, None, None, 2, 1, None], [83, None, 0, 5, None, None], [93, 'z', 3, 2, 0, None], [103, 'z', 3, 2, 1, None], [113, 'A', 2, 1, 1, None], [123, 'c', None, 2, 0, None]]), [])\n    check('mixed nullable groups duplicates ties and truth flags', solve([[13, 'a', None, 8, None, None], [23, 'a', 0, 3, 0, 13], [33, 'a', 2, 1, 1, 23], [43, 'a', 2, 2, 2, 903], [53, 'a', -1, 4, -1, 33], [63, 'a', 3, 1, 1, 43], [73, 'b', -2, 2, 0, 13], [83, 'b', 2, 8, 1, 23], [93, 'b', None, 4, None, None], [103, None, None, 0, 1, 903], [113, None, 0, 5, 0, 13], [123, None, None, 7, None, 23], [133, 'c', None, 6, None, 33], [143, 'd', -1, 1, 0, 43], [153, 'A', 2, 2, 1, 53], [163, ' a ', 2, 8, 1, None], [173, '', None, 2, 0, None], [183, 'a', 2, 8, 1, 13], [193, 'd', 1, 3, 0, 43], [203, 'd', -1, 0, -1, 23]], [[13, 'a', None, 0, 1, None], [23, 'a', 2, 2, 0, None], [33, 'a', 2, 3, 2, None], [43, 'a', 3, 4, None, None], [53, 'b', -2, 2, 1, None], [63, 'b', 0, 8, -1, None], [73, None, None, 2, 1, None], [83, None, 0, 5, None, None], [93, 'z', 3, 2, 0, None], [103, 'z', 3, 2, 1, None], [113, 'A', 2, 1, 1, None], [123, 'c', None, 2, 0, None]]), [[' a ', 2], ['A', 2], ['a', 8]])\n    check('unknown-only group with duplicate nullable index keys', solve([[13, None, None, 3, None, None], [23, None, None, 4, None, None], [33, 'x', None, 5, None, None]], [[13, None, None, 2, None, None]]), [])\n    check('single known zero and matching reference', solve([[13, 'a', 0, 9, 0, 13]], [[13, 'a', 0, 3, 1, None]]), [])\n    check('negative-only group and missing measurement', solve([[13, 'n', -2, 4, -1, 13], [23, 'n', None, 2, 0, 23], [33, 'n', -1, 0, 2, None]], [[13, 'n', -2, 1, 1, None]]), [])\n    check('positive-only group with repeated measurements and NULL', solve([[13, 'p', 2, 1, 1, 13], [23, 'p', 2, 2, 1, 13], [33, 'p', 3, 0, 1, 13], [43, 'p', None, 1, 0, None]], [[13, 'p', 2, 1, 1, None], [23, 'p', 2, 1, 1, None]]), [['p', 7]])\n    check('adversarial key cardinality and NULL placement witness 9', solve([[13, None, -2, 1, 0, 13], [23, 'b', None, 2, 1, 193], [33, None, 2, 7, 2, 193], [43, 'A', 3, 3, -1, 33], [53, ' a ', None, 7, 2, 13], [63, '', 1, 7, 2, None], [73, None, 2, 0, 2, 23], [83, 'A', None, 3, -1, 23], [93, 'a', 2, 7, 2, 193], [103, 'b', 3, 2, 0, None], [113, 'c', None, 3, 2, None], [123, 'A', 5, 2, None, None], [133, ' a ', 0, 1, 1, 23], [143, 'b', 2, 7, 2, None]], [[13, ' a ', -1, 1, 0, 33], [23, 'a', 5, 0, 0, None], [33, 'c', -3, 0, 1, 193], [43, ' a ', 2, 7, 1, None], [53, 'b', None, 7, -1, 13], [63, '', 2, 0, None, 33], [73, 'b', -3, 3, 1, None], [83, 'a', 0, 1, None, 193], [93, 'a', 5, 0, None, 13], [103, '', None, 3, 0, 193]]), [['', 1], ['A', 8], ['a', 2], ['b', 5], [None, 2]])\nelif N == 4:\n    check('empty relations', solve([], []), [])\n    check('left facts without references', solve([[14, 'a', None, 8, None, None], [24, 'a', 0, 3, 0, 14], [34, 'a', 2, 1, 1, 24], [44, 'a', 2, 2, 2, 904], [54, 'a', -1, 4, -1, 34], [64, 'a', 3, 1, 1, 44], [74, 'b', -2, 2, 0, 14], [84, 'b', 2, 8, 1, 24], [94, 'b', None, 4, None, None], [104, None, None, 0, 1, 904], [114, None, 0, 5, 0, 14], [124, None, None, 7, None, 24], [134, 'c', None, 6, None, 34], [144, 'd', -1, 1, 0, 44], [154, 'A', 2, 2, 1, 54], [164, ' a ', 2, 8, 1, None], [174, '', None, 2, 0, None], [184, 'a', 2, 8, 1, 14], [194, 'd', 1, 3, 0, 44], [204, 'd', -1, 0, -1, 24]], []), [[' a ', 2], ['A', 2], ['a', 8]])\n    check('references without candidates', solve([], [[14, 'a', None, 0, 1, None], [24, 'a', 2, 2, 0, None], [34, 'a', 2, 3, 2, None], [44, 'a', 3, 4, None, None], [54, 'b', -2, 2, 1, None], [64, 'b', 0, 8, -1, None], [74, None, None, 2, 1, None], [84, None, 0, 5, None, None], [94, 'z', 3, 2, 0, None], [104, 'z', 3, 2, 1, None], [114, 'A', 2, 1, 1, None], [124, 'c', None, 2, 0, None]]), [])\n    check('mixed nullable groups duplicates ties and truth flags', solve([[14, 'a', None, 8, None, None], [24, 'a', 0, 3, 0, 14], [34, 'a', 2, 1, 1, 24], [44, 'a', 2, 2, 2, 904], [54, 'a', -1, 4, -1, 34], [64, 'a', 3, 1, 1, 44], [74, 'b', -2, 2, 0, 14], [84, 'b', 2, 8, 1, 24], [94, 'b', None, 4, None, None], [104, None, None, 0, 1, 904], [114, None, 0, 5, 0, 14], [124, None, None, 7, None, 24], [134, 'c', None, 6, None, 34], [144, 'd', -1, 1, 0, 44], [154, 'A', 2, 2, 1, 54], [164, ' a ', 2, 8, 1, None], [174, '', None, 2, 0, None], [184, 'a', 2, 8, 1, 14], [194, 'd', 1, 3, 0, 44], [204, 'd', -1, 0, -1, 24]], [[14, 'a', None, 0, 1, None], [24, 'a', 2, 2, 0, None], [34, 'a', 2, 3, 2, None], [44, 'a', 3, 4, None, None], [54, 'b', -2, 2, 1, None], [64, 'b', 0, 8, -1, None], [74, None, None, 2, 1, None], [84, None, 0, 5, None, None], [94, 'z', 3, 2, 0, None], [104, 'z', 3, 2, 1, None], [114, 'A', 2, 1, 1, None], [124, 'c', None, 2, 0, None]]), [[' a ', 2], ['A', 2], ['a', 8]])\n    check('unknown-only group with duplicate nullable index keys', solve([[14, None, None, 3, None, None], [24, None, None, 4, None, None], [34, 'x', None, 5, None, None]], [[14, None, None, 2, None, None]]), [])\n    check('single known zero and matching reference', solve([[14, 'a', 0, 9, 0, 14]], [[14, 'a', 0, 3, 1, None]]), [])\n    check('negative-only group and missing measurement', solve([[14, 'n', -2, 4, -1, 14], [24, 'n', None, 2, 0, 24], [34, 'n', -1, 0, 2, None]], [[14, 'n', -2, 1, 1, None]]), [])\n    check('positive-only group with repeated measurements and NULL', solve([[14, 'p', 2, 1, 1, 14], [24, 'p', 2, 2, 1, 14], [34, 'p', 3, 0, 1, 14], [44, 'p', None, 1, 0, None]], [[14, 'p', 2, 1, 1, None], [24, 'p', 2, 1, 1, None]]), [['p', 7]])\n    check('adversarial key cardinality and NULL placement witness 9', solve([[14, None, -2, 1, 0, 14], [24, 'b', None, 2, 1, 194], [34, None, 2, 7, 2, 194], [44, 'A', 3, 3, -1, 34], [54, ' a ', None, 7, 2, 14], [64, '', 1, 7, 2, None], [74, None, 2, 0, 2, 24], [84, 'A', None, 3, -1, 24], [94, 'a', 2, 7, 2, 194], [104, 'b', 3, 2, 0, None], [114, 'c', None, 3, 2, None], [124, 'A', 5, 2, None, None], [134, ' a ', 0, 1, 1, 24], [144, 'b', 2, 7, 2, None]], [[14, ' a ', -1, 1, 0, 34], [24, 'a', 5, 0, 0, None], [34, 'c', -3, 0, 1, 194], [44, ' a ', 2, 7, 1, None], [54, 'b', None, 7, -1, 14], [64, '', 2, 0, None, 34], [74, 'b', -3, 3, 1, None], [84, 'a', 0, 1, None, 194], [94, 'a', 5, 0, None, 14], [104, '', None, 3, 0, 194]]), [['', 1], ['A', 8], ['a', 2], ['b', 5], [None, 2]])\nelif N == 5:\n    check('empty relations', solve([], []), [])\n    check('left facts without references', solve([[15, 'a', None, 8, None, None], [25, 'a', 0, 3, 0, 15], [35, 'a', 2, 1, 1, 25], [45, 'a', 2, 2, 2, 905], [55, 'a', -1, 4, -1, 35], [65, 'a', 3, 1, 1, 45], [75, 'b', -2, 2, 0, 15], [85, 'b', 2, 8, 1, 25], [95, 'b', None, 4, None, None], [105, None, None, 0, 1, 905], [115, None, 0, 5, 0, 15], [125, None, None, 7, None, 25], [135, 'c', None, 6, None, 35], [145, 'd', -1, 1, 0, 45], [155, 'A', 2, 2, 1, 55], [165, ' a ', 2, 8, 1, None], [175, '', None, 2, 0, None], [185, 'a', 2, 8, 1, 15], [195, 'd', 1, 3, 0, 45], [205, 'd', -1, 0, -1, 25]], []), [[' a ', 2], ['A', 2], ['a', 8]])\n    check('references without candidates', solve([], [[15, 'a', None, 0, 1, None], [25, 'a', 2, 2, 0, None], [35, 'a', 2, 3, 2, None], [45, 'a', 3, 4, None, None], [55, 'b', -2, 2, 1, None], [65, 'b', 0, 8, -1, None], [75, None, None, 2, 1, None], [85, None, 0, 5, None, None], [95, 'z', 3, 2, 0, None], [105, 'z', 3, 2, 1, None], [115, 'A', 2, 1, 1, None], [125, 'c', None, 2, 0, None]]), [])\n    check('mixed nullable groups duplicates ties and truth flags', solve([[15, 'a', None, 8, None, None], [25, 'a', 0, 3, 0, 15], [35, 'a', 2, 1, 1, 25], [45, 'a', 2, 2, 2, 905], [55, 'a', -1, 4, -1, 35], [65, 'a', 3, 1, 1, 45], [75, 'b', -2, 2, 0, 15], [85, 'b', 2, 8, 1, 25], [95, 'b', None, 4, None, None], [105, None, None, 0, 1, 905], [115, None, 0, 5, 0, 15], [125, None, None, 7, None, 25], [135, 'c', None, 6, None, 35], [145, 'd', -1, 1, 0, 45], [155, 'A', 2, 2, 1, 55], [165, ' a ', 2, 8, 1, None], [175, '', None, 2, 0, None], [185, 'a', 2, 8, 1, 15], [195, 'd', 1, 3, 0, 45], [205, 'd', -1, 0, -1, 25]], [[15, 'a', None, 0, 1, None], [25, 'a', 2, 2, 0, None], [35, 'a', 2, 3, 2, None], [45, 'a', 3, 4, None, None], [55, 'b', -2, 2, 1, None], [65, 'b', 0, 8, -1, None], [75, None, None, 2, 1, None], [85, None, 0, 5, None, None], [95, 'z', 3, 2, 0, None], [105, 'z', 3, 2, 1, None], [115, 'A', 2, 1, 1, None], [125, 'c', None, 2, 0, None]]), [[' a ', 2], ['A', 2], ['a', 8]])\n    check('unknown-only group with duplicate nullable index keys', solve([[15, None, None, 3, None, None], [25, None, None, 4, None, None], [35, 'x', None, 5, None, None]], [[15, None, None, 2, None, None]]), [])\n    check('single known zero and matching reference', solve([[15, 'a', 0, 9, 0, 15]], [[15, 'a', 0, 3, 1, None]]), [])\n    check('negative-only group and missing measurement', solve([[15, 'n', -2, 4, -1, 15], [25, 'n', None, 2, 0, 25], [35, 'n', -1, 0, 2, None]], [[15, 'n', -2, 1, 1, None]]), [])\n    check('positive-only group with repeated measurements and NULL', solve([[15, 'p', 2, 1, 1, 15], [25, 'p', 2, 2, 1, 15], [35, 'p', 3, 0, 1, 15], [45, 'p', None, 1, 0, None]], [[15, 'p', 2, 1, 1, None], [25, 'p', 2, 1, 1, None]]), [['p', 7]])\n    check('adversarial key cardinality and NULL placement witness 9', solve([[15, None, -2, 1, 0, 15], [25, 'b', None, 2, 1, 195], [35, None, 2, 7, 2, 195], [45, 'A', 3, 3, -1, 35], [55, ' a ', None, 7, 2, 15], [65, '', 1, 7, 2, None], [75, None, 2, 0, 2, 25], [85, 'A', None, 3, -1, 25], [95, 'a', 2, 7, 2, 195], [105, 'b', 3, 2, 0, None], [115, 'c', None, 3, 2, None], [125, 'A', 5, 2, None, None], [135, ' a ', 0, 1, 1, 25], [145, 'b', 2, 7, 2, None]], [[15, ' a ', -1, 1, 0, 35], [25, 'a', 5, 0, 0, None], [35, 'c', -3, 0, 1, 195], [45, ' a ', 2, 7, 1, None], [55, 'b', None, 7, -1, 15], [65, '', 2, 0, None, 35], [75, 'b', -3, 3, 1, None], [85, 'a', 0, 1, None, 195], [95, 'a', 5, 0, None, 15], [105, '', None, 3, 0, 195]]), [['', 1], ['A', 8], ['a', 2], ['b', 5], [None, 2]])\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":"f63b7fcc0c2961372071c8de1a99ccc00948c8de217f3c9bd450090f55131d14","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport sqlite3\nN = 1\nobservations = []\ndef solve(rows, refs):\n    db = sqlite3.connect(':memory:')\n    try:\n        for name, records in [('a', rows), ('b', refs)]:\n            db.execute('CREATE TABLE ' + name + ' (id INTEGER PRIMARY KEY, k TEXT, v INTEGER, w INTEGER, flag INTEGER, parent INTEGER)')\n            db.executemany('INSERT INTO ' + name + ' VALUES (?,?,?,?,?,?)', records)\n        return sorted([list(row) for row in db.execute('SELECT k,SUM(v) FROM a GROUP BY k HAVING SUM(v)>0')], key=repr)\n    finally:\n        db.close()\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nif N == 1:\n    check('empty relations', solve([], []), [])\n    check('left facts without references', solve([[11, 'a', None, 8, None, None], [21, 'a', 0, 3, 0, 11], [31, 'a', 2, 1, 1, 21], [41, 'a', 2, 2, 2, 901], [51, 'a', -1, 4, -1, 31], [61, 'a', 3, 1, 1, 41], [71, 'b', -2, 2, 0, 11], [81, 'b', 2, 8, 1, 21], [91, 'b', None, 4, None, None], [101, None, None, 0, 1, 901], [111, None, 0, 5, 0, 11], [121, None, None, 7, None, 21], [131, 'c', None, 6, None, 31], [141, 'd', -1, 1, 0, 41], [151, 'A', 2, 2, 1, 51], [161, ' a ', 2, 8, 1, None], [171, '', None, 2, 0, None], [181, 'a', 2, 8, 1, 11], [191, 'd', 1, 3, 0, 41], [201, 'd', -1, 0, -1, 21]], []), [[' a ', 2], ['A', 2], ['a', 8]])\n    check('references without candidates', solve([], [[11, 'a', None, 0, 1, None], [21, 'a', 2, 2, 0, None], [31, 'a', 2, 3, 2, None], [41, 'a', 3, 4, None, None], [51, 'b', -2, 2, 1, None], [61, 'b', 0, 8, -1, None], [71, None, None, 2, 1, None], [81, None, 0, 5, None, None], [91, 'z', 3, 2, 0, None], [101, 'z', 3, 2, 1, None], [111, 'A', 2, 1, 1, None], [121, 'c', None, 2, 0, None]]), [])\n    check('mixed nullable groups duplicates ties and truth flags', solve([[11, 'a', None, 8, None, None], [21, 'a', 0, 3, 0, 11], [31, 'a', 2, 1, 1, 21], [41, 'a', 2, 2, 2, 901], [51, 'a', -1, 4, -1, 31], [61, 'a', 3, 1, 1, 41], [71, 'b', -2, 2, 0, 11], [81, 'b', 2, 8, 1, 21], [91, 'b', None, 4, None, None], [101, None, None, 0, 1, 901], [111, None, 0, 5, 0, 11], [121, None, None, 7, None, 21], [131, 'c', None, 6, None, 31], [141, 'd', -1, 1, 0, 41], [151, 'A', 2, 2, 1, 51], [161, ' a ', 2, 8, 1, None], [171, '', None, 2, 0, None], [181, 'a', 2, 8, 1, 11], [191, 'd', 1, 3, 0, 41], [201, 'd', -1, 0, -1, 21]], [[11, 'a', None, 0, 1, None], [21, 'a', 2, 2, 0, None], [31, 'a', 2, 3, 2, None], [41, 'a', 3, 4, None, None], [51, 'b', -2, 2, 1, None], [61, 'b', 0, 8, -1, None], [71, None, None, 2, 1, None], [81, None, 0, 5, None, None], [91, 'z', 3, 2, 0, None], [101, 'z', 3, 2, 1, None], [111, 'A', 2, 1, 1, None], [121, 'c', None, 2, 0, None]]), [[' a ', 2], ['A', 2], ['a', 8]])\n    check('unknown-only group with duplicate nullable index keys', solve([[11, None, None, 3, None, None], [21, None, None, 4, None, None], [31, 'x', None, 5, None, None]], [[11, None, None, 2, None, None]]), [])\n    check('single known zero and matching reference', solve([[11, 'a', 0, 9, 0, 11]], [[11, 'a', 0, 3, 1, None]]), [])\n    check('negative-only group and missing measurement', solve([[11, 'n', -2, 4, -1, 11], [21, 'n', None, 2, 0, 21], [31, 'n', -1, 0, 2, None]], [[11, 'n', -2, 1, 1, None]]), [])\n    check('positive-only group with repeated measurements and NULL', solve([[11, 'p', 2, 1, 1, 11], [21, 'p', 2, 2, 1, 11], [31, 'p', 3, 0, 1, 11], [41, 'p', None, 1, 0, None]], [[11, 'p', 2, 1, 1, None], [21, 'p', 2, 1, 1, None]]), [['p', 7]])\n    check('adversarial key cardinality and NULL placement witness 9', solve([[11, None, -2, 1, 0, 11], [21, 'b', None, 2, 1, 191], [31, None, 2, 7, 2, 191], [41, 'A', 3, 3, -1, 31], [51, ' a ', None, 7, 2, 11], [61, '', 1, 7, 2, None], [71, None, 2, 0, 2, 21], [81, 'A', None, 3, -1, 21], [91, 'a', 2, 7, 2, 191], [101, 'b', 3, 2, 0, None], [111, 'c', None, 3, 2, None], [121, 'A', 5, 2, None, None], [131, ' a ', 0, 1, 1, 21], [141, 'b', 2, 7, 2, None]], [[11, ' a ', -1, 1, 0, 31], [21, 'a', 5, 0, 0, None], [31, 'c', -3, 0, 1, 191], [41, ' a ', 2, 7, 1, None], [51, 'b', None, 7, -1, 11], [61, '', 2, 0, None, 31], [71, 'b', -3, 3, 1, None], [81, 'a', 0, 1, None, 191], [91, 'a', 5, 0, None, 11], [101, '', None, 3, 0, 191]]), [['', 1], ['A', 8], ['a', 2], ['b', 5], [None, 2]])\nelif N == 2:\n    check('empty relations', solve([], []), [])\n    check('left facts without references', solve([[12, 'a', None, 8, None, None], [22, 'a', 0, 3, 0, 12], [32, 'a', 2, 1, 1, 22], [42, 'a', 2, 2, 2, 902], [52, 'a', -1, 4, -1, 32], [62, 'a', 3, 1, 1, 42], [72, 'b', -2, 2, 0, 12], [82, 'b', 2, 8, 1, 22], [92, 'b', None, 4, None, None], [102, None, None, 0, 1, 902], [112, None, 0, 5, 0, 12], [122, None, None, 7, None, 22], [132, 'c', None, 6, None, 32], [142, 'd', -1, 1, 0, 42], [152, 'A', 2, 2, 1, 52], [162, ' a ', 2, 8, 1, None], [172, '', None, 2, 0, None], [182, 'a', 2, 8, 1, 12], [192, 'd', 1, 3, 0, 42], [202, 'd', -1, 0, -1, 22]], []), [[' a ', 2], ['A', 2], ['a', 8]])\n    check('references without candidates', solve([], [[12, 'a', None, 0, 1, None], [22, 'a', 2, 2, 0, None], [32, 'a', 2, 3, 2, None], [42, 'a', 3, 4, None, None], [52, 'b', -2, 2, 1, None], [62, 'b', 0, 8, -1, None], [72, None, None, 2, 1, None], [82, None, 0, 5, None, None], [92, 'z', 3, 2, 0, None], [102, 'z', 3, 2, 1, None], [112, 'A', 2, 1, 1, None], [122, 'c', None, 2, 0, None]]), [])\n    check('mixed nullable groups duplicates ties and truth flags', solve([[12, 'a', None, 8, None, None], [22, 'a', 0, 3, 0, 12], [32, 'a', 2, 1, 1, 22], [42, 'a', 2, 2, 2, 902], [52, 'a', -1, 4, -1, 32], [62, 'a', 3, 1, 1, 42], [72, 'b', -2, 2, 0, 12], [82, 'b', 2, 8, 1, 22], [92, 'b', None, 4, None, None], [102, None, None, 0, 1, 902], [112, None, 0, 5, 0, 12], [122, None, None, 7, None, 22], [132, 'c', None, 6, None, 32], [142, 'd', -1, 1, 0, 42], [152, 'A', 2, 2, 1, 52], [162, ' a ', 2, 8, 1, None], [172, '', None, 2, 0, None], [182, 'a', 2, 8, 1, 12], [192, 'd', 1, 3, 0, 42], [202, 'd', -1, 0, -1, 22]], [[12, 'a', None, 0, 1, None], [22, 'a', 2, 2, 0, None], [32, 'a', 2, 3, 2, None], [42, 'a', 3, 4, None, None], [52, 'b', -2, 2, 1, None], [62, 'b', 0, 8, -1, None], [72, None, None, 2, 1, None], [82, None, 0, 5, None, None], [92, 'z', 3, 2, 0, None], [102, 'z', 3, 2, 1, None], [112, 'A', 2, 1, 1, None], [122, 'c', None, 2, 0, None]]), [[' a ', 2], ['A', 2], ['a', 8]])\n    check('unknown-only group with duplicate nullable index keys', solve([[12, None, None, 3, None, None], [22, None, None, 4, None, None], [32, 'x', None, 5, None, None]], [[12, None, None, 2, None, None]]), [])\n    check('single known zero and matching reference', solve([[12, 'a', 0, 9, 0, 12]], [[12, 'a', 0, 3, 1, None]]), [])\n    check('negative-only group and missing measurement', solve([[12, 'n', -2, 4, -1, 12], [22, 'n', None, 2, 0, 22], [32, 'n', -1, 0, 2, None]], [[12, 'n', -2, 1, 1, None]]), [])\n    check('positive-only group with repeated measurements and NULL', solve([[12, 'p', 2, 1, 1, 12], [22, 'p', 2, 2, 1, 12], [32, 'p', 3, 0, 1, 12], [42, 'p', None, 1, 0, None]], [[12, 'p', 2, 1, 1, None], [22, 'p', 2, 1, 1, None]]), [['p', 7]])\n    check('adversarial key cardinality and NULL placement witness 9', solve([[12, None, -2, 1, 0, 12], [22, 'b', None, 2, 1, 192], [32, None, 2, 7, 2, 192], [42, 'A', 3, 3, -1, 32], [52, ' a ', None, 7, 2, 12], [62, '', 1, 7, 2, None], [72, None, 2, 0, 2, 22], [82, 'A', None, 3, -1, 22], [92, 'a', 2, 7, 2, 192], [102, 'b', 3, 2, 0, None], [112, 'c', None, 3, 2, None], [122, 'A', 5, 2, None, None], [132, ' a ', 0, 1, 1, 22], [142, 'b', 2, 7, 2, None]], [[12, ' a ', -1, 1, 0, 32], [22, 'a', 5, 0, 0, None], [32, 'c', -3, 0, 1, 192], [42, ' a ', 2, 7, 1, None], [52, 'b', None, 7, -1, 12], [62, '', 2, 0, None, 32], [72, 'b', -3, 3, 1, None], [82, 'a', 0, 1, None, 192], [92, 'a', 5, 0, None, 12], [102, '', None, 3, 0, 192]]), [['', 1], ['A', 8], ['a', 2], ['b', 5], [None, 2]])\nelif N == 3:\n    check('empty relations', solve([], []), [])\n    check('left facts without references', solve([[13, 'a', None, 8, None, None], [23, 'a', 0, 3, 0, 13], [33, 'a', 2, 1, 1, 23], [43, 'a', 2, 2, 2, 903], [53, 'a', -1, 4, -1, 33], [63, 'a', 3, 1, 1, 43], [73, 'b', -2, 2, 0, 13], [83, 'b', 2, 8, 1, 23], [93, 'b', None, 4, None, None], [103, None, None, 0, 1, 903], [113, None, 0, 5, 0, 13], [123, None, None, 7, None, 23], [133, 'c', None, 6, None, 33], [143, 'd', -1, 1, 0, 43], [153, 'A', 2, 2, 1, 53], [163, ' a ', 2, 8, 1, None], [173, '', None, 2, 0, None], [183, 'a', 2, 8, 1, 13], [193, 'd', 1, 3, 0, 43], [203, 'd', -1, 0, -1, 23]], []), [[' a ', 2], ['A', 2], ['a', 8]])\n    check('references without candidates', solve([], [[13, 'a', None, 0, 1, None], [23, 'a', 2, 2, 0, None], [33, 'a', 2, 3, 2, None], [43, 'a', 3, 4, None, None], [53, 'b', -2, 2, 1, None], [63, 'b', 0, 8, -1, None], [73, None, None, 2, 1, None], [83, None, 0, 5, None, None], [93, 'z', 3, 2, 0, None], [103, 'z', 3, 2, 1, None], [113, 'A', 2, 1, 1, None], [123, 'c', None, 2, 0, None]]), [])\n    check('mixed nullable groups duplicates ties and truth flags', solve([[13, 'a', None, 8, None, None], [23, 'a', 0, 3, 0, 13], [33, 'a', 2, 1, 1, 23], [43, 'a', 2, 2, 2, 903], [53, 'a', -1, 4, -1, 33], [63, 'a', 3, 1, 1, 43], [73, 'b', -2, 2, 0, 13], [83, 'b', 2, 8, 1, 23], [93, 'b', None, 4, None, None], [103, None, None, 0, 1, 903], [113, None, 0, 5, 0, 13], [123, None, None, 7, None, 23], [133, 'c', None, 6, None, 33], [143, 'd', -1, 1, 0, 43], [153, 'A', 2, 2, 1, 53], [163, ' a ', 2, 8, 1, None], [173, '', None, 2, 0, None], [183, 'a', 2, 8, 1, 13], [193, 'd', 1, 3, 0, 43], [203, 'd', -1, 0, -1, 23]], [[13, 'a', None, 0, 1, None], [23, 'a', 2, 2, 0, None], [33, 'a', 2, 3, 2, None], [43, 'a', 3, 4, None, None], [53, 'b', -2, 2, 1, None], [63, 'b', 0, 8, -1, None], [73, None, None, 2, 1, None], [83, None, 0, 5, None, None], [93, 'z', 3, 2, 0, None], [103, 'z', 3, 2, 1, None], [113, 'A', 2, 1, 1, None], [123, 'c', None, 2, 0, None]]), [[' a ', 2], ['A', 2], ['a', 8]])\n    check('unknown-only group with duplicate nullable index keys', solve([[13, None, None, 3, None, None], [23, None, None, 4, None, None], [33, 'x', None, 5, None, None]], [[13, None, None, 2, None, None]]), [])\n    check('single known zero and matching reference', solve([[13, 'a', 0, 9, 0, 13]], [[13, 'a', 0, 3, 1, None]]), [])\n    check('negative-only group and missing measurement', solve([[13, 'n', -2, 4, -1, 13], [23, 'n', None, 2, 0, 23], [33, 'n', -1, 0, 2, None]], [[13, 'n', -2, 1, 1, None]]), [])\n    check('positive-only group with repeated measurements and NULL', solve([[13, 'p', 2, 1, 1, 13], [23, 'p', 2, 2, 1, 13], [33, 'p', 3, 0, 1, 13], [43, 'p', None, 1, 0, None]], [[13, 'p', 2, 1, 1, None], [23, 'p', 2, 1, 1, None]]), [['p', 7]])\n    check('adversarial key cardinality and NULL placement witness 9', solve([[13, None, -2, 1, 0, 13], [23, 'b', None, 2, 1, 193], [33, None, 2, 7, 2, 193], [43, 'A', 3, 3, -1, 33], [53, ' a ', None, 7, 2, 13], [63, '', 1, 7, 2, None], [73, None, 2, 0, 2, 23], [83, 'A', None, 3, -1, 23], [93, 'a', 2, 7, 2, 193], [103, 'b', 3, 2, 0, None], [113, 'c', None, 3, 2, None], [123, 'A', 5, 2, None, None], [133, ' a ', 0, 1, 1, 23], [143, 'b', 2, 7, 2, None]], [[13, ' a ', -1, 1, 0, 33], [23, 'a', 5, 0, 0, None], [33, 'c', -3, 0, 1, 193], [43, ' a ', 2, 7, 1, None], [53, 'b', None, 7, -1, 13], [63, '', 2, 0, None, 33], [73, 'b', -3, 3, 1, None], [83, 'a', 0, 1, None, 193], [93, 'a', 5, 0, None, 13], [103, '', None, 3, 0, 193]]), [['', 1], ['A', 8], ['a', 2], ['b', 5], [None, 2]])\nelif N == 4:\n    check('empty relations', solve([], []), [])\n    check('left facts without references', solve([[14, 'a', None, 8, None, None], [24, 'a', 0, 3, 0, 14], [34, 'a', 2, 1, 1, 24], [44, 'a', 2, 2, 2, 904], [54, 'a', -1, 4, -1, 34], [64, 'a', 3, 1, 1, 44], [74, 'b', -2, 2, 0, 14], [84, 'b', 2, 8, 1, 24], [94, 'b', None, 4, None, None], [104, None, None, 0, 1, 904], [114, None, 0, 5, 0, 14], [124, None, None, 7, None, 24], [134, 'c', None, 6, None, 34], [144, 'd', -1, 1, 0, 44], [154, 'A', 2, 2, 1, 54], [164, ' a ', 2, 8, 1, None], [174, '', None, 2, 0, None], [184, 'a', 2, 8, 1, 14], [194, 'd', 1, 3, 0, 44], [204, 'd', -1, 0, -1, 24]], []), [[' a ', 2], ['A', 2], ['a', 8]])\n    check('references without candidates', solve([], [[14, 'a', None, 0, 1, None], [24, 'a', 2, 2, 0, None], [34, 'a', 2, 3, 2, None], [44, 'a', 3, 4, None, None], [54, 'b', -2, 2, 1, None], [64, 'b', 0, 8, -1, None], [74, None, None, 2, 1, None], [84, None, 0, 5, None, None], [94, 'z', 3, 2, 0, None], [104, 'z', 3, 2, 1, None], [114, 'A', 2, 1, 1, None], [124, 'c', None, 2, 0, None]]), [])\n    check('mixed nullable groups duplicates ties and truth flags', solve([[14, 'a', None, 8, None, None], [24, 'a', 0, 3, 0, 14], [34, 'a', 2, 1, 1, 24], [44, 'a', 2, 2, 2, 904], [54, 'a', -1, 4, -1, 34], [64, 'a', 3, 1, 1, 44], [74, 'b', -2, 2, 0, 14], [84, 'b', 2, 8, 1, 24], [94, 'b', None, 4, None, None], [104, None, None, 0, 1, 904], [114, None, 0, 5, 0, 14], [124, None, None, 7, None, 24], [134, 'c', None, 6, None, 34], [144, 'd', -1, 1, 0, 44], [154, 'A', 2, 2, 1, 54], [164, ' a ', 2, 8, 1, None], [174, '', None, 2, 0, None], [184, 'a', 2, 8, 1, 14], [194, 'd', 1, 3, 0, 44], [204, 'd', -1, 0, -1, 24]], [[14, 'a', None, 0, 1, None], [24, 'a', 2, 2, 0, None], [34, 'a', 2, 3, 2, None], [44, 'a', 3, 4, None, None], [54, 'b', -2, 2, 1, None], [64, 'b', 0, 8, -1, None], [74, None, None, 2, 1, None], [84, None, 0, 5, None, None], [94, 'z', 3, 2, 0, None], [104, 'z', 3, 2, 1, None], [114, 'A', 2, 1, 1, None], [124, 'c', None, 2, 0, None]]), [[' a ', 2], ['A', 2], ['a', 8]])\n    check('unknown-only group with duplicate nullable index keys', solve([[14, None, None, 3, None, None], [24, None, None, 4, None, None], [34, 'x', None, 5, None, None]], [[14, None, None, 2, None, None]]), [])\n    check('single known zero and matching reference', solve([[14, 'a', 0, 9, 0, 14]], [[14, 'a', 0, 3, 1, None]]), [])\n    check('negative-only group and missing measurement', solve([[14, 'n', -2, 4, -1, 14], [24, 'n', None, 2, 0, 24], [34, 'n', -1, 0, 2, None]], [[14, 'n', -2, 1, 1, None]]), [])\n    check('positive-only group with repeated measurements and NULL', solve([[14, 'p', 2, 1, 1, 14], [24, 'p', 2, 2, 1, 14], [34, 'p', 3, 0, 1, 14], [44, 'p', None, 1, 0, None]], [[14, 'p', 2, 1, 1, None], [24, 'p', 2, 1, 1, None]]), [['p', 7]])\n    check('adversarial key cardinality and NULL placement witness 9', solve([[14, None, -2, 1, 0, 14], [24, 'b', None, 2, 1, 194], [34, None, 2, 7, 2, 194], [44, 'A', 3, 3, -1, 34], [54, ' a ', None, 7, 2, 14], [64, '', 1, 7, 2, None], [74, None, 2, 0, 2, 24], [84, 'A', None, 3, -1, 24], [94, 'a', 2, 7, 2, 194], [104, 'b', 3, 2, 0, None], [114, 'c', None, 3, 2, None], [124, 'A', 5, 2, None, None], [134, ' a ', 0, 1, 1, 24], [144, 'b', 2, 7, 2, None]], [[14, ' a ', -1, 1, 0, 34], [24, 'a', 5, 0, 0, None], [34, 'c', -3, 0, 1, 194], [44, ' a ', 2, 7, 1, None], [54, 'b', None, 7, -1, 14], [64, '', 2, 0, None, 34], [74, 'b', -3, 3, 1, None], [84, 'a', 0, 1, None, 194], [94, 'a', 5, 0, None, 14], [104, '', None, 3, 0, 194]]), [['', 1], ['A', 8], ['a', 2], ['b', 5], [None, 2]])\nelif N == 5:\n    check('empty relations', solve([], []), [])\n    check('left facts without references', solve([[15, 'a', None, 8, None, None], [25, 'a', 0, 3, 0, 15], [35, 'a', 2, 1, 1, 25], [45, 'a', 2, 2, 2, 905], [55, 'a', -1, 4, -1, 35], [65, 'a', 3, 1, 1, 45], [75, 'b', -2, 2, 0, 15], [85, 'b', 2, 8, 1, 25], [95, 'b', None, 4, None, None], [105, None, None, 0, 1, 905], [115, None, 0, 5, 0, 15], [125, None, None, 7, None, 25], [135, 'c', None, 6, None, 35], [145, 'd', -1, 1, 0, 45], [155, 'A', 2, 2, 1, 55], [165, ' a ', 2, 8, 1, None], [175, '', None, 2, 0, None], [185, 'a', 2, 8, 1, 15], [195, 'd', 1, 3, 0, 45], [205, 'd', -1, 0, -1, 25]], []), [[' a ', 2], ['A', 2], ['a', 8]])\n    check('references without candidates', solve([], [[15, 'a', None, 0, 1, None], [25, 'a', 2, 2, 0, None], [35, 'a', 2, 3, 2, None], [45, 'a', 3, 4, None, None], [55, 'b', -2, 2, 1, None], [65, 'b', 0, 8, -1, None], [75, None, None, 2, 1, None], [85, None, 0, 5, None, None], [95, 'z', 3, 2, 0, None], [105, 'z', 3, 2, 1, None], [115, 'A', 2, 1, 1, None], [125, 'c', None, 2, 0, None]]), [])\n    check('mixed nullable groups duplicates ties and truth flags', solve([[15, 'a', None, 8, None, None], [25, 'a', 0, 3, 0, 15], [35, 'a', 2, 1, 1, 25], [45, 'a', 2, 2, 2, 905], [55, 'a', -1, 4, -1, 35], [65, 'a', 3, 1, 1, 45], [75, 'b', -2, 2, 0, 15], [85, 'b', 2, 8, 1, 25], [95, 'b', None, 4, None, None], [105, None, None, 0, 1, 905], [115, None, 0, 5, 0, 15], [125, None, None, 7, None, 25], [135, 'c', None, 6, None, 35], [145, 'd', -1, 1, 0, 45], [155, 'A', 2, 2, 1, 55], [165, ' a ', 2, 8, 1, None], [175, '', None, 2, 0, None], [185, 'a', 2, 8, 1, 15], [195, 'd', 1, 3, 0, 45], [205, 'd', -1, 0, -1, 25]], [[15, 'a', None, 0, 1, None], [25, 'a', 2, 2, 0, None], [35, 'a', 2, 3, 2, None], [45, 'a', 3, 4, None, None], [55, 'b', -2, 2, 1, None], [65, 'b', 0, 8, -1, None], [75, None, None, 2, 1, None], [85, None, 0, 5, None, None], [95, 'z', 3, 2, 0, None], [105, 'z', 3, 2, 1, None], [115, 'A', 2, 1, 1, None], [125, 'c', None, 2, 0, None]]), [[' a ', 2], ['A', 2], ['a', 8]])\n    check('unknown-only group with duplicate nullable index keys', solve([[15, None, None, 3, None, None], [25, None, None, 4, None, None], [35, 'x', None, 5, None, None]], [[15, None, None, 2, None, None]]), [])\n    check('single known zero and matching reference', solve([[15, 'a', 0, 9, 0, 15]], [[15, 'a', 0, 3, 1, None]]), [])\n    check('negative-only group and missing measurement', solve([[15, 'n', -2, 4, -1, 15], [25, 'n', None, 2, 0, 25], [35, 'n', -1, 0, 2, None]], [[15, 'n', -2, 1, 1, None]]), [])\n    check('positive-only group with repeated measurements and NULL', solve([[15, 'p', 2, 1, 1, 15], [25, 'p', 2, 2, 1, 15], [35, 'p', 3, 0, 1, 15], [45, 'p', None, 1, 0, None]], [[15, 'p', 2, 1, 1, None], [25, 'p', 2, 1, 1, None]]), [['p', 7]])\n    check('adversarial key cardinality and NULL placement witness 9', solve([[15, None, -2, 1, 0, 15], [25, 'b', None, 2, 1, 195], [35, None, 2, 7, 2, 195], [45, 'A', 3, 3, -1, 35], [55, ' a ', None, 7, 2, 15], [65, '', 1, 7, 2, None], [75, None, 2, 0, 2, 25], [85, 'A', None, 3, -1, 25], [95, 'a', 2, 7, 2, 195], [105, 'b', 3, 2, 0, None], [115, 'c', None, 3, 2, None], [125, 'A', 5, 2, None, None], [135, ' a ', 0, 1, 1, 25], [145, 'b', 2, 7, 2, None]], [[15, ' a ', -1, 1, 0, 35], [25, 'a', 5, 0, 0, None], [35, 'c', -3, 0, 1, 195], [45, ' a ', 2, 7, 1, None], [55, 'b', None, 7, -1, 15], [65, '', 2, 0, None, 35], [75, 'b', -3, 3, 1, None], [85, 'a', 0, 1, None, 195], [95, 'a', 5, 0, None, 15], [105, '', None, 3, 0, 195]]), [['', 1], ['A', 8], ['a', 2], ['b', 5], [None, 2]])\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":" 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":"xs-group-total-filter-all-positive","generated_at":"2026-09-29T14:37:10.552515+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Executes actual in-memory SQLite relational semantics. The fixtures exercise empty inputs, nullable groups, duplicate facts, known zero, negative values, peer ties and partition boundaries. This models the specified query contract, not optimizer performance, disk durability or a complete migration transaction.","repair":"Use the required relational semantics: Return key and sum for groups whose known measurements sum to a strictly positive total. Correct SQL: SELECT k,SUM(v) FROM a GROUP BY k HAVING SUM(v)>0","root_cause":"Requires every known measurement to be positive. The faulty SQL is: SELECT k,SUM(v) FROM a GROUP BY k HAVING MIN(v)>0","sha256":"0d4ce899f299051130aabb1a78c4a070aa06da3d0800ead2e2da2bb756d18621","title":"Group total filter: Requires every known measurement to be positive · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":39.438,"exit_code":1,"observations":[{"actual":[],"check":"empty relations","expected":[],"passed":true},{"actual":[[" a ",2],["A",2],["a",8]],"check":"left facts without references","expected":[[" a ",2],["A",2],["a",8]],"passed":true},{"actual":[],"check":"references without candidates","expected":[],"passed":true},{"actual":[[" a ",2],["A",2],["a",8]],"check":"mixed nullable groups duplicates ties and truth flags","expected":[[" a ",2],["A",2],["a",8]],"passed":true},{"actual":[],"check":"unknown-only group with duplicate nullable index keys","expected":[],"passed":true},{"actual":[],"check":"single known zero and matching reference","expected":[],"passed":true},{"actual":[],"check":"negative-only group and missing measurement","expected":[],"passed":true},{"actual":[["p",7]],"check":"positive-only group with repeated measurements and NULL","expected":[["p",7]],"passed":true},{"actual":[["",1],["A",8],["a",2],["b",5]],"check":"adversarial key cardinality and NULL placement witness 9","expected":[["",1],["A",8],["a",2],["b",5],[null,2]],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"empty relations\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"left facts without references\", \"actual\": [[\" a \", 2], [\"A\", 2], [\"a\", 8]], \"expected\": [[\" a \", 2], [\"A\", 2], [\"a\", 8]], \"passed\": true}, {\"check\": \"references without candidates\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"mixed nullable groups duplicates ties and truth flags\", \"actual\": [[\" a \", 2], [\"A\", 2], [\"a\", 8]], \"expected\": [[\" a \", 2], [\"A\", 2], [\"a\", 8]], \"passed\": true}, {\"check\": \"unknown-only group with duplicate nullable index keys\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"single known zero and matching reference\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"negative-only group and missing measurement\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"positive-only group with repeated measurements and NULL\", \"actual\": [[\"p\", 7]], \"expected\": [[\"p\", 7]], \"passed\": true}, {\"check\": \"adversarial key cardinality and NULL placement witness 9\", \"actual\": [[\"\", 1], [\"A\", 8], [\"a\", 2], [\"b\", 5]], \"expected\": [[\"\", 1], [\"A\", 8], [\"a\", 2], [\"b\", 5], [null, 2]], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.66,"exit_code":1,"observations":[{"actual":[],"check":"empty relations","expected":[],"passed":true},{"actual":[[" a ",2],["A",2]],"check":"left facts without references","expected":[[" a ",2],["A",2],["a",8]],"passed":false},{"actual":[],"check":"references without candidates","expected":[],"passed":true},{"actual":[[" a ",2],["A",2]],"check":"mixed nullable groups duplicates ties and truth flags","expected":[[" a ",2],["A",2],["a",8]],"passed":false},{"actual":[],"check":"unknown-only group with duplicate nullable index keys","expected":[],"passed":true},{"actual":[],"check":"single known zero and matching reference","expected":[],"passed":true},{"actual":[],"check":"negative-only group and missing measurement","expected":[],"passed":true},{"actual":[["p",7]],"check":"positive-only group with repeated measurements and NULL","expected":[["p",7]],"passed":true},{"actual":[["",1],["A",8],["a",2],["b",5]],"check":"adversarial key cardinality and NULL placement witness 9","expected":[["",1],["A",8],["a",2],["b",5],[null,2]],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"empty relations\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"left facts without references\", \"actual\": [[\" a \", 2], [\"A\", 2]], \"expected\": [[\" a \", 2], [\"A\", 2], [\"a\", 8]], \"passed\": false}, {\"check\": \"references without candidates\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"mixed nullable groups duplicates ties and truth flags\", \"actual\": [[\" a \", 2], [\"A\", 2]], \"expected\": [[\" a \", 2], [\"A\", 2], [\"a\", 8]], \"passed\": false}, {\"check\": \"unknown-only group with duplicate nullable index keys\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"single known zero and matching reference\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"negative-only group and missing measurement\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"positive-only group with repeated measurements and NULL\", \"actual\": [[\"p\", 7]], \"expected\": [[\"p\", 7]], \"passed\": true}, {\"check\": \"adversarial key cardinality and NULL placement witness 9\", \"actual\": [[\"\", 1], [\"A\", 8], [\"a\", 2], [\"b\", 5]], \"expected\": [[\"\", 1], [\"A\", 8], [\"a\", 2], [\"b\", 5], [null, 2]], \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":39.849,"exit_code":0,"observations":[{"actual":[],"check":"empty relations","expected":[],"passed":true},{"actual":[[" a ",2],["A",2],["a",8]],"check":"left facts without references","expected":[[" a ",2],["A",2],["a",8]],"passed":true},{"actual":[],"check":"references without candidates","expected":[],"passed":true},{"actual":[[" a ",2],["A",2],["a",8]],"check":"mixed nullable groups duplicates ties and truth flags","expected":[[" a ",2],["A",2],["a",8]],"passed":true},{"actual":[],"check":"unknown-only group with duplicate nullable index keys","expected":[],"passed":true},{"actual":[],"check":"single known zero and matching reference","expected":[],"passed":true},{"actual":[],"check":"negative-only group and missing measurement","expected":[],"passed":true},{"actual":[["p",7]],"check":"positive-only group with repeated measurements and NULL","expected":[["p",7]],"passed":true},{"actual":[["",1],["A",8],["a",2],["b",5],[null,2]],"check":"adversarial key cardinality and NULL placement witness 9","expected":[["",1],["A",8],["a",2],["b",5],[null,2]],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"empty relations\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"left facts without references\", \"actual\": [[\" a \", 2], [\"A\", 2], [\"a\", 8]], \"expected\": [[\" a \", 2], [\"A\", 2], [\"a\", 8]], \"passed\": true}, {\"check\": \"references without candidates\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"mixed nullable groups duplicates ties and truth flags\", \"actual\": [[\" a \", 2], [\"A\", 2], [\"a\", 8]], \"expected\": [[\" a \", 2], [\"A\", 2], [\"a\", 8]], \"passed\": true}, {\"check\": \"unknown-only group with duplicate nullable index keys\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"single known zero and matching reference\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"negative-only group and missing measurement\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"positive-only group with repeated measurements and NULL\", \"actual\": [[\"p\", 7]], \"expected\": [[\"p\", 7]], \"passed\": true}, {\"check\": \"adversarial key cardinality and NULL placement witness 9\", \"actual\": [[\"\", 1], [\"A\", 8], [\"a\", 2], [\"b\", 5], [null, 2]], \"expected\": [[\"\", 1], [\"A\", 8], [\"a\", 2], [\"b\", 5], [null, 2]], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}