Procházet zdrojové kódy

saddle-points: update API, list -> set

Order of identified saddle points is not important.
Stuart Kent před 9 roky
rodič
revize
a69d677f1f

+ 5
- 4
exercises/saddle-points/src/example/java/Matrix.java Zobrazit soubor

1
-import java.util.ArrayList;
2
 import java.util.Collections;
1
 import java.util.Collections;
2
+import java.util.HashSet;
3
 import java.util.List;
3
 import java.util.List;
4
+import java.util.Set;
4
 
5
 
5
 final class Matrix {
6
 final class Matrix {
6
 
7
 
10
     this.values = values;
11
     this.values = values;
11
   }
12
   }
12
 
13
 
13
-  List<MatrixCoordinate> getSaddlePoints() {
14
-    final List<MatrixCoordinate> result = new ArrayList<>();
14
+  Set<MatrixCoordinate> getSaddlePoints() {
15
+    final Set<MatrixCoordinate> result = new HashSet<>();
15
 
16
 
16
     if (values.isEmpty()) {
17
     if (values.isEmpty()) {
17
       return result;
18
       return result;
38
     return values.stream()
39
     return values.stream()
39
         .map(row -> row.get(column))
40
         .map(row -> row.get(column))
40
         .min(Integer::compareTo)
41
         .min(Integer::compareTo)
41
-        .get();
42
+        .orElseThrow(() -> new IllegalArgumentException("Column cannot be empty"));
42
   }
43
   }
43
 
44
 
44
 }
45
 }

+ 7
- 10
exercises/saddle-points/src/test/java/MatrixTest.java Zobrazit soubor

1
 import org.junit.Ignore;
1
 import org.junit.Ignore;
2
 import org.junit.Test;
2
 import org.junit.Test;
3
 
3
 
4
-import java.util.ArrayList;
5
-import java.util.Arrays;
6
-import java.util.Collections;
7
-import java.util.List;
4
+import java.util.*;
8
 
5
 
9
 import static org.junit.Assert.assertEquals;
6
 import static org.junit.Assert.assertEquals;
10
 
7
 
18
             Arrays.asList(6, 6, 7)
15
             Arrays.asList(6, 6, 7)
19
         ));
16
         ));
20
 
17
 
21
-        List<MatrixCoordinate> expectedSaddlePoints = Collections.singletonList(new MatrixCoordinate(1, 0));
18
+        Set<MatrixCoordinate> expectedSaddlePoints = Collections.singleton(new MatrixCoordinate(1, 0));
22
 
19
 
23
         assertEquals(expectedSaddlePoints, matrix.getSaddlePoints());
20
         assertEquals(expectedSaddlePoints, matrix.getSaddlePoints());
24
     }
21
     }
28
     public void testCanIdentifyThatEmptyMatrixHasNoSaddlePoints() {
25
     public void testCanIdentifyThatEmptyMatrixHasNoSaddlePoints() {
29
         Matrix matrix = new Matrix(new ArrayList<>());
26
         Matrix matrix = new Matrix(new ArrayList<>());
30
 
27
 
31
-        List<MatrixCoordinate> expectedSaddlePoints = new ArrayList<>();
28
+        Set<MatrixCoordinate> expectedSaddlePoints = Collections.emptySet();
32
 
29
 
33
         assertEquals(expectedSaddlePoints, matrix.getSaddlePoints());
30
         assertEquals(expectedSaddlePoints, matrix.getSaddlePoints());
34
     }
31
     }
42
             Arrays.asList(2, 3, 1)
39
             Arrays.asList(2, 3, 1)
43
         ));
40
         ));
44
 
41
 
45
-        List<MatrixCoordinate> expectedSaddlePoints = new ArrayList<>();
42
+        Set<MatrixCoordinate> expectedSaddlePoints = Collections.emptySet();
46
 
43
 
47
         assertEquals(expectedSaddlePoints, matrix.getSaddlePoints());
44
         assertEquals(expectedSaddlePoints, matrix.getSaddlePoints());
48
     }
45
     }
56
             Arrays.asList(1, 5, 4)
53
             Arrays.asList(1, 5, 4)
57
         ));
54
         ));
58
 
55
 
59
-        List<MatrixCoordinate> expectedSaddlePoints = Arrays.asList(
56
+        Set<MatrixCoordinate> expectedSaddlePoints = new HashSet<>(Arrays.asList(
60
             new MatrixCoordinate(0, 1),
57
             new MatrixCoordinate(0, 1),
61
             new MatrixCoordinate(1, 1),
58
             new MatrixCoordinate(1, 1),
62
             new MatrixCoordinate(2, 1)
59
             new MatrixCoordinate(2, 1)
63
-        );
60
+        ));
64
 
61
 
65
         assertEquals(expectedSaddlePoints, matrix.getSaddlePoints());
62
         assertEquals(expectedSaddlePoints, matrix.getSaddlePoints());
66
     }
63
     }
74
             Arrays.asList(3, 2, 5)
71
             Arrays.asList(3, 2, 5)
75
         ));
72
         ));
76
 
73
 
77
-        List<MatrixCoordinate> expectedSaddlePoints = Collections.singletonList(new MatrixCoordinate(2, 2));
74
+        Set<MatrixCoordinate> expectedSaddlePoints = Collections.singleton(new MatrixCoordinate(2, 2));
78
 
75
 
79
         assertEquals(expectedSaddlePoints, matrix.getSaddlePoints());
76
         assertEquals(expectedSaddlePoints, matrix.getSaddlePoints());
80
     }
77
     }