Princeton1/module7/src/test/java/com/hithomelabs/princeton1/module7/QuickTest.java
hitanshu310 8c47ac248c Adding benchmarking code (#17)
Reviewed-on: Hithomelabs/Princeton1#17
Reviewed-by: kruti <krutis0201@gmail.com>
Co-authored-by: hitanshu310 <hitanshu98@gmail.com>
Co-committed-by: hitanshu310 <hitanshu98@gmail.com>
2025-02-19 19:53:59 +00:00

68 lines
1.9 KiB
Java

package com.hithomelabs.princeton1.module7;
import com.hithomelabs.princeton1.common.Apple;
import org.junit.jupiter.api.*;
import java.util.ArrayList;
import java.util.Random;
import static org.junit.jupiter.api.Assertions.*;
class QuickTest {
private Quick<Apple> quick;
private ArrayList<Apple> apples;
private Random random;
@BeforeEach
void setUp() {
quick = new Quick<Apple>();
apples = new ArrayList<Apple>();
random = new Random();
}
@Test
@DisplayName("testing Quick sort default implementation")
public void testSort(){
for(int i = 0; i < 100; i++)
apples.add(new Apple(random.nextInt(1000)));
Apple[] arr = apples.toArray(new Apple[apples.size()]);
quick.sort(arr);
apples.sort(null);
Apple[] sorted = apples.toArray(new Apple[apples.size()]);
Assertions.assertArrayEquals(sorted, arr);
}
@Test
@DisplayName("testing Quick sort alternate implementation")
public void testAltSort(){
for(int i = 0; i < 100; i++)
apples.add(new Apple(random.nextInt(1000)));
Apple[] arr = apples.toArray(new Apple[apples.size()]);
quick.altSort(arr);
apples.sort(null);
Apple[] sorted = apples.toArray(new Apple[apples.size()]);
Assertions.assertArrayEquals(sorted, arr);
}
@Test
@DisplayName("testing Comparator sort")
public void testComparatorSort(){
for(int i = 0; i < 100; i++)
apples.add(new Apple(random.nextInt(1000)));
Apple[] arr = apples.toArray(new Apple[apples.size()]);
quick.sort(arr, Apple.COMPARE_BY_SIZE);
apples.sort(Apple.COMPARE_BY_SIZE);
Apple[] sorted = apples.toArray(new Apple[apples.size()]);
Assertions.assertArrayEquals(sorted, arr);
}
@AfterEach
void tearDown() {
quick = null;
apples = null;
random = null;
}
}