Skip to content

Added jUnit for findAllAnagramsInText method, and for 'merge' method in class MergeIntervals #44

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
85 changes: 85 additions & 0 deletions src/main/java/com/leetcode/arrays/MergeIntervalsTestCase.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
package com.leetcode.arrays;

import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

/**
*
* @author: quangrandz
* @since: 2023-6-30
*/

public class MergeIntervalsTestCase {

@BeforeAll
public static void beforeAll() {
System.out.println("BEFORE ALL");
}

@AfterAll
public static void afterAll() {
System.out.println("AFTER ALL");
}

@BeforeEach
public void beforeEach() {
System.out.println("BEFORE EACH");
}

@AfterEach
public void afterEach() {
System.out.println("AFTER EACH");
}

// Test case 1: Non-overlapping intervals
@Test
public void testMerge_NonOverlapping() {
int[][] intervals = {{1, 3}, {4, 6}, {7, 9}};
int[][] expected = {{1, 3}, {4, 6}, {7, 9}};
Assertions.assertArrayEquals(expected, MergeIntervals.merge(intervals));
}

// Test case 2: Overlapping intervals
@Test
public void testMerge_Overlapping() {
int[][] intervals = {{1, 4}, {2, 5}, {6, 8}};
int[][] expected = {{1, 5}, {6, 8}};
Assertions.assertArrayEquals(expected, MergeIntervals.merge(intervals));
}

// Test case 3: Empty input
@Test
public void testMerge_EmptyInput() {
int[][] intervals = {};
int[][] expected = {};
Assertions.assertArrayEquals(expected, MergeIntervals.merge(intervals));
}

// Test case 4: Single interval
@Test
public void testMerge_SingleInterval() {
int[][] intervals = {{2, 6}};
int[][] expected = {{2, 6}};
Assertions.assertArrayEquals(expected, MergeIntervals.merge(intervals));
}

// Test case 5: Overlapping intervals with different orders
@Test
public void testMerge_DifferentOrders() {
int[][] intervals = {{9, 12}, {1, 4}, {6, 8}, {2, 5}};
int[][] expected = {{1, 5}, {6, 8}, {9, 12}};
Assertions.assertArrayEquals(expected, MergeIntervals.merge(intervals));
}

// Test case 6: There are many overlapping time periods
@Test
public void testMerge_ManyOverlapping() {
int[][] intervals = {{1, 4}, {2, 5}, {3, 8}, {6, 9}};
int[][] expected = {{1, 9}};
Assertions.assertArrayEquals(expected, MergeIntervals.merge(intervals));
}
}
99 changes: 99 additions & 0 deletions src/main/java/com/leetcode/strings/AnagramsTestCase.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
package com.leetcode.strings;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;

import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

/**
*
* @author: quangrandz
* @since: 2023-6-30
*/


public class AnagramsTestCase {
@BeforeAll
public static void beforeAll() {
System.out.println("BEFORE ALL");
}

@AfterAll
public static void afterAll() {
System.out.println("AFTER ALL");
}

@BeforeEach
public void beforeEach() {
System.out.println("BEFORE EACH");
}

@AfterEach
public void afterEach() {
System.out.println("AFTER EACH");
}

@Test
public void testFindAllAnagramsInText() {
String text = "cbaebabacd";
String pattern = "abc";
List<Integer> expected = Arrays.asList(0, 6);

List<Integer> result = AnagramsInString.findAllAnagramsInText(text, pattern);

Assertions.assertEquals(expected, result);
}

@Test
public void testFindAllAnagramsInText_NoAnagramFound() {
String text = "abcd";
String pattern = "xyz";
List<Integer> expected = Collections.emptyList();

List<Integer> result = AnagramsInString.findAllAnagramsInText(text, pattern);

Assertions.assertEquals(expected, result);
}

@Test
public void testFindAllAnagramsInText_EmptyText() {
String text = "";
String pattern = "abc";
List<Integer> expected = Collections.emptyList();

List<Integer> result = AnagramsInString.findAllAnagramsInText(text, pattern);

Assertions.assertEquals(expected, result);
}

@Test
public void testFindAllAnagramsInText_EmptyPattern() {
String text = "abc";
String pattern = "";
List<Integer> expected = Arrays.asList(1,2,3);

List<Integer> result = AnagramsInString.findAllAnagramsInText(text, pattern);

Assertions.assertEquals(expected, result);
}

@Test
public void testFindAllAnagramsInText_LongPattern() {
String text = "cbaebabacd";
String pattern = "abcabcabc";
List<Integer> expected = Collections.emptyList();

List<Integer> result = AnagramsInString.findAllAnagramsInText(text, pattern);

Assertions.assertEquals(expected, result);
}



}