
=== TEST 1: turnover number with an unmeasured active fraction ===
  active fraction -> apparent turnover number (true kcat = 25.0 /s)
   f=0.05  kcat_app=  1.250  app/true=0.050  need x20.00  understated  95.0%
   f=0.10  kcat_app=  2.500  app/true=0.100  need x10.00  understated  90.0%
   f=0.15  kcat_app=  3.750  app/true=0.150  need x6.67  understated  85.0%
   f=0.20  kcat_app=  5.000  app/true=0.200  need x5.00  understated  80.0%
   f=0.30  kcat_app=  7.500  app/true=0.300  need x3.33  understated  70.0%
   f=0.40  kcat_app= 10.000  app/true=0.400  need x2.50  understated  60.0%
   f=0.50  kcat_app= 12.500  app/true=0.500  need x2.00  understated  50.0%
   f=0.70  kcat_app= 17.500  app/true=0.700  need x1.43  understated  30.0%
   f=0.85  kcat_app= 21.250  app/true=0.850  need x1.18  understated  15.0%
   f=1.00  kcat_app= 25.000  app/true=1.000  need x1.00  understated   0.0%
  elasticity d ln k_app / d ln f: min 1.00000000 max 1.00000000 (analytic: exactly 1)
  ranking reversal: true kcat A/B = 1.500, fB = 0.85, flip at fA = 0.5667
   fA=0.200  kA_app=  24.00  kB_app=  68.00  A/B= 0.353  B faster
   fA=0.350  kA_app=  42.00  kB_app=  68.00  A/B= 0.618  B faster
   fA=0.500  kA_app=  60.00  kB_app=  68.00  A/B= 0.882  B faster
   fA=0.550  kA_app=  66.00  kB_app=  68.00  A/B= 0.971  B faster
   fA=0.667  kA_app=  80.00  kB_app=  68.00  A/B= 1.176  A faster
   fA=0.700  kA_app=  84.00  kB_app=  68.00  A/B= 1.235  A faster
   fA=0.800  kA_app=  96.00  kB_app=  68.00  A/B= 1.412  A faster
   fA=0.900  kA_app= 108.00  kB_app=  68.00  A/B= 1.588  A faster
  Beta(4,4): mean f = 0.5000  sd f = 0.1667  CV f = 0.3333
  MC 12 preps x 20000 trials: mean within-experiment CV of reported kcat = 0.3307
  per-trial identity max|CV(k f) - CV(f)| = 3.331e-16 (exact: scaling cannot change CV)
  mean CV over trials / population CV = 0.9921 (finite-sample bias of a sample CV at n=12)
  P(reported ranking reverses), both preparations f ~ Beta(4,4):
   true ratio 1.1x  ->  P(reverse) = 0.4220
   true ratio 1.2x  ->  P(reverse) = 0.3549
   true ratio 1.5x  ->  P(reverse) = 0.2135
   true ratio 2.0x  ->  P(reverse) = 0.0949
   true ratio 3.0x  ->  P(reverse) = 0.0257
   true ratio 5.0x  ->  P(reverse) = 0.0049
  systematic error tau in stoichiometry: reported kcat = kcat_true / tau
   tau=0.70  f_meas=0.2450  reported kcat= 35.714  error  +42.9%
   tau=0.80  f_meas=0.2800  reported kcat= 31.250  error  +25.0%
   tau=0.90  f_meas=0.3150  reported kcat= 27.778  error  +11.1%
   tau=1.00  f_meas=0.3500  reported kcat= 25.000  error   +0.0%
   tau=1.10  f_meas=0.3850  reported kcat= 22.727  error   -9.1%
   tau=1.20  f_meas=0.4200  reported kcat= 20.833  error  -16.7%
   tau=1.30  f_meas=0.4550  reported kcat= 19.231  error  -23.1%

=== TEST 2: cell-to-cell variability and power at fixed n ===
  2-fold effect, log-scale pooled t-test, alpha=0.05, 4000 sims/cell, tech CV=0.10
   CV=0.05  n= 3:1.000  n= 5:1.000  n=10:1.000  n=20:1.000  n=40:1.000
   CV=0.15  n= 3:0.931  n= 5:1.000  n=10:1.000  n=20:1.000  n=40:1.000
   CV=0.30  n= 3:0.540  n= 5:0.872  n=10:0.998  n=20:1.000  n=40:1.000
   CV=0.50  n= 3:0.268  n= 5:0.507  n=10:0.859  n=20:0.995  n=40:1.000
   CV=0.80  n= 3:0.158  n= 5:0.284  n=10:0.552  n=20:0.853  n=40:0.989
   CV=1.20  n= 3:0.103  n= 5:0.182  n=10:0.350  n=20:0.625  n=40:0.896
   CV=1.60  n= 3:0.093  n= 5:0.135  n=10:0.263  n=20:0.477  n=40:0.770
  same data analysed on the linear scale:
   CV=0.05  n= 3:0.999  n= 5:1.000  n=10:1.000  n=20:1.000  n=40:1.000
   CV=0.15  n= 3:0.906  n= 5:1.000  n=10:1.000  n=20:1.000  n=40:1.000
   CV=0.30  n= 3:0.493  n= 5:0.841  n=10:0.997  n=20:1.000  n=40:1.000
   CV=0.50  n= 3:0.220  n= 5:0.428  n=10:0.808  n=20:0.985  n=40:1.000
   CV=0.80  n= 3:0.106  n= 5:0.191  n=10:0.427  n=20:0.771  n=40:0.965
   CV=1.20  n= 3:0.066  n= 5:0.108  n=10:0.232  n=20:0.446  n=40:0.749
   CV=1.60  n= 3:0.056  n= 5:0.071  n=10:0.139  n=20:0.295  n=40:0.538
   CV=0.05  n for 80% power: tech=0.00:3  tech=0.10:3  tech=0.25:4
   CV=0.15  n for 80% power: tech=0.00:3  tech=0.10:3  tech=0.25:4
   CV=0.30  n for 80% power: tech=0.00:5  tech=0.10:5  tech=0.25:6
   CV=0.50  n for 80% power: tech=0.00:9  tech=0.10:9  tech=0.25:10
   CV=0.80  n for 80% power: tech=0.00:18  tech=0.10:18  tech=0.25:20
   CV=1.20  n for 80% power: tech=0.00:30  tech=0.10:32  tech=0.25:31
   CV=1.60  n for 80% power: tech=0.00:45  tech=0.10:45  tech=0.25:45
   CV=0.05  80%-power fold change: n= 3:1.41x  n= 5:1.26x  n=10:1.16x  n=20:1.11x  n=40:1.07x
   CV=0.15  80%-power fold change: n= 3:1.74x  n= 5:1.44x  n=10:1.27x  n=20:1.18x  n=40:1.12x
   CV=0.30  80%-power fold change: n= 3:2.60x  n= 5:1.87x  n=10:1.51x  n=20:1.32x  n=40:1.22x
   CV=0.50  80%-power fold change: n= 3:4.37x  n= 5:2.71x  n=10:1.91x  n=20:1.55x  n=40:1.36x
   CV=0.80  80%-power fold change: n= 3:9.12x  n= 5:4.24x  n=10:2.55x  n=20:1.87x  n=40:1.57x
   CV=1.20  80%-power fold change: n= 3:16.00x  n= 5:6.83x  n=10:3.49x  n=20:2.37x  n=40:1.84x
   CV=1.60  80%-power fold change: n= 3:16.00x  n= 5:9.92x  n=10:4.46x  n=20:2.80x  n=40:2.05x
  technical variance share at tech CV=0.10:
   CV=0.05  sigma_bio=0.050 sigma_tot=0.112 tech share=0.800  power@n20 1.000 vs 1.000
   CV=0.15  sigma_bio=0.149 sigma_tot=0.180 tech share=0.310  power@n20 1.000 vs 1.000
   CV=0.30  sigma_bio=0.294 sigma_tot=0.310 tech share=0.104  power@n20 1.000 vs 1.000
   CV=0.50  sigma_bio=0.472 sigma_tot=0.483 tech share=0.043  power@n20 0.993 vs 0.994
   CV=0.80  sigma_bio=0.703 sigma_tot=0.710 tech share=0.020  power@n20 0.862 vs 0.864
   CV=1.20  sigma_bio=0.944 sigma_tot=0.950 tech share=0.011  power@n20 0.608 vs 0.605
   CV=1.60  sigma_bio=1.127 sigma_tot=1.131 tech share=0.008  power@n20 0.469 vs 0.483
  null check: delta = 0, CV = 0.50, n = 10 -> rejection rate 0.0525 (alpha = 0.05)
   n= 3 per group: 20 permutations, min two-sided rank p = 0.1000
   n= 5 per group: 252 permutations, min two-sided rank p = 0.0079
   n=10 per group: 184756 permutations, min two-sided rank p = 0.0000
   n=20 per group: 137846528820 permutations, min two-sided rank p = 0.0000
   n=40 per group: 107507208733336176461620 permutations, min two-sided rank p = 0.0000
  (test 2 took 71.4 s)

=== TEST 3: crowded-lattice diffusion vs a constant-D model ===
  phi=0.00 free=1.000 D(8)=1.0001 D(1024)=0.9890 exp=+1.000 Dfit_early=0.2498 Dfit_late=0.2477 resid= 0.06% sat=0.993
  phi=0.05 free=0.951 D(8)=0.9183 D(1024)=0.8950 exp=+0.988 Dfit_early=0.2249 Dfit_late=0.2237 resid= 1.74% sat=1.002
  phi=0.10 free=0.898 D(8)=0.8362 D(1024)=0.7761 exp=+0.972 Dfit_early=0.1992 Dfit_late=0.1942 resid= 3.96% sat=0.998
  phi=0.20 free=0.799 D(8)=0.6847 D(1024)=0.5466 exp=+0.928 Dfit_early=0.1503 Dfit_late=0.1370 resid= 9.94% sat=0.995
  phi=0.30 free=0.705 D(8)=0.5488 D(1024)=0.3098 exp=+0.865 Dfit_early=0.1066 Dfit_late=0.0789 resid=17.84% sat=0.950
  phi=0.35 free=0.655 D(8)=0.4879 D(1024)=0.2070 exp=+0.824 Dfit_early=0.0875 Dfit_late=0.0536 resid=22.51% sat=0.904
  phi=0.40 free=0.596 D(8)=0.4142 D(1024)=0.1140 exp=+0.770 Dfit_early=0.0669 Dfit_late=0.0307 resid=28.00% sat=0.814
  phi=0.45 free=0.550 D(8)=0.3662 D(1024)=0.0603 exp=+0.718 Dfit_early=0.0534 Dfit_late=0.0171 resid=32.91% sat=0.716
  control: D(tau=8)/D(tau=1024) at phi=0 is 1.0112 (finite-lattice artefact, not crowding)
  fit over all phi:      obstruction alpha=5.877 rms=0.2564 | percolation phi_c=0.517 mu=1.380 rms=0.0568
  fit over phi<=0.40:    obstruction alpha=5.128 rms=0.1809 | percolation phi_c=0.468 mu=1.120 rms=0.0206
  per-point apparent alpha: n/a, 2.00, 2.42, 2.96, 3.87, 4.47, 5.40, 6.22
   phi=0.05 D_short/D_long=1.015 -> constant-D error at short lag +1.5%
   phi=0.10 D_short/D_long=1.065 -> constant-D error at short lag +6.5%
   phi=0.20 D_short/D_long=1.239 -> constant-D error at short lag +23.9%
   phi=0.30 D_short/D_long=1.751 -> constant-D error at short lag +75.1%
   phi=0.35 D_short/D_long=2.331 -> constant-D error at short lag +133.1%
   phi=0.40 D_short/D_long=3.594 -> constant-D error at short lag +259.4%
   phi=0.45 D_short/D_long=6.005 -> constant-D error at short lag +500.5%
