예제 #1
0
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)
예제 #2
0
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)
예제 #3
0
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