def test_list_param(): scenario = compileScenic('ego = Object\n' 'param p = [3, Uniform(1, 2)]') ts = [sampleParamP(scenario) for i in range(60)] assert all(type(t) is list for t in ts) assert all(t[0] == 3 for t in ts) assert all(t[1] == 1 or t[1] == 2 for t in ts) assert any(t[1] == 1 for t in ts) assert any(t[1] == 2 for t in ts)
def test_not_visible(): scenario = compileScenic(""" ego = Object at 100 @ 200, facing -45 deg, with visibleDistance 30, with viewAngle 90 deg reg = RectangularRegion(100@200, 0, 10, 10) param p = Point in not visible reg """) ps = [sampleParamP(scenario, maxIterations=100) for i in range(50)] assert all(p.x <= 100 or p.y <= 200 for p in ps) assert any(p.x > 100 for p in ps) assert any(p.y > 200 for p in ps)
def test_visible(): scenario = compileScenic(""" ego = Object at 100 @ 200, facing -45 deg, with visibleDistance 10, with viewAngle 90 deg reg = RectangularRegion(100@205, 0, 10, 20) param p = Point in visible reg """) for i in range(30): p = sampleParamP(scenario, maxIterations=100) assert p.x >= 100 assert p.y >= 200 assert math.hypot(p.x - 100, p.y - 200) <= 10