Exemple #1
0
 def test_depth_out_of_range_invalid(self):
     records = [{"id": 0, "minimumDepthInMeters": "NA"}]
     results = location.check(records)
     self.assertNotIn("minimumDepthInMeters", results[0]["annotations"])
     self.assertIn(Flag.NO_DEPTH.value, results[0]["flags"])
     self.assertNotIn(Flag.DEPTH_OUT_OF_RANGE.value, results[0]["flags"])
     self.assertIn("minimumDepthInMeters", results[0]["invalid"])
 def test_depth_exceeds_bath(self):
     records = [{
         "id": 0,
         "decimalLongitude": 2.1,
         "decimalLatitude": 51.3,
         "minimumDepthInMeters": 1000
     }, {
         "id": 1,
         "decimalLongitude": 2.1,
         "decimalLatitude": 51.3,
         "minimumDepthInMeters": 10
     }, {
         "id": 2,
         "decimalLongitude": 2.1,
         "decimalLatitude": 51.3,
         "minimumDepthInMeters": 10,
         "maximumDepthInMeters": 1000
     }]
     results = location.check(records, xylookup=True)
     self.assertEqual(results[0]["annotations"]["minimumDepthInMeters"],
                      1000)
     self.assertNotIn(Flag.NO_DEPTH.value, results[0]["flags"])
     self.assertIn(Flag.DEPTH_EXCEEDS_BATH.value, results[0]["flags"])
     self.assertEqual(results[1]["annotations"]["minimumDepthInMeters"], 10)
     self.assertNotIn(Flag.NO_DEPTH.value, results[1]["flags"])
     self.assertNotIn(Flag.DEPTH_EXCEEDS_BATH.value, results[1]["flags"])
     self.assertEqual(results[2]["annotations"]["minimumDepthInMeters"], 10)
     self.assertNotIn(Flag.NO_DEPTH.value, results[2]["flags"])
     self.assertIn(Flag.DEPTH_EXCEEDS_BATH.value, results[2]["flags"])
Exemple #3
0
 def test_grids(self):
     records = [
         {"decimalLongitude": 2.1, "decimalLatitude": 51.3}
     ]
     results = location.check(records, xylookup=True)
     self.assertIn("bathymetry", results[0]["annotations"])
     self.assertIn("sst", results[0]["annotations"])
     self.assertIn("sss", results[0]["annotations"])
Exemple #4
0
 def test_depth_calculation(self):
     records = [
         {"minimumDepthInMeters": 2, "maximumDepthInMeters": 10},
         {"minimumDepthInMeters": 2},
     ]
     results = location.check(records)
     self.assertEqual(results[0]["annotations"]["depth"], 6)
     self.assertEqual(results[1]["annotations"]["depth"], 2)
Exemple #5
0
 def test_zero_coordinates(self):
     records = [
         {"decimalLongitude": 0, "decimalLatitude": 0},
         {"decimalLongitude": 1, "decimalLatitude": 0}
     ]
     results = location.check(records)
     self.assertIn(Flag.ZERO_COORD.value, results[0]["flags"])
     self.assertNotIn(Flag.ZERO_COORD.value, results[1]["flags"])
Exemple #6
0
 def test_areas(self):
     records = [
         {"decimalLongitude": 2.1, "decimalLatitude": 51.3},
         {"decimalLongitude": 7.3, "decimalLatitude": 50.3}
     ]
     results = location.check(records, xylookup=True)
     self.assertTrue(len(results[0]["annotations"]["areas"]) > 0)
     self.assertTrue(len(results[1]["annotations"]["areas"]) == 0)
Exemple #7
0
 def test_uncertainty(self):
     records = [
         {"coordinateUncertaintyInMeters": 100, "decimalLongitude": 1, "decimalLatitude": 0},
         {"decimalLongitude": 1, "decimalLatitude": 0}
     ]
     results = location.check(records)
     self.assertNotIn("coordinateUncertaintyInMeters", results[0]["missing"])
     self.assertTrue(results[0]["annotations"]["coordinateUncertaintyInMeters"] == 100)
     self.assertIn("coordinateUncertaintyInMeters", results[1]["missing"])
Exemple #8
0
 def test_invalid_coordinates(self):
     records = [
         {"decimalLongitude": 2.1, "decimalLatitude": "abc"}
     ]
     results = location.check(records)
     self.assertEqual(results[0]["annotations"]["decimalLongitude"], 2.1)
     self.assertIn("decimalLatitude", results[0]["invalid"])
     self.assertIn(Flag.NO_COORD.value, results[0]["flags"])
     self.assertTrue(results[0]["dropped"])
Exemple #9
0
 def test_depth_min_max(self):
     records = [
         {"minimumDepthInMeters": 10, "maximumDepthInMeters": 2}
     ]
     results = location.check(records)
     self.assertEqual(results[0]["annotations"]["minimumDepthInMeters"], 10)
     self.assertEqual(results[0]["annotations"]["maximumDepthInMeters"], 2)
     self.assertNotIn(Flag.NO_DEPTH.value, results[0]["flags"])
     self.assertIn(Flag.MIN_DEPTH_EXCEEDS_MAX.value, results[0]["flags"])
Exemple #10
0
 def test_coordinates_out_of_range(self):
     records = [{"id": 0, "decimalLongitude": -200, "decimalLatitude": 100}]
     results = location.check(records)
     self.assertNotIn("decimalLongitude", results[0]["annotations"])
     self.assertNotIn("decimalLatitude", results[0]["annotations"])
     self.assertIn("decimalLongitude", results[0]["invalid"])
     self.assertIn("decimalLatitude", results[0]["invalid"])
     self.assertIn(Flag.NO_COORD.value, results[0]["flags"])
     self.assertIn(Flag.LON_OUT_OF_RANGE.value, results[0]["flags"])
     self.assertIn(Flag.LAT_OUT_OF_RANGE.value, results[0]["flags"])
     self.assertTrue(results[0]["dropped"])
Exemple #11
0
 def test_shoredistance(self):
     records = [
         {"decimalLongitude": 2.1, "decimalLatitude": 51.3},
         {"decimalLongitude": 7.3, "decimalLatitude": 50.3}
     ]
     results = location.check(records, xylookup=True)
     self.assertIn("shoredistance", results[0]["annotations"])
     self.assertTrue(results[0]["annotations"]["shoredistance"] > 0)
     self.assertIn("shoredistance", results[1]["annotations"])
     self.assertTrue(results[1]["annotations"]["shoredistance"] < 0)
     self.assertIn(Flag.ON_LAND.value, results[1]["flags"])
Exemple #12
0
 def test_depth_parsing(self):
     records = [
         {"minimumDepthInMeters": "2", "maximumDepthInMeters": "10"},
         {"minimumDepthInMeters": 2, "maximumDepthInMeters": 10}
     ]
     results = location.check(records)
     self.assertEqual(results[0]["annotations"]["minimumDepthInMeters"], 2)
     self.assertEqual(results[0]["annotations"]["maximumDepthInMeters"], 10)
     self.assertNotIn(Flag.NO_DEPTH.value, results[0]["flags"])
     self.assertEqual(results[1]["annotations"]["minimumDepthInMeters"], 2)
     self.assertEqual(results[1]["annotations"]["maximumDepthInMeters"], 10)
     self.assertNotIn(Flag.NO_DEPTH.value, results[1]["flags"])
Exemple #13
0
 def test_location_parsing(self):
     records = [
         {"decimalLongitude": "2.1", "decimalLatitude": "51.3"},
         {"decimalLongitude": 2.1, "decimalLatitude": 51.3}
     ]
     results = location.check(records)
     self.assertEqual(results[0]["annotations"]["decimalLongitude"], 2.1)
     self.assertEqual(results[0]["annotations"]["decimalLatitude"], 51.3)
     self.assertNotIn(Flag.NO_COORD.value, results[0]["flags"])
     self.assertFalse(results[0]["dropped"])
     self.assertEqual(results[1]["annotations"]["decimalLongitude"], 2.1)
     self.assertEqual(results[1]["annotations"]["decimalLatitude"], 51.3)
     self.assertNotIn(Flag.NO_COORD.value, results[1]["flags"])
     self.assertFalse(results[1]["dropped"])
Exemple #14
0
 def test_missing_coordinates(self):
     records = [
         {"decimalLatitude": 51.3},
         {"decimalLongitude": 2.1},
         {}
     ]
     results = location.check(records)
     self.assertEqual(results[0]["annotations"]["decimalLatitude"], 51.3)
     self.assertIn("decimalLongitude", results[0]["missing"])
     self.assertIn(Flag.NO_COORD.value, results[0]["flags"])
     self.assertTrue(results[0]["dropped"])
     self.assertEqual(results[1]["annotations"]["decimalLongitude"], 2.1)
     self.assertIn(Flag.NO_COORD.value, results[1]["flags"])
     self.assertTrue(results[1]["dropped"])
     self.assertIn("decimalLatitude", results[1]["missing"])
     self.assertIn(Flag.NO_COORD.value, results[2]["flags"])
     self.assertTrue(results[2]["dropped"])
     self.assertIn("decimalLongitude", results[2]["missing"])
     self.assertIn("decimalLatitude", results[2]["missing"])