# -*- coding: utf-8 -*-
"""只操作本程序创建的临时对象；全部数据为合成样本。"""
import os, sys, json, sqlite3, tempfile, pathlib, subprocess, time, socket, stat
from pathlib import Path
def emit(**kw):
    print(json.dumps(kw, ensure_ascii=False, sort_keys=True))
assert sqlite3.sqlite_version_info >= (3,37,0), 'STRICT要求SQLite 3.37+'
c=sqlite3.connect(':memory:'); c.execute('CREATE TABLE loose(n INTEGER)'); c.execute('CREATE TABLE strict_usage(n INTEGER NOT NULL CHECK(n>=0)) STRICT')
out=[]
for value in [0,'12','unknown',None,-1]:
    c.execute('INSERT INTO loose VALUES(?)',(value,)); loose=c.execute('SELECT n,typeof(n) FROM loose ORDER BY rowid DESC LIMIT 1').fetchone()
    try:
        c.execute('INSERT INTO strict_usage VALUES(?)',(value,)); result=c.execute('SELECT n,typeof(n) FROM strict_usage ORDER BY rowid DESC LIMIT 1').fetchone()
    except sqlite3.IntegrityError: result='rejected'
    out.append({'input':value,'loose':loose,'strict':result})
assert out[1]['strict']==(12,'integer') and all(x['strict']=='rejected' for x in out[2:])
emit(sqlite_version=sqlite3.sqlite_version,values=out,strict_accepted=2)
