Пример #1
0
def header(draw, seq=uint32(), stamp=time(), frame_id=string()):
    """
    Generate value for ROS1 standard message type "header".

    Parameters
    ----------
    seq : hypothesis_ros.message_fields.uint32()
        Strategy to generate seq value. (Default: Default hypothesis_ros strategy.)
    stamp : hypothesis_ros.message_fields.time()
        Strategy to generate stamp value. (Default: Default hypothesis_ros strategy.)
    frame_id : hypothesis_ros.message_fields.string()
        Strategy to generate frame_id value. (Default: Default hypothesis_ros strategy.)

    """
    seq_value = draw(seq)
    stamp_value = draw(stamp)
    frame_id_value = draw(frame_id)
    assert isinstance(
        seq_value, int
    ), 'drew invalid seq={seq_value} from {seq} for uint32 field'.format(
        seq_value, seq)
    assert isinstance(
        stamp_value.secs, int
    ), 'drew invalid stamp.secs={stamp_value} from {stamp} for int field'.format(
        stamp_value.secs, stamp)
    assert isinstance(
        stamp_value.nsecs, int
    ), 'drew invalid stamp.nsecs={stamp_value} from {stamp} for int field'.format(
        stamp_value.nsecs, stamp)
    assert isinstance(
        frame_id_value, str
    ), 'drew invalid frame_id={frame_id_value} from {frame_id} for str field'.format(
        frame_id_value, frame_id)
    return _Header(seq_value, stamp_value, frame_id_value)
Пример #2
0
from hypothesis_ros.messages.geometry_msgs import (transform,
                                                   transform_stamped, vector3,
                                                   quaternion)
from hypothesis_ros.messages.std_msgs import header
from hypothesis_ros.message_fields import (
    array,
    float64,
    uint32,
    time,
)


@given(
    array(elements=transform_stamped(
        header(seq=uint32(min_value=0, max_value=0),
               stamp=time(secs=uint32(min_value=1, max_value=1),
                          nsecs=uint32(min_value=2, max_value=2)),
               frame_id=just('some_tf_frame_name')),
        just('some_child_frame_id'),
        transform(translation=vector3(x=float64(min_value=1.0, max_value=1.0),
                                      y=float64(min_value=2.0, max_value=2.0),
                                      z=float64(min_value=3.0, max_value=3.0)),
                  rotation=quaternion(x=float64(min_value=1.0, max_value=1.0),
                                      y=float64(min_value=2.0, max_value=2.0),
                                      z=float64(min_value=3.0, max_value=3.0),
                                      w=float64(min_value=4.0,
                                                max_value=4.0)))),
          min_size=2,
          max_size=2))
def test_tfmessage_accepts_customized_strategies(generated_value):
    """Exemplary customized TFMessage."""
    assert generated_value == [
@given(string())
def test_string_generates_in_range_size_per_default(generated_value):
    """Verify default generated string size."""
    assert len(generated_value) >= STRING_MIN_SIZE
    assert len(generated_value) <= STRING_MAX_SIZE


def test_string_with_bigger_min_than_max_size_raises_exception():
    """Verifies validation of String min_value/max_value."""
    with raises(InvalidArgument):
        string(min_size=STRING_MIN_SIZE + 1,
               max_size=STRING_MIN_SIZE).example()


@given(time())
def test_time_generates_in_range_values_per_default(generated_value):
    """Verfiy default generated value range."""
    secs = generated_value.secs
    nsecs = generated_value.nsecs
    assert secs >= UINT32_MIN_VALUE
    assert secs <= UINT32_MAX_VALUE
    assert nsecs >= UINT32_MIN_VALUE
    assert nsecs <= UINT32_MAX_VALUE


@given(
    time(secs=uint32(min_value=1, max_value=1),
         nsecs=uint32(min_value=2, max_value=2)))
def test_time_field_mapping(generated_value):
    """Verify mapping of time fields."""
Пример #4
0
                                (1.0, 2.0, 3.0, 4.0)
                               ),
                               [0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
                                0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
                                0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
                                0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
                                0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
                                0.0, 0.0, 0.0, 0.0, 0.0, 0.0
                               ]
                              )


@given(pose_with_covariance_stamped(
           header(seq=uint32(min_value=0, max_value=0),
                  stamp=time(
                      secs=uint32(min_value=0, max_value=0),
                      nsecs=uint32(min_value=0, max_value=0)
                  ),
                  frame_id=just('some_tf_frame_name')
                 ),
           pose_with_covariance(pose(position=point(x=float64(min_value=1.0, max_value=1.0),
                                                    y=float64(min_value=2.0, max_value=2.0),
                                                    z=float64(min_value=3.0, max_value=3.0)
                                                   ),
                                     orientation=quaternion(x=float64(min_value=1.0, max_value=1.0),
                                                            y=float64(min_value=2.0, max_value=2.0),
                                                            z=float64(min_value=3.0, max_value=3.0),
                                                            w=float64(min_value=4.0, max_value=4.0)
                                                           )
                                    ),
                                array(elements=float64(min_value=0.0, max_value=0.0), min_size=36, max_size=36)
                               )