diff --git a/reactor-core/pom.xml b/reactor-core/pom.xml
index e27a1a2845..dd7533fe73 100644
--- a/reactor-core/pom.xml
+++ b/reactor-core/pom.xml
@@ -26,6 +26,11 @@
${reactor.version}
test
+
+ io.projectreactor.addons
+ reactor-extra
+ ${reactor.version}
+
org.projectlombok
lombok
@@ -35,7 +40,7 @@
- 3.4.17
+ 3.5.1
\ No newline at end of file
diff --git a/reactor-core/src/test/java/com/baeldung/reactor/math/MathFluxOperationsUnitTest.java b/reactor-core/src/test/java/com/baeldung/reactor/math/MathFluxOperationsUnitTest.java
new file mode 100644
index 0000000000..2ff8005acd
--- /dev/null
+++ b/reactor-core/src/test/java/com/baeldung/reactor/math/MathFluxOperationsUnitTest.java
@@ -0,0 +1,48 @@
+package com.baeldung.math;
+
+import org.junit.Test;
+
+import reactor.math.MathFlux;
+import reactor.core.publisher.Flux;
+import reactor.core.publisher.Mono;
+import reactor.test.StepVerifier;
+
+public class MathFluxOperationsUnitTest {
+
+ @Test
+ public void givenFluxOfNumbers_whenCalculatingSum_thenExpectCorrectResult() {
+ Flux numbers = Flux.just(1, 2, 3, 4, 5);
+ Mono sumMono = MathFlux.sumInt(numbers);
+ StepVerifier.create(sumMono)
+ .expectNext(15)
+ .verifyComplete();
+ }
+
+ @Test
+ public void givenFluxOfNumbers_whenCalculatingAverage_thenExpectCorrectResult() {
+ Flux numbers = Flux.just(1, 2, 3, 4, 5);
+ Mono averageMono = MathFlux.averageDouble(numbers);
+ StepVerifier.create(averageMono)
+ .expectNext(3.0)
+ .verifyComplete();
+ }
+
+ @Test
+ public void givenFluxOfNumbers_whenFindingMinElement_thenExpectCorrectResult() {
+ Flux numbers = Flux.just(3, 1, 5, 2, 4);
+ Mono minMono = MathFlux.min(numbers);
+ StepVerifier.create(minMono)
+ .expectNext(1)
+ .verifyComplete();
+ }
+
+ @Test
+ public void givenFluxOfNumbers_whenFindingMaxElement_thenExpectCorrectResult() {
+ Flux numbers = Flux.just(3, 1, 5, 2, 4);
+ Mono maxMono = MathFlux.max(numbers);
+ StepVerifier.create(maxMono)
+ .expectNext(5)
+ .verifyComplete();
+ }
+
+}