diff --git a/src/main/org/insa/graph/Path.java b/src/main/org/insa/graph/Path.java index 22e7a1f..d2c81a1 100644 --- a/src/main/org/insa/graph/Path.java +++ b/src/main/org/insa/graph/Path.java @@ -176,7 +176,7 @@ public class Path { * @return Number of nodes in this path. */ public int size() { - return 1 + this.arcs.size(); + return isEmpty() ? 0 : 1 + this.arcs.size(); } /** diff --git a/src/test/org/insa/graph/PathTest.java b/src/test/org/insa/graph/PathTest.java index 52ab860..e9b686a 100644 --- a/src/test/org/insa/graph/PathTest.java +++ b/src/test/org/insa/graph/PathTest.java @@ -93,6 +93,16 @@ public class PathTest { assertFalse(longLoopPath.isEmpty()); assertFalse(invalidPath.isEmpty()); } + + @Test + public void testSize() { + assertEquals(emptyPath.size(), 0); + assertEquals(singleNodePath.size(), 1); + assertEquals(shortPath.size(), 4); + assertEquals(longPath.size(), 5); + assertEquals(loopPath.size(), 5); + assertEquals(longLoopPath.size(), 10); + } @Test public void testIsValid() {