Exemple #1
0
 def setUp(self):
     self.FRC = OSIRulesChecker()
     orient3d = Orientation3d()
     orient3d.roll = 5
     orient3d.pitch = 2
     orient3d.yaw = 2
     self.linked_orient3d = LinkedProtoField(orient3d, "Orientation3d")
Exemple #2
0
    def setUp(self):
        self.FRC = OSIRulesChecker()

        pb_VECTOR3D = Vector3d()
        pb_VECTOR3D.x = 1
        pb_VECTOR3D.y = 2
        self.VECTOR3D = LinkedProtoField(pb_VECTOR3D, "Vector3D")
    def setUp(self):
        self.FRC = OSIRulesChecker()

        pb_ORIENTATION3D = Orientation3d()
        pb_ORIENTATION3D.roll = 1
        # pb_ORIENTATION3D.pitch = 2 --> pitch is not set
        pb_ORIENTATION3D.yaw = 2
        self.ORIENTATION3D = LinkedProtoField(pb_ORIENTATION3D,
                                              "Orientation3d")
    def setUp(self):
        self.FRC = OSIRulesChecker()

        sv = SensorView()
        linked_sv = LinkedProtoField(sv, name="SensorView")
        sid = sv.sensor_id
        sid.value = 0
        self.linked_sid = LinkedProtoField(sid,
                                           name="sensor_id",
                                           parent=linked_sv)

        sv2 = SensorView()
        linked_sv2 = LinkedProtoField(sv2, name="SensorView")
        sid2 = sv2.sensor_id
        sid2.value = 2
        self.linked_sid2 = LinkedProtoField(sid2,
                                            name="sensor_id",
                                            parent=linked_sv2)
    def test_not_comply_greater(self):
        field_params_rule_params = [[2, 1], [0, -1], [1, 0], [1, -1], [-1, -2],
                                    [-1.3, -1.5], [0.9, -1.3]]

        for fr_param in field_params_rule_params:
            with self.subTest(fr_param=fr_param):
                self.assertFalse(
                    self.FRC.is_greater_than(
                        LinkedProtoField(value=fr_param[1]),
                        Rule(verb="is_greater_than", params=fr_param[0])))
    def test_not_comply_equal(self):

        field_params_rule_params = [[3, 3], [0, 0], [-1, -1], [-1.5, -1.5],
                                    [2.3, 2.3]]

        for fr_param in field_params_rule_params:
            with self.subTest(fr_param=fr_param):
                self.assertFalse(
                    self.FRC.is_less_than(
                        LinkedProtoField(value=fr_param[1]),
                        Rule(verb="is_less_than", params=fr_param[0])))
Exemple #7
0
    def setUp(self):
        self.FRC = OSIRulesChecker()

        sv1 = SensorView()
        linked_sv1 = LinkedProtoField(sv1, name="SensorView")
        gt1 = sv1.global_ground_truth
        linked_gt1 = LinkedProtoField(gt1,
                                      name="global_ground_truth",
                                      parent=linked_sv1)

        gtlb1 = gt1.lane_boundary.add()
        linked_gtlb1 = LinkedProtoField(gtlb1,
                                        name="lane_boundary",
                                        parent=linked_gt1)

        bladd1 = gtlb1.boundary_line.add()
        bladd1.position.x = 1699.2042678176733
        bladd1.position.y = 100.16895580204906
        bladd1.position.z = 0.0
        bladd1.width = 0.13
        bladd1.height = 0.0

        self.lb1 = LinkedProtoField(bladd1,
                                    name="boundary_line",
                                    parent=linked_gtlb1)
        self.lb1.path = 'SensorView.global_ground_truth.lane_boundary.boundary_line'
        # self.lb1.parent =

        sv2 = SensorView()
        linked_sv2 = LinkedProtoField(sv2, name="SensorView")

        gt2 = sv2.global_ground_truth
        linked_gt2 = LinkedProtoField(gt2,
                                      name="global_ground_truth",
                                      parent=linked_sv2)

        gtlb2 = gt2.lane_boundary.add()
        linked_gtlb2 = LinkedProtoField(gtlb2,
                                        name="lane_boundary",
                                        parent=linked_gt2)

        bladd2 = gtlb2.boundary_line.add()
        bladd2.position.x = 1699.2042678176733
        bladd2.position.y = 100.16895580204906
        bladd2.position.z = 0.0
        bladd2.width = 0.14
        bladd2.height = 0.13
        self.lb2 = LinkedProtoField(bladd2,
                                    name="boundary_line",
                                    parent=linked_gtlb2)
        self.lb2.path = 'SensorView.global_ground_truth.lane_boundary.boundary_line'
Exemple #8
0
    def get_message_by_index(self, index):
        """
        Get a message by its index. Try first to get it from the cache made
        by the method ``cache_messages_in_index_range``.
        """
        message = self.message_cache.get(index, None)

        if message is not None:
            return message

        message = next(self.get_messages_in_index_range(index, index + 1))
        return LinkedProtoField(message, name=self.type_name)
    def test_comply_less(self):

        field_params_rule_params = [[2, 1], [0, -1], [1, 0], [1, -1], [-1, -2],
                                    [-1.3, -1.5], [0.9, -1.3]]

        for fr_param in field_params_rule_params:
            with self.subTest(fr_param=fr_param):
                self.assertTrue(
                    self.FRC.is_less_than_or_equal_to(
                        LinkedProtoField(value=fr_param[1]),
                        Rule(verb="is_less_than_or_equal_to",
                             params=fr_param[0])))
Exemple #10
0
    def test_comply_equal(self):

        field_params_rule_params = [[3, 3], [0, 0], [-1, -1], [-1.5, -1.5],
                                    [2.3, 2.3]]

        for fr_param in field_params_rule_params:
            with self.subTest(fr_param=fr_param):
                self.assertTrue(
                    self.FRC.is_greater_than_or_equal_to(
                        LinkedProtoField(value=fr_param[1]),
                        Rule(verb="is_greater_than_or_equal_to",
                             params=fr_param[0])))
    def setUp(self):
        self.FRC = OSIRulesChecker()

        sv1 = SensorView()
        linked_sv1 = LinkedProtoField(sv1, name="SensorView")

        gt1 = sv1.global_ground_truth
        linked_gt1 = LinkedProtoField(gt1,
                                      name="global_ground_truth",
                                      parent=linked_sv1)

        gt1.host_vehicle_id.value = 0
        hvid1 = gt1.host_vehicle_id
        self.linked_hvid1 = LinkedProtoField(hvid1,
                                             name="host_vehicle_id",
                                             parent=linked_gt1)

        sv2 = SensorView()
        linked_sv2 = LinkedProtoField(sv2, name="SensorView")

        gt2 = sv2.global_ground_truth
        linked_gt2 = LinkedProtoField(gt2,
                                      name="global_ground_truth",
                                      parent=linked_sv2)

        gt2.host_vehicle_id.value = 1
        hvid1 = gt2.host_vehicle_id
        self.linked_hvid2 = LinkedProtoField(hvid1,
                                             name="host_vehicle_id",
                                             parent=linked_gt2)
Exemple #12
0
    def get_messages_in_index_range(self, begin, end):
        """
        Yield an iterator over messages of indexes between begin and end included.
        """
        if self.show_progress:
            progress_bar = Bar(max=len(self.message_offsets[begin:end]))
            print("Importing messages from trace file ...")
        else:
            progress_bar = None

        self.trace_file.seek(self.message_offsets[begin])
        abs_first_offset = self.message_offsets[begin]
        abs_last_offset = (self.message_offsets[end]
                           if end < len(self.message_offsets) else
                           self.retrieved_trace_size)

        rel_message_offsets = [
            abs_message_offset - abs_first_offset
            for abs_message_offset in self.message_offsets[begin:end]
        ]

        if self.path.lower().endswith((".txt.lzma", ".txt.xz", ".txt")):
            message_sequence_len = abs_last_offset - abs_first_offset - SEPARATOR_LENGTH
            serialized_messages_extract = self.trace_file.read(
                message_sequence_len)

            for rel_index, rel_message_offset in enumerate(
                    rel_message_offsets):
                rel_begin = rel_message_offset
                rel_end = (rel_message_offsets[rel_index + 1] -
                           SEPARATOR_LENGTH
                           if rel_index + 1 < len(rel_message_offsets) else
                           message_sequence_len)

                message = MESSAGES_TYPE[self.type_name]()
                serialized_message = serialized_messages_extract[
                    rel_begin:rel_end]
                message.ParseFromString(serialized_message)
                self.update_bar(progress_bar, rel_index)
                yield LinkedProtoField(message, name=self.type_name)

        elif self.path.lower().endswith((".osi.lzma", ".osi.xz", ".osi")):
            message_sequence_len = abs_last_offset - abs_first_offset
            serialized_messages_extract = self.trace_file.read(
                message_sequence_len)

            for rel_index, rel_message_offset in enumerate(
                    rel_message_offsets):
                rel_begin = rel_message_offset + self._int_length
                rel_end = (rel_message_offsets[rel_index + 1] -
                           self._int_length
                           if rel_index + 1 < len(rel_message_offsets) else
                           message_sequence_len)

                message = MESSAGES_TYPE[self.type_name]()
                serialized_message = serialized_messages_extract[
                    rel_begin:rel_end]
                message.ParseFromString(serialized_message)
                self.update_bar(progress_bar, rel_index)
                yield LinkedProtoField(message, name=self.type_name)

        else:
            raise Exception(
                f"The defined file format {self.path.split('/')[-1]} does not exist."
            )

        if self.show_progress:
            self.update_bar(progress_bar, progress_bar.max)
            progress_bar.finish()
 def test_not_comply(self):
     field = LinkedProtoField(value=2)
     rule = Rule(verb="is_different", params=2)
     compliance = self.FRC.is_different(field, rule)
     self.assertFalse(compliance)
Exemple #14
0
 def test_not_comply(self):
     field = LinkedProtoField(value=3)
     rule = Rule(verb="is_less_than_or_equal_to", params=2)
     compliance = self.FRC.is_equal_to(field, rule)
     self.assertFalse(compliance)
 def test_comply_is_optional(self):
     self.assertTrue(
         self.FRC.is_optional(LinkedProtoField(value=1),
                              Rule(verb="is_optional", params=None)))
 def test_comply(self):
     field = LinkedProtoField(value=3)
     rule = Rule(verb="is_different_to", params=2)
     compliance = self.FRC.is_different_to(field, rule)
     self.assertTrue(compliance)