Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
Vladimir Bessonov
tpo_1
Commits
b9c7ad82
Commit
b9c7ad82
authored
1 week ago
by
Vladimir Bessonov
👽
Browse files
Options
Download
Email Patches
Plain Diff
refactoring
parent
2c0b6c0c
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
87 additions
and
77 deletions
+87
-77
src/test/java/com/vovi/task1/ArccosTest.java
src/test/java/com/vovi/task1/ArccosTest.java
+2
-3
src/test/java/com/vovi/task2/BinomialHeapTest.java
src/test/java/com/vovi/task2/BinomialHeapTest.java
+20
-37
src/test/java/com/vovi/task3/DomainModelTest.java
src/test/java/com/vovi/task3/DomainModelTest.java
+65
-37
No files found.
src/test/java/com/vovi/task1/ArccosTest.java
View file @
b9c7ad82
...
...
@@ -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
This diff is collapsed.
Click to expand it.
src/test/java/com/vovi/task2/BinomialHeapTest.java
View file @
b9c7ad82
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
);
heap
1
.
merge
(
heap2
);
heap
.
merge
(
heap2
);
assertEquals
(
2
,
heap
1
.
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
h
eap
=
new
BinomialHeap
();
assertTrue
(
h
eap
.
is_empty
(),
"heap should be empty initially"
);
BinomialHeap
emptyH
eap
=
new
BinomialHeap
();
assertTrue
(
emptyH
eap
.
is_empty
(),
"heap should be empty initially"
);
h
eap
.
insert
(
10
);
assertFalse
(
h
eap
.
is_empty
(),
"heap should not be empty after insertion"
);
emptyH
eap
.
insert
(
10
);
assertFalse
(
emptyH
eap
.
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
();
...
...
This diff is collapsed.
Click to expand it.
src/test/java/com/vovi/task3/DomainModelTest.java
View file @
b9c7ad82
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
);
p
erson
.
setLeftHead
(
newLeftHead
);
p
erson
.
setRightHead
(
newRightHead
);
twoHeadedP
erson
.
setLeftHead
(
newLeftHead
);
twoHeadedP
erson
.
setRightHead
(
newRightHead
);
assertEquals
(
newLeftHead
,
p
erson
.
getLeftHead
(),
"Left head should be updated"
);
assertEquals
(
newRightHead
,
p
erson
.
getRightHead
(),
"Right head should be updated"
);
assertEquals
(
newLeftHead
,
twoHeadedP
erson
.
getLeftHead
(),
"Left head should be updated"
);
assertEquals
(
newRightHead
,
twoHeadedP
erson
.
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
,
p
erson
.
toString
(),
"toString should return the correct representation"
);
assertEquals
(
expected
,
twoHeadedP
erson
.
toString
(),
"toString should return the correct representation"
);
}
}
}
\ No newline at end of file
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment