check_note.py -- exact checks for the note on OWR-13677-003 (d = 2)

(A) D_1(Pi, B_N) = 1/(3N), N = 1..12
OK    N= 1  D_1(Pi,B_N) = 1/3  (1/(3N) = 1/3)  ||H-P_N H||_1 = 0
OK    N= 2  D_1(Pi,B_N) = 1/6  (1/(3N) = 1/6)  ||H-P_N H||_1 = 0
OK    N= 3  D_1(Pi,B_N) = 1/9  (1/(3N) = 1/9)  ||H-P_N H||_1 = 0
OK    N= 4  D_1(Pi,B_N) = 1/12  (1/(3N) = 1/12)  ||H-P_N H||_1 = 0
OK    N= 5  D_1(Pi,B_N) = 1/15  (1/(3N) = 1/15)  ||H-P_N H||_1 = 0
OK    N= 6  D_1(Pi,B_N) = 1/18  (1/(3N) = 1/18)  ||H-P_N H||_1 = 0
OK    N= 7  D_1(Pi,B_N) = 1/21  (1/(3N) = 1/21)  ||H-P_N H||_1 = 0
OK    N= 8  D_1(Pi,B_N) = 1/24  (1/(3N) = 1/24)  ||H-P_N H||_1 = 0
OK    N= 9  D_1(Pi,B_N) = 1/27  (1/(3N) = 1/27)  ||H-P_N H||_1 = 0
OK    N=10  D_1(Pi,B_N) = 1/30  (1/(3N) = 1/30)  ||H-P_N H||_1 = 0
OK    N=11  D_1(Pi,B_N) = 1/33  (1/(3N) = 1/33)  ||H-P_N H||_1 = 0
OK    N=12  D_1(Pi,B_N) = 1/36  (1/(3N) = 1/36)  ||H-P_N H||_1 = 0

(B) random rational checkerboards A: margins, cell estimate, identity, bounds of Lemma 3.3(c)
OK    M=2 N=1  D_1(A,B_N)=0.166667  ||H_A-P_N H_A||=0.250000  ||P_N H_A-H_BN||=1/3  margins_uniform=True
OK    M=2 N=2  D_1(A,B_N)=0.166667  ||H_A-P_N H_A||=0.000000  ||P_N H_A-H_BN||=1/6  margins_uniform=True
OK    M=2 N=3  D_1(A,B_N)=0.185185  ||H_A-P_N H_A||=0.083333  ||P_N H_A-H_BN||=1/9  margins_uniform=True
OK    M=2 N=3  D_1(A,B_N)=0.136178  ||H_A-P_N H_A||=0.032051  ||P_N H_A-H_BN||=1/9  margins_uniform=True
OK    M=2 N=5  D_1(A,B_N)=0.113333  ||H_A-P_N H_A||=0.050000  ||P_N H_A-H_BN||=1/15  margins_uniform=True
OK    M=2 N=6  D_1(A,B_N)=0.055556  ||H_A-P_N H_A||=0.000000  ||P_N H_A-H_BN||=1/18  margins_uniform=True
OK    M=2 N=7  D_1(A,B_N)=0.081633  ||H_A-P_N H_A||=0.035714  ||P_N H_A-H_BN||=1/21  margins_uniform=True
OK    M=2 N=7  D_1(A,B_N)=0.053930  ||H_A-P_N H_A||=0.016234  ||P_N H_A-H_BN||=1/21  margins_uniform=True
OK    M=2 N=8  D_1(A,B_N)=0.041667  ||H_A-P_N H_A||=0.000000  ||P_N H_A-H_BN||=1/24  margins_uniform=True
OK    M=2 N=9  D_1(A,B_N)=0.057842  ||H_A-P_N H_A||=0.027778  ||P_N H_A-H_BN||=1/27  margins_uniform=True
OK    M=3 N=1  D_1(A,B_N)=0.351111  ||H_A-P_N H_A||=0.044444  ||P_N H_A-H_BN||=1/3  margins_uniform=True
OK    M=3 N=2  D_1(A,B_N)=0.255956  ||H_A-P_N H_A||=0.130952  ||P_N H_A-H_BN||=1/6  margins_uniform=True
OK    M=3 N=2  D_1(A,B_N)=0.226687  ||H_A-P_N H_A||=0.090535  ||P_N H_A-H_BN||=1/6  margins_uniform=True
OK    M=3 N=3  D_1(A,B_N)=0.111111  ||H_A-P_N H_A||=0.000000  ||P_N H_A-H_BN||=1/9  margins_uniform=True
OK    M=3 N=4  D_1(A,B_N)=0.145440  ||H_A-P_N H_A||=0.090909  ||P_N H_A-H_BN||=1/12  margins_uniform=True
OK    M=3 N=5  D_1(A,B_N)=0.104234  ||H_A-P_N H_A||=0.059259  ||P_N H_A-H_BN||=1/15  margins_uniform=True
OK    M=3 N=7  D_1(A,B_N)=0.071557  ||H_A-P_N H_A||=0.027847  ||P_N H_A-H_BN||=1/21  margins_uniform=True
OK    M=3 N=9  D_1(A,B_N)=0.037037  ||H_A-P_N H_A||=0.000000  ||P_N H_A-H_BN||=1/27  margins_uniform=True
OK    M=3 N=9  D_1(A,B_N)=0.037037  ||H_A-P_N H_A||=0.000000  ||P_N H_A-H_BN||=1/27  margins_uniform=True
OK    M=4 N=2  D_1(A,B_N)=0.260417  ||H_A-P_N H_A||=0.250000  ||P_N H_A-H_BN||=1/6  margins_uniform=True
OK    M=4 N=4  D_1(A,B_N)=0.083333  ||H_A-P_N H_A||=0.000000  ||P_N H_A-H_BN||=1/12  margins_uniform=True
OK    M=4 N=4  D_1(A,B_N)=0.083333  ||H_A-P_N H_A||=0.000000  ||P_N H_A-H_BN||=1/12  margins_uniform=True
OK    M=4 N=5  D_1(A,B_N)=0.115206  ||H_A-P_N H_A||=0.063000  ||P_N H_A-H_BN||=1/15  margins_uniform=True
OK    M=4 N=6  D_1(A,B_N)=0.088461  ||H_A-P_N H_A||=0.053333  ||P_N H_A-H_BN||=1/18  margins_uniform=True
OK    M=4 N=7  D_1(A,B_N)=0.098753  ||H_A-P_N H_A||=0.062500  ||P_N H_A-H_BN||=1/21  margins_uniform=True
OK    M=4 N=10  D_1(A,B_N)=0.067256  ||H_A-P_N H_A||=0.040385  ||P_N H_A-H_BN||=1/30  margins_uniform=True
OK    M=4 N=10  D_1(A,B_N)=0.066288  ||H_A-P_N H_A||=0.036250  ||P_N H_A-H_BN||=1/30  margins_uniform=True
OK    M=5 N=1  D_1(A,B_N)=0.402105  ||H_A-P_N H_A||=0.182960  ||P_N H_A-H_BN||=1/3  margins_uniform=True
OK    M=5 N=2  D_1(A,B_N)=0.345293  ||H_A-P_N H_A||=0.277333  ||P_N H_A-H_BN||=1/6  margins_uniform=True
OK    M=5 N=3  D_1(A,B_N)=0.274781  ||H_A-P_N H_A||=0.243333  ||P_N H_A-H_BN||=1/9  margins_uniform=True
OK    M=5 N=6  D_1(A,B_N)=0.148922  ||H_A-P_N H_A||=0.118061  ||P_N H_A-H_BN||=1/18  margins_uniform=True
OK    M=5 N=7  D_1(A,B_N)=0.082052  ||H_A-P_N H_A||=0.058782  ||P_N H_A-H_BN||=1/21  margins_uniform=True
OK    M=5 N=8  D_1(A,B_N)=0.066580  ||H_A-P_N H_A||=0.041549  ||P_N H_A-H_BN||=1/24  margins_uniform=True
OK    M=5 N=8  D_1(A,B_N)=0.098761  ||H_A-P_N H_A||=0.068972  ||P_N H_A-H_BN||=1/24  margins_uniform=True
OK    M=5 N=9  D_1(A,B_N)=0.103283  ||H_A-P_N H_A||=0.077657  ||P_N H_A-H_BN||=1/27  margins_uniform=True
OK    M=5 N=10  D_1(A,B_N)=0.033333  ||H_A-P_N H_A||=0.000000  ||P_N H_A-H_BN||=1/30  margins_uniform=True
OK    M=6 N=1  D_1(A,B_N)=0.386574  ||H_A-P_N H_A||=0.226543  ||P_N H_A-H_BN||=1/3  margins_uniform=True
OK    M=6 N=2  D_1(A,B_N)=0.155568  ||H_A-P_N H_A||=0.128067  ||P_N H_A-H_BN||=1/6  margins_uniform=True
OK    M=6 N=4  D_1(A,B_N)=0.138289  ||H_A-P_N H_A||=0.104701  ||P_N H_A-H_BN||=1/12  margins_uniform=True
OK    M=6 N=7  D_1(A,B_N)=0.115711  ||H_A-P_N H_A||=0.091270  ||P_N H_A-H_BN||=1/21  margins_uniform=True
OK    M=6 N=8  D_1(A,B_N)=0.122160  ||H_A-P_N H_A||=0.101852  ||P_N H_A-H_BN||=1/24  margins_uniform=True
OK    M=6 N=9  D_1(A,B_N)=0.055539  ||H_A-P_N H_A||=0.025802  ||P_N H_A-H_BN||=1/27  margins_uniform=True
OK    M=6 N=9  D_1(A,B_N)=0.072409  ||H_A-P_N H_A||=0.044827  ||P_N H_A-H_BN||=1/27  margins_uniform=True
OK    M=6 N=10  D_1(A,B_N)=0.045254  ||H_A-P_N H_A||=0.020864  ||P_N H_A-H_BN||=1/30  margins_uniform=True
OK    M=7 N=2  D_1(A,B_N)=0.316589  ||H_A-P_N H_A||=0.256004  ||P_N H_A-H_BN||=1/6  margins_uniform=True
OK    M=7 N=3  D_1(A,B_N)=0.210835  ||H_A-P_N H_A||=0.163945  ||P_N H_A-H_BN||=1/9  margins_uniform=True
OK    M=7 N=4  D_1(A,B_N)=0.096034  ||H_A-P_N H_A||=0.065864  ||P_N H_A-H_BN||=1/12  margins_uniform=True
OK    M=7 N=5  D_1(A,B_N)=0.202382  ||H_A-P_N H_A||=0.175802  ||P_N H_A-H_BN||=1/15  margins_uniform=True
OK    M=7 N=6  D_1(A,B_N)=0.115542  ||H_A-P_N H_A||=0.084679  ||P_N H_A-H_BN||=1/18  margins_uniform=True
OK    M=7 N=8  D_1(A,B_N)=0.083160  ||H_A-P_N H_A||=0.054952  ||P_N H_A-H_BN||=1/24  margins_uniform=True
OK    M=7 N=9  D_1(A,B_N)=0.097600  ||H_A-P_N H_A||=0.073295  ||P_N H_A-H_BN||=1/27  margins_uniform=True
OK    M=7 N=10  D_1(A,B_N)=0.058555  ||H_A-P_N H_A||=0.034017  ||P_N H_A-H_BN||=1/30  margins_uniform=True
OK    M=8 N=1  D_1(A,B_N)=0.353365  ||H_A-P_N H_A||=0.182926  ||P_N H_A-H_BN||=1/3  margins_uniform=True
OK    M=8 N=3  D_1(A,B_N)=0.271204  ||H_A-P_N H_A||=0.227455  ||P_N H_A-H_BN||=1/9  margins_uniform=True
OK    M=8 N=4  D_1(A,B_N)=0.107427  ||H_A-P_N H_A||=0.080357  ||P_N H_A-H_BN||=1/12  margins_uniform=True
OK    M=8 N=5  D_1(A,B_N)=0.210128  ||H_A-P_N H_A||=0.196510  ||P_N H_A-H_BN||=1/15  margins_uniform=True
OK    M=8 N=5  D_1(A,B_N)=0.160187  ||H_A-P_N H_A||=0.138862  ||P_N H_A-H_BN||=1/15  margins_uniform=True
OK    M=8 N=7  D_1(A,B_N)=0.096240  ||H_A-P_N H_A||=0.074326  ||P_N H_A-H_BN||=1/21  margins_uniform=True
      largest ratio D_1(A,B_N) / (||H_A-P_N H_A||_1 + 1/N) over these cases: 0.5471

(C) Lemma 3.1 (d = 2): d_inf(A,A')^2 <= 8 D_1(A,A') for random checkerboard pairs
OK    90 pairs (2 with A = A'); largest d_inf^2 / D_1 = 0.5000 (Lemma 3.1: <= 8)

(D) kernel of B_N: B_N(x,y) from the cell diagonals equals int_0^x H_{B_N}(t,y) dt
OK    125 random rational points and the margins B_N(x,1) = x, B_N(1,y) = y

(E) B_N(Pi) equals the uniform mixture of the N circular shifts x -> x + c/N mod 1
OK    N = 1..8, copula functions equal on the 2N-grid and at 20 random rational points each

(F) deliberately wrong inputs must be detected
OK    B_N from transposed masses: ||P_N H_A - H_BN||_1 = 524061566061499/2934805480992000 differs from 1/(3N) = 1/15
OK    D_1(Pi, B_4) = 1/12 is not the wrong value 1/(2N) = 1/8

TOTAL failures: 0
ALL CHECKS PASSED
