"""Offline teaching example. No network, files, AI model or production gate."""
import unittest

def validate(row):
    errors=[]
    if not isinstance(row,dict):return ['object_required']
    if set(row)!={'status','count','total','source_id'}:errors.append('fields')
    status=row.get('status');count=row.get('count');total=row.get('total')
    if status not in ('measured','unknown'):errors.append('status')
    if type(total) is not int or total<0:errors.append('total')
    if status=='unknown':
        if count is not None:errors.append('unknown_requires_null')
    elif status=='measured':
        if type(count) is not int or count<0:errors.append('count')
        elif type(total) is int and count>total:errors.append('count_exceeds_total')
    if not isinstance(row.get('source_id'),str) or not row['source_id'].strip():errors.append('source_required')
    return errors

class Checks(unittest.TestCase):
    def row(self,**changes):
        r=dict(status='measured',count=0,total=10,source_id='demo-source');r.update(changes);return r
    def test_zero(self):self.assertEqual(validate(self.row()),[])
    def test_unknown(self):self.assertEqual(validate(self.row(status='unknown',count=None)),[])
    def test_fake_zero(self):self.assertIn('unknown_requires_null',validate(self.row(status='unknown')))
    def test_over_total(self):self.assertIn('count_exceeds_total',validate(self.row(count=11)))
    def test_boolean(self):self.assertIn('count',validate(self.row(count=True)))
    def test_missing_source(self):self.assertIn('source_required',validate(self.row(source_id='')))
    def test_plausible_falsehood_passes(self):self.assertEqual(validate(self.row(count=7,source_id='invented-source')),[])

if __name__=='__main__':unittest.main(verbosity=2)
