Commit b9c7ad82 authored by Vladimir Bessonov's avatar Vladimir Bessonov 👽
Browse files

refactoring

parent 2c0b6c0c
......@@ -46,8 +46,7 @@ public class ArccosTest {
@DisplayName("Check invalid terms")
@ValueSource(ints = {-1, -10})
void checkInvalidTerms(int terms) {
double x = 0.5;
assertThrows(IllegalArgumentException.class, () -> Arccos.calc(x, terms),
"arccos(" + x + ") should throw IllegalArgumentException for invalid terms");
assertThrows(IllegalArgumentException.class, () -> Arccos.calc(1, terms),
"arccos(" + 1 + ") should throw IllegalArgumentException for invalid terms");
}
}
\ No newline at end of file
package com.vovi.task2;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
public class BinomialHeapTest {
@Test
@DisplayName("Test insertion and get_min")
void testInsertionAndGetMin() {
BinomialHeap heap = new BinomialHeap();
private BinomialHeap heap;
@BeforeEach
void setUp() {
// Initialize a BinomialHeap and insert common elements before each test
heap = new BinomialHeap();
heap.insert(10);
heap.insert(5);
heap.insert(20);
heap.insert(1);
}
@Test
@DisplayName("Test insertion and get_min")
void testInsertionAndGetMin() {
heap.insert(1); // Insert an additional element for this specific test
assertEquals(1, heap.get_min(), "get_min should return 1");
}
@Test
@DisplayName("Test extract_min")
void testExtractMin() {
BinomialHeap heap = new BinomialHeap();
heap.insert(10);
heap.insert(5);
heap.insert(20);
heap.insert(1);
heap.insert(1); // Insert an additional element for this specific test
int min = heap.extract_min();
assertEquals(1, min, "extract_min should return 1");
assertEquals(5, heap.get_min(), "get_min should return 5 after extraction");
......@@ -35,28 +37,19 @@ public class BinomialHeapTest {
@Test
@DisplayName("Test merge two heaps")
void testMerge() {
BinomialHeap heap1 = new BinomialHeap();
heap1.insert(10);
heap1.insert(5);
BinomialHeap heap2 = new BinomialHeap();
heap2.insert(2);
heap2.insert(15);
heap1.merge(heap2);
heap.merge(heap2);
assertEquals(2, heap1.get_min(), "get_min should return 2 after merge");
assertEquals(2, heap.get_min(), "get_min should return 2 after merge");
}
@Test
@DisplayName("Test decrease_key")
void testDecreaseKey() {
BinomialHeap heap = new BinomialHeap();
heap.insert(10);
heap.insert(5);
heap.insert(20);
Node nodeToDecrease = heap.trees.get(0);
Node nodeToDecrease = heap.trees.get(0); // Get the first node in the heap
heap.decrease_key(nodeToDecrease, 3);
assertEquals(3, heap.get_min(), "get_min should return 3 after decrease_key");
......@@ -65,32 +58,22 @@ public class BinomialHeapTest {
@Test
@DisplayName("Test size of the heap")
void testSize() {
BinomialHeap heap = new BinomialHeap();
heap.insert(10);
heap.insert(5);
heap.insert(20);
assertEquals(3, heap.size(), "size should return 3");
}
@Test
@DisplayName("Test if the heap is empty")
void testIsEmpty() {
BinomialHeap heap = new BinomialHeap();
assertTrue(heap.is_empty(), "heap should be empty initially");
BinomialHeap emptyHeap = new BinomialHeap();
assertTrue(emptyHeap.is_empty(), "heap should be empty initially");
heap.insert(10);
assertFalse(heap.is_empty(), "heap should not be empty after insertion");
emptyHeap.insert(10);
assertFalse(emptyHeap.is_empty(), "heap should not be empty after insertion");
}
@Test
@DisplayName("Test extract all elements and check if the heap is empty")
void testExtractAllElements() {
BinomialHeap heap = new BinomialHeap();
heap.insert(10);
heap.insert(5);
heap.insert(20);
heap.extract_min();
heap.extract_min();
heap.extract_min();
......
package com.vovi.task3;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import java.lang.reflect.Method;
import static org.junit.jupiter.api.Assertions.*;
class HeadTest {
private Head head;
private static final HeadState DEFAULT_HEAD_STATE = HeadState.SMILING;
@BeforeEach
void setUp() {
// Initialize a Head object with a default state before each test
head = new Head(DEFAULT_HEAD_STATE);
}
@Test
@DisplayName("Test Head constructor and getState")
void testHeadConstructorAndGetState() {
Head head = new Head(HeadState.SMILING);
assertEquals(HeadState.SMILING, head.getState(), "Head state should be SMILING");
@DisplayName("Test Head constructor, getState, and toString")
void testHeadConstructorGetStateAndToString() {
assertAll(
() -> assertEquals(DEFAULT_HEAD_STATE, head.getState(), "Head state should be SMILING"),
() -> assertEquals("Head{state=SMILING}", head.toString(), "toString should return the correct representation")
);
}
@Test
@DisplayName("Test Head constructor, getState, and toString using reflection")
void testHeadConstructorGetStateAndToStringUsingReflection() throws Exception {
Method getStateMethod = Head.class.getMethod("getState");
HeadState state = (HeadState) getStateMethod.invoke(head);
assertEquals(DEFAULT_HEAD_STATE, state, "Head state should be SMILING");
Method toStringMethod = Head.class.getMethod("toString");
String toStringResult = (String) toStringMethod.invoke(head);
assertEquals("Head{state=SMILING}", toStringResult, "toString should return the correct representation");
}
@Test
@DisplayName("Test Head setState")
void testHeadSetState() {
Head head = new Head(HeadState.IDLE);
head.setState(HeadState.PICKING_TEETH);
assertEquals(HeadState.PICKING_TEETH, head.getState(), "Head state should be updated to PICKING_TEETH");
}
@Test
@DisplayName("Test Head toString")
void testHeadToString() {
Head head = new Head(HeadState.SMILING);
assertEquals("Head{state=SMILING}", head.toString(), "toString should return the correct representation");
}
}
class HeadStateTest {
......@@ -43,17 +62,24 @@ class HeadStateTest {
class PersonTest {
private Person person;
private static final String DEFAULT_NAME = "Alice";
@BeforeEach
void setUp() {
// Initialize a Person object with a default name before each test
person = new Person(DEFAULT_NAME);
}
@Test
@DisplayName("Test Person constructor and getName")
void testPersonConstructorAndGetName() {
Person person = new Person("Alice");
assertEquals("Alice", person.getName(), "Person name should be Alice");
assertEquals(DEFAULT_NAME, person.getName(), "Person name should be Alice");
}
@Test
@DisplayName("Test Person setName")
void testPersonSetName() {
Person person = new Person("Alice");
person.setName("Bob");
assertEquals("Bob", person.getName(), "Person name should be updated to Bob");
}
......@@ -61,49 +87,51 @@ class PersonTest {
@Test
@DisplayName("Test Person toString")
void testPersonToString() {
Person person = new Person("Alice");
assertEquals("Person{name='Alice'}", person.toString(), "toString should return the correct representation");
}
}
class TwoHeadedPersonTest {
private TwoHeadedPerson twoHeadedPerson;
private Head leftHead;
private Head rightHead;
private static final String DEFAULT_NAME = "Alice";
private static final HeadState DEFAULT_LEFT_HEAD_STATE = HeadState.SMILING;
private static final HeadState DEFAULT_RIGHT_HEAD_STATE = HeadState.IDLE;
@BeforeEach
void setUp() {
// Initialize a TwoHeadedPerson object with default heads and name before each test
leftHead = new Head(DEFAULT_LEFT_HEAD_STATE);
rightHead = new Head(DEFAULT_RIGHT_HEAD_STATE);
twoHeadedPerson = new TwoHeadedPerson(DEFAULT_NAME, leftHead, rightHead);
}
@Test
@DisplayName("Test TwoHeadedPerson constructor and getters")
void testTwoHeadedPersonConstructorAndGetters() {
Head leftHead = new Head(HeadState.SMILING);
Head rightHead = new Head(HeadState.IDLE);
TwoHeadedPerson person = new TwoHeadedPerson("Alice", leftHead, rightHead);
assertEquals("Alice", person.getName(), "Person name should be Alice");
assertEquals(leftHead, person.getLeftHead(), "Left head should match the input");
assertEquals(rightHead, person.getRightHead(), "Right head should match the input");
assertEquals(DEFAULT_NAME, twoHeadedPerson.getName(), "Person name should be Alice");
assertEquals(leftHead, twoHeadedPerson.getLeftHead(), "Left head should match the input");
assertEquals(rightHead, twoHeadedPerson.getRightHead(), "Right head should match the input");
}
@Test
@DisplayName("Test TwoHeadedPerson setters")
void testTwoHeadedPersonSetters() {
Head leftHead = new Head(HeadState.SMILING);
Head rightHead = new Head(HeadState.IDLE);
TwoHeadedPerson person = new TwoHeadedPerson("Alice", leftHead, rightHead);
Head newLeftHead = new Head(HeadState.PICKING_TEETH);
Head newRightHead = new Head(HeadState.SMILING);
person.setLeftHead(newLeftHead);
person.setRightHead(newRightHead);
twoHeadedPerson.setLeftHead(newLeftHead);
twoHeadedPerson.setRightHead(newRightHead);
assertEquals(newLeftHead, person.getLeftHead(), "Left head should be updated");
assertEquals(newRightHead, person.getRightHead(), "Right head should be updated");
assertEquals(newLeftHead, twoHeadedPerson.getLeftHead(), "Left head should be updated");
assertEquals(newRightHead, twoHeadedPerson.getRightHead(), "Right head should be updated");
}
@Test
@DisplayName("Test TwoHeadedPerson toString")
void testTwoHeadedPersonToString() {
Head leftHead = new Head(HeadState.SMILING);
Head rightHead = new Head(HeadState.IDLE);
TwoHeadedPerson person = new TwoHeadedPerson("Alice", leftHead, rightHead);
String expected = "TwoHeadedPerson{name='Alice', leftHead=Head{state=SMILING}, rightHead=Head{state=IDLE}}";
assertEquals(expected, person.toString(), "toString should return the correct representation");
assertEquals(expected, twoHeadedPerson.toString(), "toString should return the correct representation");
}
}
}
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment