Пример #1
0
def test_mix_new_and_get():
    from kwiver.sprokit.pipeline import datum
    from kwiver.vital import types as kvt

    # Try creating with generic constructor first, retrieving with
    # type specific get function
    datum_inst = datum.new("string_value")
    check_same_type(datum_inst.get_string(), "string_value")

    datum_inst = datum.new(kvt.Timestamp(1000000000, 10))
    check_same_type(datum_inst.get_timestamp(), kvt.Timestamp(1000000000, 10))

    datum_inst = datum.new(datum.VectorString(["element1", "element2"]))
    check_same_type(datum_inst.get_string_vector(),
                    datum.VectorString(["element1", "element2"]))

    # Now try the opposite
    datum_inst = datum.new_string("string_value")
    check_same_type(datum_inst.get_datum(), "string_value")

    datum_inst = datum.new_timestamp(kvt.Timestamp(1000000000, 10))
    check_same_type(datum_inst.get_datum(), kvt.Timestamp(1000000000, 10))

    datum_inst = datum.new_string_vector(
        datum.VectorString(["element1", "element2"]))
    check_same_type(datum_inst.get_datum(),
                    datum.VectorString(["element1", "element2"]))
Пример #2
0
def test_add_get_vital_types():
    from kwiver.vital import types as kvt
    from kwiver.sprokit.adapters import adapter_data_set

    ads = adapter_data_set.AdapterDataSet.create()
    add_get_helper(
        ads,
        ads._add_bounding_box,
        ads._get_port_data_bounding_box,
        kvt.BoundingBoxD(1, 1, 2, 2),
        "bounding_box",
    )
    add_get_helper(
        ads,
        ads._add_timestamp,
        ads._get_port_data_timestamp,
        kvt.Timestamp(),
        "timestamp",
    )
    add_get_helper(
        ads,
        ads._add_f2f_homography,
        ads._get_port_data_f2f_homography,
        kvt.F2FHomography(1),
        "f2f_homography",
    )
Пример #3
0
def test_mix_add_and_get():
    from kwiver.sprokit.adapters import adapter_data_set
    from kwiver.vital import types as kvt

    ads = adapter_data_set.AdapterDataSet.create()

    # Try adding with generic adder first, retrieving with
    # type specific get function
    ads["string_port"] = "string_value"
    check_same_type(
        ads._get_port_data_string("string_port"), "string_value", "string_port"
    )

    ads["timestamp_port"] = kvt.Timestamp(1000000000, 10)
    check_same_type(
        ads._get_port_data_timestamp("timestamp_port"),
        kvt.Timestamp(1000000000, 10),
        "timestamp_port",
    )

    ads["vector_string_port"] = adapter_data_set.VectorString(["element1", "element2"])
    check_same_type(
        ads._get_port_data_string_vector("vector_string_port"),
        adapter_data_set.VectorString(["element1", "element2"]),
        "vector_string_port",
    )

    # Now try the opposite
    ads._add_string("string_port", "string_value")
    check_same_type(ads["string_port"], "string_value", "string_port")

    ads._add_timestamp("timestamp_port", kvt.Timestamp(1000000000, 10))
    check_same_type(
        ads["timestamp_port"], kvt.Timestamp(1000000000, 10), "timestamp_port"
    )

    ads._add_string_vector(
        "vector_string_port", adapter_data_set.VectorString(["element1", "element2"])
    )
    check_same_type(
        ads["vector_string_port"],
        adapter_data_set.VectorString(["element1", "element2"]),
        "vector_string_port",
    )
Пример #4
0
def test_add_get_vital_types():
    from kwiver.sprokit.pipeline import datum
    from kwiver.vital import types as kvt

    datum_inst = datum.new_bounding_box(kvt.BoundingBoxD(1, 1, 2, 2))
    retrieved_val = datum_inst.get_bounding_box()
    check_same_type(retrieved_val, kvt.BoundingBoxD(1, 1, 2, 2))

    datum_inst = datum.new_timestamp(kvt.Timestamp())
    retrieved_val = datum_inst.get_timestamp()
    check_same_type(retrieved_val, kvt.Timestamp())

    datum_inst = datum.new_f2f_homography(kvt.F2FHomography(1))
    retrieved_val = datum_inst.get_f2f_homography()
    check_same_type(retrieved_val, kvt.F2FHomography(1))

    check_automatic_conversion(kvt.BoundingBoxD(1, 1, 2, 2))
    check_automatic_conversion(kvt.Timestamp())
    check_automatic_conversion(kvt.F2FHomography(1))
Пример #5
0
def _create_ads():
    from kwiver.vital import types as kvt
    from kwiver.sprokit.adapters import adapter_data_set

    ads = adapter_data_set.AdapterDataSet.create()

    # Construct a few elements
    ads["string_port"] = "string_value"
    ads["timestamp_port"] = kvt.Timestamp(1000000000, 10)
    ads["vector_string_port"] = adapter_data_set.VectorString(["element1", "element2"])

    return ads
Пример #6
0
def test_overwrite():
    from kwiver.vital import types as kvt
    from kwiver.sprokit.adapters import adapter_data_set

    OVERWRITE_PORT = "test_overwrite_port"
    ads = adapter_data_set.AdapterDataSet.create()

    # Overwriting with same datum
    ads.add_datum(OVERWRITE_PORT, datum.new("d2"))
    overwrite_helper(
        ads.add_datum,
        ads.get_port_data,
        datum.new("d3"),
        "datum_string",
        OVERWRITE_PORT,
    )

    # Overwriting with completely different types
    overwrite_helper(
        ads.add_datum, ads.get_port_data, datum.new(12), "datum_int", OVERWRITE_PORT
    )
    overwrite_helper(
        ads._add_string_vector,
        ads._get_port_data_string_vector,
        adapter_data_set.VectorString(["baz", "qux"]),
        "string_vector",
        OVERWRITE_PORT,
    )
    overwrite_helper(
        ads._add_timestamp,
        ads._get_port_data_timestamp,
        kvt.Timestamp(100, 10),
        "timestamp",
        OVERWRITE_PORT,
    )
    overwrite_helper(ads.add_value, ads.get_port_data, 15, "int", OVERWRITE_PORT)
    overwrite_helper(
        ads._add_double_vector,
        ads._get_port_data_double_vector,
        adapter_data_set.VectorDouble([4, 8]),
        "double_vector",
        OVERWRITE_PORT,
    )
Пример #7
0
def test_iter():
    from kwiver.vital import types as kvt
    from kwiver.sprokit.adapters import adapter_data_set

    ads = _create_ads()

    for port, dat in ads:
        if port == "string_port":
            if dat.get_datum() != "string_value":
                test_error("Didn't retrieve correct string value on first iteration")
        elif port == "timestamp_port":
            if dat.get_datum() != kvt.Timestamp(1000000000, 10):
                test_error(
                    "Didn't retrieve correct timestamp value on second iteration"
                )
        elif port == "vector_string_port":
            if dat.get_datum() != datum.VectorString(["element1", "element2"]):
                test_error("Didn't retrieve correct string vector on third iteration")
        else:
            test_error("unknown port: {}".format(port))