def test_write_map_data_to_db_with_loss_map(self):
        """
        Writing hazard loss data works.
        """
        expected_loss_data = [
            ([-118.229726, 34.050622], 16.04934554846202),
            ([-118.241243, 34.061557], 629.323267954),
            ([-118.245388, 34.055984], 245.9928520658)]

        def coords(idx):
            """Access the point coordinates."""
            return tuple(expected_loss_data[idx][0])

        def value(idx):
            """Access the loss value."""
            return view_utils.round_float(expected_loss_data[idx][1])

        loss_map = self.setup_output(output_type="loss_map")
        self.job_to_tear_down = loss_map.oq_job
        config = {
            "key": "%s" % loss_map.id,
            "layer": "77-lossmap-0.01-quantile-0.25",
            "output": "tests/77", "path": "tests/data/loss-map-0fcfdbc7.xml",
            "type": "loss"}
        write_map_data_to_db(config)
        self.assertEqual(0, len(loss_map.hazardmapdata_set.all()))
        self.assertEqual(3, len(loss_map.lossmapdata_set.all()))
        for idx, loss in enumerate(loss_map.lossmapdata_set.all()):
            self.assertEqual(coords(idx), loss.location.coords)
            self.assertEqual(value(idx), view_utils.round_float(loss.value))
    def test_write_map_data_to_db_with_hazard_map(self):
        """
        Writing hazard map data works.
        """
        expected_hazard_data = [([-122.1, 38.0], 1.1905288226),
                                ([-122.0, 37.5], 1.19244541041),
                                ([-121.8, 37.9], 1.23518683436)]

        def coords(idx):
            """Access the point coordinates."""
            return tuple(expected_hazard_data[idx][0])

        def value(idx):
            """Access the hazard value."""
            return view_utils.round_float(expected_hazard_data[idx][1])

        hazard_map = self.setup_output(output_type="hazard_map")
        self.job_to_tear_down = hazard_map.oq_job
        config = {
            "key": "%s" % hazard_map.id,
            "layer": "78-hazardmap-0.01-quantile-0.25",
            "output": "tests/78",
            "path": "tests/data/hazardmap-0.1-quantile-0.25.xml",
            "type": "hazard"
        }
        write_map_data_to_db(config)
        self.assertEqual(0, len(hazard_map.lossmapdata_set.all()))
        self.assertEqual(3, len(hazard_map.hazardmapdata_set.all()))
        # don't depend on sort order
        all_hazard = sorted([(h.location.coords, h.value)
                             for h in hazard_map.hazardmapdata_set.all()])

        for idx, hazard in enumerate(all_hazard):
            self.assertEqual(coords(idx), hazard[0])
            self.assertEqual(value(idx), view_utils.round_float(hazard[1]))
    def test_write_map_data_to_db_with_hazard_map(self):
        """
        Writing hazard map data works.
        """
        expected_hazard_data = [
            ([-121.8, 37.9], 1.23518683436),
            ([-122.0, 37.5], 1.19244541041),
            ([-122.1, 38.0], 1.1905288226)]

        def coords(idx):
            """Access the point coordinates."""
            return tuple(expected_hazard_data[idx][0])

        def value(idx):
            """Access the hazard value."""
            return view_utils.round_float(expected_hazard_data[idx][1])

        hazard_map = self.setup_output(output_type="hazard_map")
        self.job_to_tear_down = hazard_map.oq_job
        config = {
            "key": "%s" % hazard_map.id,
            "layer": "78-hazardmap-0.01-quantile-0.25",
            "output": "tests/78",
            "path": "tests/data/hazardmap-0.1-quantile-0.25.xml",
            "type": "hazard"}
        write_map_data_to_db(config)
        self.assertEqual(0, len(hazard_map.lossmapdata_set.all()))
        self.assertEqual(3, len(hazard_map.hazardmapdata_set.all()))
        for idx, hazard in enumerate(hazard_map.hazardmapdata_set.all()):
            self.assertEqual(coords(idx), hazard.location.coords)
            self.assertEqual(value(idx), view_utils.round_float(hazard.value))
    def test_write_map_data_to_db_with_loss_map(self):
        """
        Writing hazard loss data works.
        """
        expected_loss_data = [([-118.229726, 34.050622], 16.04934554846202),
                              ([-118.241243, 34.061557], 629.323267954),
                              ([-118.245388, 34.055984], 245.9928520658)]

        def coords(idx):
            """Access the point coordinates."""
            return tuple(expected_loss_data[idx][0])

        def value(idx):
            """Access the loss value."""
            return view_utils.round_float(expected_loss_data[idx][1])

        loss_map = self.setup_output(output_type="loss_map")
        self.job_to_tear_down = loss_map.oq_job
        config = {
            "key": "%s" % loss_map.id,
            "layer": "77-lossmap-0.01-quantile-0.25",
            "output": "tests/77",
            "path": "tests/data/loss-map-0fcfdbc7.xml",
            "type": "loss"
        }
        write_map_data_to_db(config)
        self.assertEqual(0, len(loss_map.hazardmapdata_set.all()))
        self.assertEqual(3, len(loss_map.lossmapdata_set.all()))
        for idx, loss in enumerate(loss_map.lossmapdata_set.all()):
            self.assertEqual(coords(idx), loss.location.coords)
            self.assertEqual(value(idx), view_utils.round_float(loss.value))
 def test_write_map_data_to_db_with_invalid_output_key(self):
     """
     Not being able to find the output record results in an
     ObjectDoesNotExist error.
     """
     config = {
         "key": "-111",
         "layer": "77-lossmap-0.01-quantile-0.25", "output": "tests/77",
         "path": "tests/data/loss-map-0fcfdbc7.xml", "type": "loss"}
     try:
         write_map_data_to_db(config)
     except ObjectDoesNotExist, e:
         self.assertEqual(
             "Output matching query does not exist.", e.args[0])
Beispiel #6
0
 def test_write_map_data_to_db_with_hazard_data(self):
     """
     extract_hazardmap_data() is called for hazard maps.
     """
     config = {
         "key": "78", "layer": "78-hazardmap-0.01-quantile-0.25",
         "output": "tests/78",
         "path": "tests/data/hazardmap-0.1-quantile-0.25.xml",
         "type": "hazard"}
     with mock.patch("bin.map_transformer.extract_hazardmap_data") as mf:
         mf.return_value = []
         write_map_data_to_db(config)
         self.assertEqual(1, mf.call_count)
         args, _ = mf.call_args
         self.assertEqual((config,), args)
 def test_write_map_data_to_db_with_hazard_data(self):
     """
     extract_hazardmap_data() is called for hazard maps.
     """
     config = {
         "key": "78", "layer": "78-hazardmap-0.01-quantile-0.25",
         "output": "tests/78",
         "path": "tests/data/hazardmap-0.1-quantile-0.25.xml",
         "type": "hazard"}
     with mock.patch("bin.map_transformer.extract_hazardmap_data") as mf:
         mf.return_value = []
         write_map_data_to_db(config)
         self.assertEqual(1, mf.call_count)
         args, _ = mf.call_args
         self.assertEqual((config,), args)
    def test_write_map_data_to_db_results_with_hazard_map(self):
        """
        The write_map_data_to_db() return values are correct for hazard maps.
        """
        expected_hazard_data = [
            ([-121.8, 37.9], 1.23518683436),
            ([-122.0, 37.5], 1.19244541041),
            ([-122.1, 38.0], 1.1905288226)]

        def coords(idx):
            """Access the point coordinates."""
            return tuple(expected_hazard_data[idx][0])

        def value(idx):
            """Access the hazard value."""
            return view_utils.round_float(expected_hazard_data[idx][1])

        hazard_map = self.setup_output(output_type="hazard_map")
        self.job_to_tear_down = hazard_map.oq_job
        config = {
            "key": "%s" % hazard_map.id,
            "layer": "78-hazardmap-0.01-quantile-0.25",
            "output": "tests/78",
            "path": "tests/data/hazardmap-0.1-quantile-0.25.xml",
            "type": "hazard"}
        db_key, minimum, maximum = write_map_data_to_db(config)
        self.assertEqual(config["key"], db_key)
        self.assertEqual(
            min(value(idx) for idx in range(len(expected_hazard_data))),
            view_utils.round_float(minimum))
        self.assertEqual(
            max(value(idx) for idx in range(len(expected_hazard_data))),
            view_utils.round_float(maximum))
    def test_write_map_data_to_db_results_with_hazard_map(self):
        """
        The write_map_data_to_db() return values are correct for hazard maps.
        """
        expected_hazard_data = [([-121.8, 37.9], 1.23518683436),
                                ([-122.0, 37.5], 1.19244541041),
                                ([-122.1, 38.0], 1.1905288226)]

        def coords(idx):
            """Access the point coordinates."""
            return tuple(expected_hazard_data[idx][0])

        def value(idx):
            """Access the hazard value."""
            return view_utils.round_float(expected_hazard_data[idx][1])

        hazard_map = self.setup_output(output_type="hazard_map")
        self.job_to_tear_down = hazard_map.oq_job
        config = {
            "key": "%s" % hazard_map.id,
            "layer": "78-hazardmap-0.01-quantile-0.25",
            "output": "tests/78",
            "path": "tests/data/hazardmap-0.1-quantile-0.25.xml",
            "type": "hazard"
        }
        db_key, minimum, maximum = write_map_data_to_db(config)
        self.assertEqual(config["key"], db_key)
        self.assertEqual(
            min(value(idx) for idx in range(len(expected_hazard_data))),
            view_utils.round_float(minimum))
        self.assertEqual(
            max(value(idx) for idx in range(len(expected_hazard_data))),
            view_utils.round_float(maximum))
 def test_write_map_data_to_db_with_loss_hazard_mismatch(self):
     """
     Writing loss data for a hazard map results in an AssertionError.
     """
     hazard_map = self.setup_output()
     self.job_to_tear_down = hazard_map.oq_job
     config = {
         "key": "%s" % hazard_map.id,
         "layer": "77-lossmap-0.01-quantile-0.25", "output": "tests/77",
         "path": "tests/data/loss-map-0fcfdbc7.xml", "type": "loss"}
     try:
         write_map_data_to_db(config)
     except AssertionError, e:
         self.assertEqual(
             "Invalid map type ('hazard_map') for the given data ('loss')",
             e.args[0])
    def test_write_map_data_to_db_results_with_loss_map(self):
        """
        The write_map_data_to_db() return values are correct for loss maps.
        """
        expected_loss_data = [
            ([-118.229726, 34.050622], 16.04934554846202),
            ([-118.241243, 34.061557], 629.323267954),
            ([-118.245388, 34.055984], 245.9928520658)]

        def coords(idx):
            """Access the point coordinates."""
            return tuple(expected_loss_data[idx][0])

        def value(idx):
            """Access the loss value."""
            return view_utils.round_float(expected_loss_data[idx][1])

        loss_map = self.setup_output(output_type="loss_map")
        self.job_to_tear_down = loss_map.oq_job
        config = {
            "key": "%s" % loss_map.id,
            "layer": "77-lossmap-0.01-quantile-0.25",
            "output": "tests/77", "path": "tests/data/loss-map-0fcfdbc7.xml",
            "type": "loss"}
        db_key, minimum, maximum = write_map_data_to_db(config)
        self.assertEqual(config["key"], db_key)
        self.assertEqual(
            min(value(idx) for idx in range(len(expected_loss_data))),
            view_utils.round_float(minimum))
        self.assertEqual(
            max(value(idx) for idx in range(len(expected_loss_data))),
            view_utils.round_float(maximum))
    def test_write_map_data_to_db_results_with_loss_map(self):
        """
        The write_map_data_to_db() return values are correct for loss maps.
        """
        expected_loss_data = [([-118.229726, 34.050622], 16.04934554846202),
                              ([-118.241243, 34.061557], 629.323267954),
                              ([-118.245388, 34.055984], 245.9928520658)]

        def coords(idx):
            """Access the point coordinates."""
            return tuple(expected_loss_data[idx][0])

        def value(idx):
            """Access the loss value."""
            return view_utils.round_float(expected_loss_data[idx][1])

        loss_map = self.setup_output(output_type="loss_map")
        self.job_to_tear_down = loss_map.oq_job
        config = {
            "key": "%s" % loss_map.id,
            "layer": "77-lossmap-0.01-quantile-0.25",
            "output": "tests/77",
            "path": "tests/data/loss-map-0fcfdbc7.xml",
            "type": "loss"
        }
        db_key, minimum, maximum = write_map_data_to_db(config)
        self.assertEqual(config["key"], db_key)
        self.assertEqual(
            min(value(idx) for idx in range(len(expected_loss_data))),
            view_utils.round_float(minimum))
        self.assertEqual(
            max(value(idx) for idx in range(len(expected_loss_data))),
            view_utils.round_float(maximum))
 def test_write_map_data_to_db_with_invalid_output_key(self):
     """
     Not being able to find the output record results in an
     ObjectDoesNotExist error.
     """
     config = {
         "key": "-111",
         "layer": "77-lossmap-0.01-quantile-0.25",
         "output": "tests/77",
         "path": "tests/data/loss-map-0fcfdbc7.xml",
         "type": "loss"
     }
     try:
         write_map_data_to_db(config)
     except ObjectDoesNotExist, e:
         self.assertEqual("Output matching query does not exist.",
                          e.args[0])
 def test_write_map_data_to_db_with_hazard_loss_mismatch(self):
     """
     Writing hazard data for a loss map results in an AssertionError.
     """
     loss_map = self.setup_output(output_type="loss_map")
     self.job_to_tear_down = loss_map.oq_job
     config = {
         "key": "%s" % loss_map.id,
         "layer": "78-hazardmap-0.01-quantile-0.25",
         "output": "tests/78",
         "path": "tests/data/hazardmap-0.1-quantile-0.25.xml",
         "type": "hazard"}
     try:
         write_map_data_to_db(config)
     except AssertionError, e:
         self.assertEqual(
             "Invalid map type ('loss_map') for the given data ('hazard')",
             e.args[0])
 def test_write_map_data_to_db_with_loss_data(self):
     """
     extract_lossmap_data() and calculate_loss_data() are called for loss
     maps.
     """
     config = {
         "key": "77", "layer": "77-lossmap-0.01-quantile-0.25",
         "output": "tests/77", "path": "tests/data/loss-map-0fcfdbc7.xml",
         "type": "loss"}
     with mock.patch("bin.map_transformer.extract_lossmap_data") as eld:
         with mock.patch("bin.map_transformer.calculate_loss_data") as cld:
             cld.return_value = eld.return_value = []
             write_map_data_to_db(config)
             self.assertEqual(1, eld.call_count)
             args, _ = eld.call_args
             self.assertEqual((config,), args)
             self.assertEqual(1, cld.call_count)
             args, _ = cld.call_args
             self.assertEqual(([],), args)
 def test_write_map_data_to_db_with_loss_hazard_mismatch(self):
     """
     Writing loss data for a hazard map results in an AssertionError.
     """
     hazard_map = self.setup_output()
     self.job_to_tear_down = hazard_map.oq_job
     config = {
         "key": "%s" % hazard_map.id,
         "layer": "77-lossmap-0.01-quantile-0.25",
         "output": "tests/77",
         "path": "tests/data/loss-map-0fcfdbc7.xml",
         "type": "loss"
     }
     try:
         write_map_data_to_db(config)
     except AssertionError, e:
         self.assertEqual(
             "Invalid map type ('hazard_map') for the given data ('loss')",
             e.args[0])
 def test_write_map_data_to_db_with_hazard_loss_mismatch(self):
     """
     Writing hazard data for a loss map results in an AssertionError.
     """
     loss_map = self.setup_output(output_type="loss_map")
     self.job_to_tear_down = loss_map.oq_job
     config = {
         "key": "%s" % loss_map.id,
         "layer": "78-hazardmap-0.01-quantile-0.25",
         "output": "tests/78",
         "path": "tests/data/hazardmap-0.1-quantile-0.25.xml",
         "type": "hazard"
     }
     try:
         write_map_data_to_db(config)
     except AssertionError, e:
         self.assertEqual(
             "Invalid map type ('loss_map') for the given data ('hazard')",
             e.args[0])
Beispiel #18
0
 def test_write_map_data_to_db_with_loss_data(self):
     """
     extract_lossmap_data() and calculate_loss_data() are called for loss
     maps.
     """
     config = {
         "key": "77", "layer": "77-lossmap-0.01-quantile-0.25",
         "output": "tests/77", "path": "tests/data/loss-map-0fcfdbc7.xml",
         "type": "loss"}
     with mock.patch("bin.map_transformer.extract_lossmap_data") as eld:
         with mock.patch("bin.map_transformer.calculate_loss_data") as cld:
             cld.return_value = eld.return_value = []
             write_map_data_to_db(config)
             self.assertEqual(1, eld.call_count)
             args, _ = eld.call_args
             self.assertEqual((config,), args)
             self.assertEqual(1, cld.call_count)
             args, _ = cld.call_args
             self.assertEqual(([],), args)
 def test_write_map_data_to_db_with_no_loss_data(self):
     """
     In case that no loss map data is found, a (map_db_key, 0.0, 0.0)
     triple will be returned.
     """
     config = {
         "key": "77", "layer": "77-lossmap-0.01-quantile-0.25",
         "output": "tests/77", "path": "tests/data/loss-map-0fcfdbc7.xml",
         "type": "loss"}
     with mock.patch("bin.map_transformer.extract_lossmap_data") as eld:
         with mock.patch("bin.map_transformer.calculate_loss_data") as cld:
             cld.return_value = eld.return_value = []
             results = write_map_data_to_db(config)
             self.assertEqual((config["key"], 0.0, 0.0), results)
 def test_write_map_data_to_db_with_no_hazard_data(self):
     """
     In case that no hazard map data is found, a (map_db_key, 0.0, 0.0)
     triple will be returned.
     """
     config = {
         "key": "78", "layer": "78-hazardmap-0.01-quantile-0.25",
         "output": "tests/78",
         "path": "tests/data/hazardmap-0.1-quantile-0.25.xml",
         "type": "hazard"}
     with mock.patch("bin.map_transformer.extract_hazardmap_data") as mf:
         mf.return_value = []
         results = write_map_data_to_db(config)
         self.assertEqual((config["key"], 0.0, 0.0), results)
Beispiel #21
0
 def test_write_map_data_to_db_with_no_hazard_data(self):
     """
     In case that no hazard map data is found, a (map_db_key, 0.0, 0.0)
     triple will be returned.
     """
     config = {
         "key": "78", "layer": "78-hazardmap-0.01-quantile-0.25",
         "output": "tests/78",
         "path": "tests/data/hazardmap-0.1-quantile-0.25.xml",
         "type": "hazard"}
     with mock.patch("bin.map_transformer.extract_hazardmap_data") as mf:
         mf.return_value = []
         results = write_map_data_to_db(config)
         self.assertEqual((config["key"], 0.0, 0.0), results)
Beispiel #22
0
 def test_write_map_data_to_db_with_no_loss_data(self):
     """
     In case that no loss map data is found, a (map_db_key, 0.0, 0.0)
     triple will be returned.
     """
     config = {
         "key": "77", "layer": "77-lossmap-0.01-quantile-0.25",
         "output": "tests/77", "path": "tests/data/loss-map-0fcfdbc7.xml",
         "type": "loss"}
     with mock.patch("bin.map_transformer.extract_lossmap_data") as eld:
         with mock.patch("bin.map_transformer.calculate_loss_data") as cld:
             cld.return_value = eld.return_value = []
             results = write_map_data_to_db(config)
             self.assertEqual((config["key"], 0.0, 0.0), results)