import json

with open(r'C:\allgifted\mathapi11v2\_work_barmodels\chunk_prod_image.json', 'r', encoding='utf-8') as f:
    chunk = json.load(f)

# DB data from mysql query (tab-separated)
db_raw = """50	2	1	NULL	NULL	NULL	1
51	2	6	NULL	NULL	NULL	6
52	2	5	NULL	NULL	NULL	5
53	2	4	NULL	NULL	NULL	4
54	2	1	NULL	NULL	NULL	1
55	2	3	NULL	NULL	NULL	3
56	2	6	NULL	NULL	NULL	6
57	2	4	NULL	NULL	NULL	4
58	2	1	NULL	NULL	NULL	1
59	2	3	NULL	NULL	NULL	3
60	1	1, 3, 4	4, 3,1	2, 1, 4	2, 3, 4	0
61	1	4, 2, 8	2, 5, 8	3, 5, 8	3, 4, 8	2
62	1	8, 9, 1	9, 1, 8	9, 8, 1	8, 1, 9	3
63	1	7, 8, 1	1, 7, 8	8, 7, 1	1, 8, 7	1
64	1	5, 5, 11	5, 10, 5	10, 5, 5	5, 5, 10	3
65	1	3, 1, 1, 6	6, 2, 1, 3	2, 1, 3, 6	2, 1, 6, 3	2
66	1	2, 2, 3, 9	2, 4, 5, 9	9, 3, 4, 2	2, 3, 4, 9	3
68	1	5, 4, 1, 10	2, 2, 2, 10	2, 4, 3, 10	2, 4, 5, 10	0
69	1	1, 1, 1, 4	2, 1, 1, 4	1, 1, 1, 3	1, 2, 1, 3	1
75	2	3	NULL	NULL	NULL	3
76	2	3	NULL	NULL	NULL	3
77	2	1	NULL	NULL	NULL	1
78	2	3	NULL	NULL	NULL	3
79	2	5	NULL	NULL	NULL	5
80	2	2	NULL	NULL	NULL	2
84	1	1, 2, 8	1, 2, 9	1, 3, 6	NULL	2
85	2	4	NULL	NULL	NULL	4
86	1	4, 1	3, 1	2, 1	1, 2	2
88	2	4	NULL	NULL	NULL	4
91	2	6	NULL	NULL	NULL	6
92	1	3  +  3  =  6	3 x 3  =  6	3  +  3  =  7	None of the above	0
93	1	10 - 3  =  6	10  +  3  =  13	10 - 3  =  7	None of the above	2
95	1	4	8	10	12	2
96	1	2	7	4	5	3
97	1	5	4	7	8	2
125	1	8 - 2  =  6	6 - 8  =  2	2 - 6  =  8	6 - 2  =  8	0
126	1	8  +  9  =  1	8  +  1  =  9	9  +  8  =  1	9  +  1  = 8	1
127	1	4 - 5  =  9	9 - 1  =  8	5 - 4  =  9	9 - 5  =  4	3
130	2	5	NULL	NULL	NULL	5
131	2	4	NULL	NULL	NULL	4
132	2	2	NULL	NULL	NULL	2
139	1	circle	rectangle	triangle	diamond	0
140	1	circle	rectangle	triangle	diamond	1
141	1	circle	square/rectangle	triangle	diamond	2
142	1	circle	square	triangle	diamond	1
143	1	circle	rectangle	triangle	diamond	2
144	1	circle	square	triangle	diamond	1
145	1	circle	rectangle	triangle	diamond	1
146	1	circle	square	triangle	diamond	2
147	1	circle	rectangle	triangle	diamond	1
148	1	circle	square	triangle	diamond	2
149	1	circle	square/rectangle	triangle	diamond	2
150	1	circle	rectangle	triangle	diamond	1
151	1	circle	rectangle	triangle	diamond	1
152	1	circle	square	triangle	diamond	0
154	2	2	NULL	NULL	NULL	2
155	2	3	NULL	NULL	NULL	3
156	2	2	NULL	NULL	NULL	2
157	2	2	NULL	NULL	NULL	2
158	1	triangle, rectangle, square	triangle, circle, diamond	triangle, rectangle, oval	NULL	0
159	1	NULL	NULL	NULL	NULL	1
160	1	NULL	NULL	NULL	NULL	0
161	1	NULL	NULL	NULL	NULL	1
162	1	NULL	NULL	NULL	NULL	0"""

db_data = {}
for line in db_raw.strip().split('\n'):
    parts = line.split('\t')
    qid = int(parts[0])
    ca = int(parts[-1])
    db_data[qid] = ca

# Compare with chunk
discrepancies = []
for i in range(64):
    entry = chunk[i]
    qid = entry['id']
    chunk_ci = entry['correct_index']
    db_ca = db_data.get(qid)
    if db_ca is not None and chunk_ci != db_ca:
        # For type 2 FIB, correct_index is the actual answer value, not an index
        if entry['type'] == 2:
            # FIB: chunk correct_index equals answer value, DB correct_answer also equals answer value
            # So they should match
            pass
        discrepancies.append(f"[{i}] id={qid}: chunk correct_index={chunk_ci}, DB correct_answer={db_ca}")

if discrepancies:
    print('DISCREPANCIES found:')
    for d in discrepancies:
        print(d)
else:
    print('All correct_index values match local DB')
    print(f'Verified {len(db_data)} entries')
