feat: update structure
This commit is contained in:
46
cs2030s/labs/Lab8/Test6.java
Normal file
46
cs2030s/labs/Lab8/Test6.java
Normal file
@@ -0,0 +1,46 @@
|
||||
import cs2030s.fp.InfiniteList;
|
||||
|
||||
class Test6 {
|
||||
public static void main(String[] args) {
|
||||
CS2030STest i = new CS2030STest();
|
||||
|
||||
InfiniteList<Integer> numbers = InfiniteList.iterate(0, x -> x + 1);
|
||||
i.expectReturn(
|
||||
"InfiniteList.end().reduce(0, (x, y) -> x + y)",
|
||||
() -> InfiniteList.<Integer>end().reduce(0, (x, y) -> x + y), 0);
|
||||
i.expectReturn(
|
||||
"InfiniteList.iterate(0, x -> x + 1).limit(5).reduce(0, (x, y) -> x + y)",
|
||||
() -> numbers.limit(5).reduce(0, (x, y) -> x + y), 10);
|
||||
i.expectReturn(
|
||||
"InfiniteList.iterate(0, x -> x + 1).limit(0).reduce(0, (x, y) -> x + y)",
|
||||
() -> InfiniteList.iterate(0, x -> x + 1).limit(0).reduce(0, (x, y) -> x + y), 0);
|
||||
i.expectReturn(
|
||||
"InfiniteList.iterate(1, x -> x + 1).map(x -> x * x).limit(5).reduce(1, (x, y) -> x * y)",
|
||||
() -> InfiniteList.iterate(1, x -> x + 1).map(x -> x * x).limit(5)
|
||||
.reduce(1, (x, y) -> x * y),
|
||||
14400);
|
||||
|
||||
i.expectReturn(
|
||||
"InfiniteList.end().count()",
|
||||
() -> InfiniteList.end().count(), 0L);
|
||||
i.expectReturn(
|
||||
"InfiniteList.iterate(0, x -> x + 1).limit(0).count()",
|
||||
() -> numbers.limit(0).count(), 0L);
|
||||
i.expectReturn(
|
||||
"InfiniteList.iterate(0, x -> x + 1).limit(1).count()",
|
||||
() -> numbers.limit(1).count(), 1L);
|
||||
i.expectReturn(
|
||||
"InfiniteList.iterate(0, x -> x + 1).filter(x -> x % 2 == 1).limit(10).count()",
|
||||
() -> numbers.filter(x -> x % 2 == 1).limit(10).count(), 10L);
|
||||
i.expectReturn(
|
||||
"InfiniteList.iterate(0, x -> x + 1).limit(10).filter(x -> x % 2 == 1).count()",
|
||||
() -> numbers.limit(10).filter(x -> x % 2 == 1).count(), 5L);
|
||||
i.expectReturn(
|
||||
"InfiniteList.iterate(0, x -> x + 1).takeWhile(x -> x < 10).count()",
|
||||
() -> numbers.takeWhile(x -> x < 10).count(), 10L);
|
||||
i.expectReturn(
|
||||
"InfiniteList.iterate(0, x -> x + 1).takeWhile(x -> x < 10).filter(x -> x % 2 == 0)" +
|
||||
".count()",
|
||||
() -> numbers.takeWhile(x -> x < 10).filter(x -> x % 2 == 0).count(), 5L);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user