mirror of
https://github.com/TheAlgorithms/Java.git
synced 2025-07-19 01:41:57 +08:00
71 lines
1.9 KiB
Java
71 lines
1.9 KiB
Java
package com.thealgorithms.stacks;
|
|
|
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
import static org.junit.jupiter.api.Assertions.assertNull;
|
|
import static org.junit.jupiter.api.Assertions.assertThrows;
|
|
|
|
import java.util.NoSuchElementException;
|
|
import org.junit.jupiter.api.BeforeEach;
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
public class GreatestElementConstantTimeTest {
|
|
|
|
private GreatestElementConstantTime constantTime;
|
|
|
|
@BeforeEach
|
|
public void setConstantTime() {
|
|
constantTime = new GreatestElementConstantTime();
|
|
}
|
|
|
|
@Test
|
|
public void testMaxAtFirst() {
|
|
constantTime.push(1);
|
|
constantTime.push(10);
|
|
constantTime.push(20);
|
|
constantTime.push(5);
|
|
assertEquals(20, constantTime.getMaximumElement());
|
|
}
|
|
|
|
@Test
|
|
public void testMinTwo() {
|
|
constantTime.push(5);
|
|
constantTime.push(10);
|
|
constantTime.push(20);
|
|
constantTime.push(1);
|
|
assertEquals(20, constantTime.getMaximumElement());
|
|
constantTime.pop();
|
|
constantTime.pop();
|
|
assertEquals(10, constantTime.getMaximumElement());
|
|
}
|
|
|
|
@Test
|
|
public void testNullMax() {
|
|
constantTime.push(10);
|
|
constantTime.push(20);
|
|
constantTime.pop();
|
|
constantTime.pop();
|
|
assertNull(constantTime.getMaximumElement());
|
|
}
|
|
|
|
@Test
|
|
public void testBlankHandle() {
|
|
constantTime.push(10);
|
|
constantTime.push(1);
|
|
constantTime.pop();
|
|
constantTime.pop();
|
|
assertThrows(NoSuchElementException.class, () -> constantTime.pop());
|
|
}
|
|
|
|
@Test
|
|
public void testPushPopAfterEmpty() {
|
|
constantTime.push(10);
|
|
constantTime.push(1);
|
|
constantTime.pop();
|
|
constantTime.pop();
|
|
constantTime.push(5);
|
|
assertEquals(5, constantTime.getMaximumElement());
|
|
constantTime.push(1);
|
|
assertEquals(5, constantTime.getMaximumElement());
|
|
}
|
|
}
|