fork download
  1. u=lambda*a:a
  2. b=u
  3. x=lambda f,a,b:[int(f<=a),(b-f)/(b-a)][a<f<b]
  4. y=lambda f,p,q,r:o(0,p)*o(f,q)+(1-o(0,p))*o(f,r)
  5. o=lambda f,p:[x,y][len(p)-2](f,*p)
  6.  
  7. t="""over(4.356, uniform(-4.873, 2.441)) -> 0.0
  8. over(2.226, uniform(-1.922, 2.664)) -> 0.09550806803314438
  9. over(-4.353, uniform(-7.929, -0.823)) -> 0.49676329862088375
  10. over(-2.491, uniform(-0.340, 6.453)) -> 1.0
  11. over(0.738, blend(uniform(-5.233, 3.384), uniform(2.767, 8.329), uniform(-2.769, 6.497))) -> 0.7701533851999125
  12. over(-3.577, blend(uniform(-3.159, 0.070), blend(blend(uniform(-4.996, 4.851), uniform(-7.516, 1.455), uniform(-0.931, 7.292)), blend(uniform(-5.437, -0.738), uniform(-8.272, -2.316), uniform(-3.225, 1.201)), uniform(3.097, 6.792)), uniform(-8.215, 0.817))) -> 0.4976245638164541
  13. over(3.243, blend(blend(uniform(-4.909, 2.003), uniform(-4.158, 4.622), blend(uniform(0.572, 5.874), uniform(-0.573, 4.716), blend(uniform(-5.279, 3.702), uniform(-6.564, 1.373), uniform(-6.585, 2.802)))), uniform(-3.148, 2.015), blend(uniform(-6.235, -5.629), uniform(-4.647, -1.056), uniform(-0.384, 2.050)))) -> 0.0
  14. over(-3.020, blend(blend(uniform(-0.080, 6.148), blend(uniform(1.691, 6.439), uniform(-7.086, 2.158), uniform(3.423, 6.773)), uniform(-1.780, 2.381)), blend(uniform(-1.754, 1.943), uniform(-0.046, 6.327), blend(uniform(-6.667, 2.543), uniform(0.656, 7.903), blend(uniform(-8.673, 3.639), uniform(-7.606, 1.435), uniform(-5.138, -2.409)))), uniform(-8.008, -0.317))) -> 0.4487803553043079"""
  15.  
  16. uniform=u
  17. blend=b
  18. over=o
  19. for test in t.split('\n'):
  20. case,res = test.split(' -> ')
  21. print eval(case),res
Success #stdin #stdout 0.01s 9016KB
stdin
Standard input is empty
stdout
0 0.0
0.0955080680331 0.09550806803314438
0.496763298621 0.49676329862088375
1 1.0
0.7701533852 0.7701533851999125
0.497624563816 0.4976245638164541
0.0 0.0
0.448780355304 0.4487803553043079