hakaru-dev / hakaru

A probabilistic programming language
BSD 3-Clause "New" or "Revised" License
309 stars 30 forks source link

Cauchy test 2 #189

Closed staplejw closed 6 years ago

staplejw commented 6 years ago

Failure in: 6:RoundTrip:7:1:t_cauchy_add_transformation:0 haskell/Tests/TestTools.hs:130 expected: stdNormal = p <~ normal(nat2real(0), nat2prob(1)) return p stdCauchy = X1 <~ stdNormal X2 <~ stdNormal return X1 / X2 cauchy = fn a real: fn alpha prob: X <~ stdCauchy return a + prob2real(alpha) X X <~ cauchy(nat2real(4), nat2prob(6)) return X but got: p5 <~ normal(+0/1, 1/1) p3 <~ normal(+0/1, 1/1) return (p5 (+3/1) + p3 (+2/1)) / p3 (+2/1) Cases: 338 Tried: 289 Errors: 2 Failures: 22

Failure in: 6:RoundTrip:7:1:t_cauchy_add_transformation:1 haskell/Tests/TestTools.hs:130 expected: stdNormal = p <~ normal(nat2real(0), nat2prob(1)) return p stdCauchy = X1 <~ stdNormal X2 <~ stdNormal return X1 / X2 cauchy = fn a real: fn alpha prob: X <~ stdCauchy return a + prob2real(alpha) X X <~ cauchy(nat2real(4), nat2prob(6)) return X but got: pb <~ normal(+0/1, 1/1) p9 <~ normal(+0/1, 1/1) p7 <~ normal(+0/1, 1/1) p5 <~ normal(+0/1, 1/1) return (p5 p9 (+2/1) + p5 pb + p7 p9 (+2/1)) / p9 / p5

staplejw commented 6 years ago

Failure in: 6:RoundTrip:7:2:t_cauchy_sub_transformation:0 haskell/Tests/TestTools.hs:130 expected: stdNormal = p <~ normal(nat2real(0), nat2prob(1)) return p stdCauchy = X1 <~ stdNormal X2 <~ stdNormal return X1 / X2 cauchy = fn a real: fn alpha prob: X <~ stdCauchy return a + prob2real(alpha) X X <~ cauchy(int2real(-2), nat2prob(6)) return X but got: p5 <~ normal(+0/1, 1/1) p3 <~ normal(+0/1, 1/1) return (p5 (-3/1) + p3) / p3 * (-2/1) Cases: 338 Tried: 291 Errors: 2 Failures: 24

Failure in: 6:RoundTrip:7:2:t_cauchy_sub_transformation:1 haskell/Tests/TestTools.hs:130 expected: stdNormal = p <~ normal(nat2real(0), nat2prob(1)) return p stdCauchy = X1 <~ stdNormal X2 <~ stdNormal return X1 / X2 cauchy = fn a real: fn alpha prob: X <~ stdCauchy return a + prob2real(alpha) X X <~ cauchy(int2real(-2), nat2prob(6)) return X but got: pb <~ normal(+0/1, 1/1) p9 <~ normal(+0/1, 1/1) p7 <~ normal(+0/1, 1/1) p5 <~ normal(+0/1, 1/1) return (p5 p9 + p5 pb (-1/1) + p7 p9 (+2/1)) / p9 / p5