X-Git-Url: https://git.arvados.org/lightning.git/blobdiff_plain/5ef6fd1359e9a6c914d5778cdb384b95eae9003a..82ef36db6723ea40564deeef2c639461d93af7a4:/chisquare_test.go diff --git a/chisquare_test.go b/chisquare_test.go index 3a59671c40..823023507a 100644 --- a/chisquare_test.go +++ b/chisquare_test.go @@ -24,12 +24,45 @@ func (s *pvalueSuite) TestPvalue(c *check.C) { for i := 25; i < 31; i++ { a[i] = true } - for i := 31; i < 39; i++ { + for i := 31; i < 40; i++ { b[i] = true } - c.Check(fmt.Sprintf("%.7f", pvalue(a, b)), check.Equals, "0.0006297") + c.Check(fmt.Sprintf("%.8f", pvalue(a, b)), check.Equals, "0.04147853") + + a = make([]bool, 54) + b = make([]bool, 54) + for i := 0; i < 25; i++ { + a[i] = true + b[i] = true + } + c.Check(fmt.Sprintf("%.9f", pvalue(a, b)), check.Equals, "0.000000072") for i := range a { a[i] = !a[i] } - c.Check(fmt.Sprintf("%.7f", pvalue(a, b)), check.Equals, "0.0006297") + c.Check(fmt.Sprintf("%.9f", pvalue(a, b)), check.Equals, "0.000000573") + + a = []bool{true, true, true, false, true, false, false, false} + b = []bool{true, true, true, true, false, false, false, false} + c.Check(fmt.Sprintf("%.8f", pvalue(a, b)), check.Equals, "0.31731051") + for i := range a { + a[i] = !a[i] + } + c.Check(fmt.Sprintf("%.8f", pvalue(a, b)), check.Equals, "0.31731051") + + for _, sz := range []int{128, 1024, 4096, 16384} { + c.Logf("sz = %d", sz) + a = make([]bool, sz) + b = make([]bool, sz) + c.Check(fmt.Sprintf("%.8f", pvalue(a, b)), check.Equals, "1.00000000") + for i := 0; i < len(a)/23; i++ { + a[i] = true + } + for i := 0; i < len(a)/2; i++ { + b[i] = true + } + c.Logf("pvalue(a,b) == %e", pvalue(a, b)) + c.Logf("pvalue(b,a) == %e", pvalue(b, a)) + c.Check(pvalue(a, b), check.Not(check.Equals), float64(0)) + c.Check(pvalue(b, a), check.Not(check.Equals), float64(0)) + } }