diff --git a/tests/test_flatland_core_grid_grid_utils.py b/tests/test_flatland_core_grid_grid_utils.py
index c2ca47eb68f289685e53cf405fd72480b7711770..61693c4f6376efe044ce9da37e5550d51f8fdfd6 100644
--- a/tests/test_flatland_core_grid_grid_utils.py
+++ b/tests/test_flatland_core_grid_grid_utils.py
@@ -1,13 +1,19 @@
+import numpy as np
+
 from flatland.core.grid.grid_utils import Vec2dOperations as Vec2d
 
+machine_epsilon = 10.0 * np.finfo(float).eps
 
-def test_vec2d_add():
+
+def test_vec2d_is_equal():
     node_a = (1, 2)
-    node_b = (2, 3)
-    res_1 = Vec2d.add(node_a, node_b)
-    res_2 = Vec2d.add(node_b, node_a)
-    assert res_1 == res_2
-    assert res_1 == (3, 5)
+    node_b = (2, 4)
+    node_c = (1, 2)
+    res_1 = Vec2d.is_equal(node_a, node_b)
+    res_2 = Vec2d.is_equal(node_a, node_c)
+
+    assert not res_1
+    assert res_2
 
 
 def test_vec2d_subtract():
@@ -20,21 +26,79 @@ def test_vec2d_subtract():
     assert res_2 == (1, 2)
 
 
+def test_vec2d_add():
+    node_a = (1, 2)
+    node_b = (2, 3)
+    res_1 = Vec2d.add(node_a, node_b)
+    res_2 = Vec2d.add(node_b, node_a)
+    assert res_1 == res_2
+    assert res_1 == (3, 5)
+
+
 def test_vec2d_make_orthogonal():
     node_a = (1, 2)
     res_1 = Vec2d.make_orthogonal(node_a)
     assert res_1 == (2, -1)
 
 
-def test_vec2d_subtract():
+def test_vec2d_euclidean_distance():
+    node_a = (3, -7)
+    node_0 = (0, 0)
+    assert Vec2d.get_euclidean_distance(node_a, node_0) == Vec2d.get_norm(node_a)
+
+
+def test_vec2d_manhattan_distance():
+    node_a = (3, -7)
+    node_0 = (0, 0)
+    assert Vec2d.get_manhattan_distance(node_a, node_0) == 3 + 7
+
+
+def test_vec2d_chebyshev_distance():
+    node_a = (3, -7)
+    node_0 = (0, 0)
+    assert Vec2d.get_chebyshev_distance(node_a, node_0) == 7
+    node_b = (-3, 7)
+    node_0 = (0, 0)
+    assert Vec2d.get_chebyshev_distance(node_b, node_0) == 7
+    node_c = (3, 7)
+    node_0 = (0, 0)
+    assert Vec2d.get_chebyshev_distance(node_c, node_0) == 7
+
+
+def test_vec2d_norm():
     node_a = (1, 2)
-    node_b = (2, 4)
-    node_c = (1, 2)
-    res_1 = Vec2d.is_equal(node_a, node_b)
-    res_2 = Vec2d.is_equal(node_a, node_c)
+    node_b = (1, -2)
+    res_1 = Vec2d.get_norm(node_a)
+    res_2 = Vec2d.get_norm(node_b)
+    assert np.sqrt(1 * 1 + 2 * 2) == res_1
+    assert np.sqrt(1 * 1 + (-2) * -(2)) == res_2
 
-    assert not res_1
-    assert res_2
+
+def test_vec2d_normalize():
+    node_a = (1, 2)
+    node_b = (1, -2)
+    res_1 = Vec2d.normalize(node_a)
+    res_2 = Vec2d.normalize(node_b)
+    assert (1.0 - Vec2d.get_norm(res_1)) < machine_epsilon
+    assert (1.0 - Vec2d.get_norm(res_2)) < machine_epsilon
+
+
+def test_vec2d_scale():
+    node_a = (1, 2)
+    node_b = (1, -2)
+    res_1 = Vec2d.scale(node_a, 2)
+    res_2 = Vec2d.scale(node_b, -2.5)
+    assert res_1 == (2, 4)
+    assert res_2 == (-2.5, 5)
+
+
+def test_vec2d_round():
+    node_a = (-1.95, -2.2)
+    node_b = (1.95, 2.2)
+    res_1 = Vec2d.round(node_a)
+    res_2 = Vec2d.round(node_b)
+    assert res_1 == (-2, -2)
+    assert res_2 == (2, 2)
 
 
 def test_vec2d_ceil():
@@ -64,11 +128,25 @@ def test_vec2d_bound():
     assert res_2 == (2, 2.2)
 
 
-def test_vec2d_normalize():
-    node_a = (1, 2)
-    node_b = (4, 12)
-    res_1 = Vec2d.normalize(node_a)
-    res_2 = Vec2d.normalize(node_b)
-    eps = 0.000000000001
-    assert 1.0 - Vec2d.get_norm(res_1) < eps
-    assert 1.0 - Vec2d.get_norm(res_2) < eps
+def test_vec2d_rotate():
+    node_a = (-1.95, -2.2)
+    res_1 = Vec2d.rotate(node_a, -90.0)
+    res_2 = Vec2d.rotate(node_a, 0.0)
+    res_3 = Vec2d.rotate(node_a, 90.0)
+    res_4 = Vec2d.rotate(node_a, 180.0)
+    res_5 = Vec2d.rotate(node_a, 270.0)
+    res_6 = Vec2d.rotate(node_a, 30.0)
+
+    res_1 = (Vec2d.get_norm(Vec2d.subtract(res_1, (-2.2, 1.95))))
+    res_2 = (Vec2d.get_norm(Vec2d.subtract(res_2, (-1.95, -2.2))))
+    res_3 = (Vec2d.get_norm(Vec2d.subtract(res_3, (2.2, -1.95))))
+    res_4 = (Vec2d.get_norm(Vec2d.subtract(res_4, (1.95, 2.2))))
+    res_5 = (Vec2d.get_norm(Vec2d.subtract(res_5, (-2.2, 1.95))))
+    res_6 = (Vec2d.get_norm(Vec2d.subtract(res_6, (-0.5887495373796556, -2.880255888325765))))
+
+    assert res_1 < machine_epsilon
+    assert res_2 < machine_epsilon
+    assert res_3 < machine_epsilon
+    assert res_4 < machine_epsilon
+    assert res_5 < machine_epsilon
+    assert res_6 < machine_epsilon