コード例 #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"])
コード例 #2
0
ファイル: test_location.py プロジェクト: haniehsaeedi/obis-qc
 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"])
コード例 #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"])
コード例 #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)
コード例 #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"])
コード例 #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)
コード例 #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"])
コード例 #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"])
コード例 #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"])
コード例 #10
0
ファイル: test_location.py プロジェクト: haniehsaeedi/obis-qc
 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"])
コード例 #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"])
コード例 #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"])
コード例 #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"])
コード例 #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"])