add Subarray Sum Equals K using prefix sum (#7252)

Co-authored-by: Deniz Altunkapan <deniz.altunkapan@outlook.com>
This commit is contained in:
Ruturaj Jadhav
2026-02-01 20:56:57 +05:30
committed by GitHub
parent dfaa495639
commit 3e36833bf4
2 changed files with 131 additions and 0 deletions

View File

@@ -0,0 +1,59 @@
package com.thealgorithms.prefixsum;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
import org.junit.jupiter.api.Test;
/**
* Tests for {@link SubarraySumEqualsK}.
*/
class SubarraySumEqualsKTest {
@Test
void testBasicExample() {
int[] nums = {1, 1, 1};
int k = 2;
assertEquals(2, SubarraySumEqualsK.countSubarrays(nums, k));
}
@Test
void testWithNegativeNumbers() {
int[] nums = {1, -1, 0};
int k = 0;
assertEquals(3, SubarraySumEqualsK.countSubarrays(nums, k));
}
@Test
void testSingleElementEqualToK() {
int[] nums = {5};
int k = 5;
assertEquals(1, SubarraySumEqualsK.countSubarrays(nums, k));
}
@Test
void testSingleElementNotEqualToK() {
int[] nums = {5};
int k = 3;
assertEquals(0, SubarraySumEqualsK.countSubarrays(nums, k));
}
@Test
void testAllZeros() {
int[] nums = {0, 0, 0};
int k = 0;
assertEquals(6, SubarraySumEqualsK.countSubarrays(nums, k));
}
@Test
void testEmptyArray() {
int[] nums = {};
int k = 0;
assertEquals(0, SubarraySumEqualsK.countSubarrays(nums, k));
}
@Test
void testNullArrayThrowsException() {
assertThrows(IllegalArgumentException.class, () -> SubarraySumEqualsK.countSubarrays(null, 0));
}
}