diff --git a/skais/ais/ais_points.py b/skais/ais/ais_points.py
index 3d5758ebd99e17e446a472deef06950705e10720..34b0d8e06f829c800b06a92ce5b4930d94047862 100644
--- a/skais/ais/ais_points.py
+++ b/skais/ais/ais_points.py
@@ -44,6 +44,9 @@ class AISPoints:
     def normalize(self, min_max_features=(), standardization_features=(), third_quartile_features=(),
                   divide_by_value=(), divide_by_max=(), normalization_dict=None):
         if normalization_dict is None:
+            if len(min_max_features) == len(standardization_features) == len(third_quartile_features) == len(
+                    divide_by_value) == len(divide_by_max) == 0:
+                raise ValueError("All arguments are empty")
             normalization_dict = {}
             for f in min_max_features:
                 if f in self.df.columns:
@@ -94,7 +97,7 @@ class AISPoints:
                     normalization_dict[f] = {'type': 'divide by max',
                                              'maximum': maximum}
                     self.df[f] = self.df[f] / maximum
-        else:
+        elif type(normalization_dict) == dict:
             for f in normalization_dict:
                 if f in self.df.columns:
                     if normalization_dict[f]['type'] == 'min-max':
@@ -125,6 +128,8 @@ class AISPoints:
                         raise ValueError(
                             f"{normalization_dict[f]['type']} not a valid normalization method. Must be on of [min-max,"
                             f" standardization, 3rd quartile, divide by value]")
+        else:
+            raise ValueError("normalization_dict not a dictionary")
         return normalization_dict
 
     # New features
diff --git a/skais/tests/ais/test_ais_points.py b/skais/tests/ais/test_ais_points.py
index 330f039bd69e5c734480f6ed8bd6a687737364e4..5930a9c853330f2c8bb1d5939d33d0320385a7cc 100644
--- a/skais/tests/ais/test_ais_points.py
+++ b/skais/tests/ais/test_ais_points.py
@@ -216,6 +216,40 @@ class TestAISPositions(unittest.TestCase):
         pd.testing.assert_frame_equal(expected.reset_index(drop=True), result.reset_index(drop=True),
                                       check_exact=False, rtol=0.05)
 
+    def test_normalize_wrong_arguments_1(self):
+        ais_points = AISPoints(pd.DataFrame(
+            {
+                "cog": [i for i in range(0, 359, 10)],
+                "heading": [180 for _ in range(0, 359, 10)]
+            }
+        )
+        )
+
+        with self.assertRaises(ValueError):
+            ais_points.normalize(normalization_dict=None)
+
+    def test_normalize_wrong_arguments_2(self):
+        ais_points = AISPoints(pd.DataFrame(
+            {
+                "cog": [i for i in range(0, 359, 10)],
+                "heading": [180 for _ in range(0, 359, 10)]
+            }
+        )
+        )
+        with self.assertRaises(ValueError):
+            ais_points.normalize(normalization_dict=10)
+
+    def test_normalize_wrong_arguments_3(self):
+        ais_points = AISPoints(pd.DataFrame(
+            {
+                "cog": [i for i in range(0, 359, 10)],
+                "heading": [180 for _ in range(0, 359, 10)]
+            }
+        )
+        )
+        with self.assertRaises(ValueError):
+            ais_points.normalize(normalization_dict=[0, 1, 2, 3, 4])
+
     def test_compute_drift(self):
         ais_points = AISPoints(pd.DataFrame(
             {