diff --git a/src/main/java/ch/hepia/numeric/Vector.java b/src/main/java/ch/hepia/numeric/Vector.java index 7ed7bf3ea1af995eb59e8cd2c117fd432323b5b3..eb9d6946a9d1c4ae52c01e8d41b5c26dcb0c633b 100644 --- a/src/main/java/ch/hepia/numeric/Vector.java +++ b/src/main/java/ch/hepia/numeric/Vector.java @@ -189,7 +189,27 @@ final public class Vector { public static double norms(List<Vector> vs) { return Vector.sum(vs).norm(); } - + // FILL NEW VERSION : + public static SubVec fill(int nbr){ + return new Vector().new SubVec(nbr); + } + protected class SubVec{ + private int nbre; + protected SubVec(int nbre){ + this.nbre = nbre; + } + private int getNbre(){ + return this.nbre; + } + + public Vector withValue(Double alpha){ + List<Double> newVec = new ArrayList<>(); + for (int i = 0; i < this.getNbre();i++){ + newVec.add(alpha); + } + return new Vector(newVec); + } + } @Override public String toString() { diff --git a/src/test/java/ch/hepia/numeric/AppTest.java b/src/test/java/ch/hepia/numeric/AppTest.java index e5f5072e911f828b139301cc7ccb8ebff4d1d728..cce66c1b6699eafe8cafcbc487385c9c7da4326d 100644 --- a/src/test/java/ch/hepia/numeric/AppTest.java +++ b/src/test/java/ch/hepia/numeric/AppTest.java @@ -137,4 +137,11 @@ class VectorTest { assertEquals(v.slice(4,2), Transposed.empty()); assertEquals(v.removed(2), Transposed.of(1.0, 2.0, 4.0, 5.0)); } +// Vector V2 functions test : + @Test + void vectorfillv2() { + assertEquals(Vector.fill(3).withValue(1.7), Vector.of(1.7, 1.7, 1.7)); + assertEquals(Vector.fill(4).withValue(1.5), Vector.of(1.5, 1.5, 1.5, 1.5)); + assertEquals(Vector.fill(2).withValue(1.0), Vector.of(1.0, 1.0)); + } }