示例#1
0
  def test_find_overlaps_configurable_scenario_generation(self):
    shape = Polygon2d([0, 0, 0], [Point2d(-1,0),
                      Point2d(-1,1),
                      Point2d(1,1),
                      Point2d(1,0)])

    agent_states1 = [[0, 1, 0, 0, 0], [0, 4, 0, 0, 0], [0, 8, 0, 0, 0]] # agents along x axis
    agent_geometries1 = [shape, shape, shape]

    agent_states2 = [[0, 4, -10, 0, 0], [0, 4, 0, 0, 0], [0, 4, 20, 0, 0]] # agents along y axis at x= 4
    agent_geometries2 = [shape, shape, shape]

    agent_states3 = [[0, 20, -20, 0, 0], [0, 1, 0, 0, 0], [0, 4, 20, 0, 0]] # some agents two colliding with other configs
    agent_geometries3 = [shape, shape, shape]

    collected_sources_sinks_agent_states_geometries = [(agent_states1, agent_geometries1),
                                                  (agent_states2, agent_geometries2),
                                                  (agent_states3, agent_geometries3)]
    
    overlaps = ConfigurableScenarioGeneration.find_overlaps_in_sources_sinks_agents( 
                  collected_sources_sinks_agent_states_geometries)


    self.assertTrue("0-1" in overlaps)
    
    collisions_01 = overlaps["0-1"]
    self.assertEqual(len(collisions_01), 1)

    # check source sink configs
    self.assertEqual(collisions_01[0][0][0], 0)
    self.assertEqual(collisions_01[0][1][0], 1)

    #check agent positions in list
    self.assertEqual(collisions_01[0][0][1], 1)
    self.assertEqual(collisions_01[0][1][1], 1)
    
    self.assertTrue("0-2" in overlaps)
    
    collisions_02 = overlaps["0-2"]
    self.assertEqual(len(collisions_02), 1)

    # check source sink configs
    self.assertEqual(collisions_02[0][0][0], 0)
    self.assertEqual(collisions_02[0][1][0], 2)

    #check agent positions in list
    self.assertEqual(collisions_02[0][0][1], 0)
    self.assertEqual(collisions_02[0][1][1], 1)

    collisions_03 = overlaps["1-2"]
    self.assertEqual(len(collisions_03), 1)

    # check source sink configs
    self.assertEqual(collisions_03[0][0][0], 1)
    self.assertEqual(collisions_03[0][1][0], 2)

    #check agent positions in list
    self.assertEqual(collisions_03[0][0][1], 2)
    self.assertEqual(collisions_03[0][1][1], 2)
    def test_find_overlaps_configurable_scenario_generation(self):
        shape = Polygon2d(
            [0, 0, 0],
            [Point2d(-1, 0),
             Point2d(-1, 1),
             Point2d(1, 1),
             Point2d(1, 0)])

        agent_states1 = [[0, 1, 0, 0, 0], [0, 4, 0, 0, 0],
                         [0, 8, 0, 0, 0]]  # agents along x axis
        agent_geometries1 = [shape, shape, shape]

        agent_states2 = [[0, 4, -10, 0, 0], [0, 4, 0, 0, 0],
                         [0, 4, 20, 0, 0]]  # agents along y axis at x= 4
        agent_geometries2 = [shape, shape, shape]

        # some agents two colliding with other configs
        agent_states3 = [[0, 20, -20, 0, 0], [0, 1, 0, 0, 0], [0, 4, 20, 0, 0]]
        agent_geometries3 = [shape, shape, shape]

        collected_sources_sinks_agent_states_geometries = [
            (agent_states1, agent_geometries1),
            (agent_states2, agent_geometries2),
            (agent_states3, agent_geometries3)
        ]

        overlaps = ConfigurableScenarioGeneration.find_overlaps_in_sources_sinks_agents(
            collected_sources_sinks_agent_states_geometries)

        self.assertTrue("0-1" in overlaps)

        collisions_01 = overlaps["0-1"]
        self.assertEqual(len(collisions_01), 1)

        # check source sink configs
        self.assertEqual(collisions_01[0][0][0], 0)
        self.assertEqual(collisions_01[0][1][0], 1)

        # check agent positions in list
        self.assertEqual(collisions_01[0][0][1], 1)
        self.assertEqual(collisions_01[0][1][1], 1)

        self.assertTrue("0-2" in overlaps)

        collisions_02 = overlaps["0-2"]
        self.assertEqual(len(collisions_02), 1)

        # check source sink configs
        self.assertEqual(collisions_02[0][0][0], 0)
        self.assertEqual(collisions_02[0][1][0], 2)

        # check agent positions in list
        self.assertEqual(collisions_02[0][0][1], 0)
        self.assertEqual(collisions_02[0][1][1], 1)

        collisions_03 = overlaps["1-2"]
        self.assertEqual(len(collisions_03), 1)

        # check source sink configs
        self.assertEqual(collisions_03[0][0][0], 1)
        self.assertEqual(collisions_03[0][1][0], 2)

        # check agent positions in list
        self.assertEqual(collisions_03[0][0][1], 2)
        self.assertEqual(collisions_03[0][1][1], 2)

        def test_dataset_scenario_generation(self):
            params = ParameterServer()

            map_filename = "modules/runtime/tests/data/DR_DEU_Merging_MT_v01_shifted.xodr"
            track_filename = "modules/runtime/tests/data/interaction_dataset_dummy_track.csv"

            params["Scenario"]["Generation"][
                "InteractionDatasetScenarioGenerationFull"][
                    "MapFilename"] = map_filename
            params["Scenario"]["Generation"][
                "InteractionDatasetScenarioGenerationFull"][
                    "TrackFilename"] = track_filename

            scenario_generation = InteractionDatasetScenarioGenerationFull(
                params=params, num_scenarios=2)