Skip to content
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);
}



}