From 68f7bb90d591c6736fa17452e68939e9c3c31c08 Mon Sep 17 00:00:00 2001
From: Roman Korostinskiy <70313618+c71n93@users.noreply.github.com>
Date: Mon, 6 May 2024 13:33:40 +0300
Subject: [PATCH 01/21] #3160 enable pmd for eo-runtime and exclude EOorg
package
---
eo-runtime/pom.xml | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/eo-runtime/pom.xml b/eo-runtime/pom.xml
index f7febb73c4..fdcc6c30b7 100644
--- a/eo-runtime/pom.xml
+++ b/eo-runtime/pom.xml
@@ -324,7 +324,8 @@ SOFTWARE.
qulice-maven-plugin
- pmd:.*
+ pmd:/src/main/java/EOorg/.*
+ pmd:/src/test/java/EOorg/.*
dependencies:org.eolang:eo-maven-plugin
From 931958c59fc8e4996814f6b3bb14d05250d0aae9 Mon Sep 17 00:00:00 2001
From: Roman Korostinskiy <70313618+c71n93@users.noreply.github.com>
Date: Mon, 6 May 2024 16:29:06 +0300
Subject: [PATCH 02/21] #3160 resolve PMD violations for tests from
eo-runtime/src/test/java/org/eolang
---
.../test/java/org/eolang/AtCompositeTest.java | 2 +
.../test/java/org/eolang/AtLoggedTest.java | 2 +-
.../src/test/java/org/eolang/AtNamedTest.java | 1 +
.../src/test/java/org/eolang/BytesOfTest.java | 1 +
.../src/test/java/org/eolang/DataTest.java | 1 -
.../test/java/org/eolang/DataizedTest.java | 30 +++++--
.../java/org/eolang/ExInterruptedTest.java | 3 +-
.../src/test/java/org/eolang/MainTest.java | 2 +-
.../src/test/java/org/eolang/PhDataTest.java | 4 +-
.../test/java/org/eolang/PhDefaultTest.java | 89 ++++++++++++-------
.../test/java/org/eolang/PhLocatedTest.java | 2 +-
.../test/java/org/eolang/PhLoggedTest.java | 3 +-
.../test/java/org/eolang/PhMethodTest.java | 2 +-
.../test/java/org/eolang/PhPackageTest.java | 1 +
.../src/test/java/org/eolang/PhWithTest.java | 2 +
.../java/org/eolang/UniverseDefaultTest.java | 5 +-
.../org/eolang/VerboseBytesAsStringTest.java | 5 +-
17 files changed, 100 insertions(+), 55 deletions(-)
diff --git a/eo-runtime/src/test/java/org/eolang/AtCompositeTest.java b/eo-runtime/src/test/java/org/eolang/AtCompositeTest.java
index df6df237b4..de3017f998 100644
--- a/eo-runtime/src/test/java/org/eolang/AtCompositeTest.java
+++ b/eo-runtime/src/test/java/org/eolang/AtCompositeTest.java
@@ -34,6 +34,7 @@
*
* @since 0.16
*/
+@SuppressWarnings("PMD.JUnit5TestShouldBePackagePrivate")
public final class AtCompositeTest {
/**
@@ -95,6 +96,7 @@ private static class Rnd extends PhDefault {
/**
* Ctor.
*/
+ @SuppressWarnings("PMD.ConstructorOnlyInitializesOrCallOtherConstructors")
Rnd() {
super();
this.add(
diff --git a/eo-runtime/src/test/java/org/eolang/AtLoggedTest.java b/eo-runtime/src/test/java/org/eolang/AtLoggedTest.java
index 396b72cb9a..8e48279f18 100644
--- a/eo-runtime/src/test/java/org/eolang/AtLoggedTest.java
+++ b/eo-runtime/src/test/java/org/eolang/AtLoggedTest.java
@@ -39,7 +39,7 @@
*
* @since 0.29
*/
-class AtLoggedTest {
+final class AtLoggedTest {
/**
* Testable object.
diff --git a/eo-runtime/src/test/java/org/eolang/AtNamedTest.java b/eo-runtime/src/test/java/org/eolang/AtNamedTest.java
index 2c25d1c743..4ce46c0153 100644
--- a/eo-runtime/src/test/java/org/eolang/AtNamedTest.java
+++ b/eo-runtime/src/test/java/org/eolang/AtNamedTest.java
@@ -64,6 +64,7 @@ private static class Dummy extends PhDefault {
/**
* Ctor.
*/
+ @SuppressWarnings("PMD.ConstructorOnlyInitializesOrCallOtherConstructors")
Dummy() {
super();
this.add(
diff --git a/eo-runtime/src/test/java/org/eolang/BytesOfTest.java b/eo-runtime/src/test/java/org/eolang/BytesOfTest.java
index 42a36e24d7..122e534dd3 100644
--- a/eo-runtime/src/test/java/org/eolang/BytesOfTest.java
+++ b/eo-runtime/src/test/java/org/eolang/BytesOfTest.java
@@ -35,6 +35,7 @@
*
* @since 1.0
*/
+@SuppressWarnings("PMD.TooManyMethods")
final class BytesOfTest {
@Test
diff --git a/eo-runtime/src/test/java/org/eolang/DataTest.java b/eo-runtime/src/test/java/org/eolang/DataTest.java
index c9d5ffa10f..5e31fcb248 100644
--- a/eo-runtime/src/test/java/org/eolang/DataTest.java
+++ b/eo-runtime/src/test/java/org/eolang/DataTest.java
@@ -24,7 +24,6 @@
package org.eolang;
import java.nio.charset.StandardCharsets;
-import java.util.regex.Pattern;
import org.hamcrest.MatcherAssert;
import org.hamcrest.Matchers;
import org.junit.jupiter.api.Test;
diff --git a/eo-runtime/src/test/java/org/eolang/DataizedTest.java b/eo-runtime/src/test/java/org/eolang/DataizedTest.java
index b2f856968f..c52013b11b 100644
--- a/eo-runtime/src/test/java/org/eolang/DataizedTest.java
+++ b/eo-runtime/src/test/java/org/eolang/DataizedTest.java
@@ -44,6 +44,10 @@
* became immutable. Need to find out what's going on and resolve the tests.
*/
final class DataizedTest {
+ /**
+ * System property for maximum dataization log level.
+ */
+ private static final String DATAIZATION_LOG = "max.dataization.log";
@Test
@Disabled
@@ -107,14 +111,17 @@ void printsShortLogs() throws InterruptedException {
log.addHandler(hnd);
final Thread thread = new Thread(
() -> {
- final String property = System.getProperty("max.dataization.log");
- System.getProperties().setProperty("max.dataization.log", String.valueOf(1));
+ final String property = System.getProperty(DataizedTest.DATAIZATION_LOG);
+ System.getProperties().setProperty(
+ DataizedTest.DATAIZATION_LOG,
+ String.valueOf(1)
+ );
final Phi phi = new PhiDec(Phi.Φ);
new Dataized(phi, log).take();
if (property != null) {
- System.getProperties().setProperty("max.dataization.log", property);
+ System.getProperties().setProperty(DataizedTest.DATAIZATION_LOG, property);
} else {
- System.clearProperty("max.dataization.log");
+ System.clearProperty(DataizedTest.DATAIZATION_LOG);
}
});
thread.start();
@@ -138,14 +145,17 @@ void printsLongLogs() throws InterruptedException {
log.addHandler(hnd);
final Thread thread = new Thread(
() -> {
- final String property = System.getProperty("max.dataization.log");
- System.getProperties().setProperty("max.dataization.log", String.valueOf(2));
+ final String property = System.getProperty(DataizedTest.DATAIZATION_LOG);
+ System.getProperties().setProperty(
+ DataizedTest.DATAIZATION_LOG,
+ String.valueOf(2)
+ );
final Phi phi = new PhiDec(Phi.Φ);
new Dataized(phi, log).take();
if (property != null) {
- System.getProperties().setProperty("max.dataization.log", property);
+ System.getProperties().setProperty(DataizedTest.DATAIZATION_LOG, property);
} else {
- System.clearProperty("max.dataization.log");
+ System.clearProperty(DataizedTest.DATAIZATION_LOG);
}
});
thread.start();
@@ -169,6 +179,7 @@ private static class PhIncorrect extends PhDefault {
* Ctor.
* @param sigma Sigma
*/
+ @SuppressWarnings("PMD.ConstructorOnlyInitializesOrCallOtherConstructors")
PhIncorrect(final Phi sigma) {
super(sigma);
this.add(
@@ -193,6 +204,7 @@ public static class PhiDec extends PhDefault {
*
* @param sigma Sigma
*/
+ @SuppressWarnings("PMD.ConstructorOnlyInitializesOrCallOtherConstructors")
PhiDec(final Phi sigma) {
super(sigma);
this.add(
@@ -242,7 +254,7 @@ public void flush() {
}
@Override
- public void close() throws SecurityException {
+ public void close() {
throw new UnsupportedOperationException("#close()");
}
diff --git a/eo-runtime/src/test/java/org/eolang/ExInterruptedTest.java b/eo-runtime/src/test/java/org/eolang/ExInterruptedTest.java
index fd348efbf4..8dbcb12268 100644
--- a/eo-runtime/src/test/java/org/eolang/ExInterruptedTest.java
+++ b/eo-runtime/src/test/java/org/eolang/ExInterruptedTest.java
@@ -31,7 +31,7 @@
*
* @since 0.28.3
*/
-public class ExInterruptedTest {
+final class ExInterruptedTest {
@Test
void throwsRightException() {
@@ -53,6 +53,7 @@ private static class EOthrow extends PhDefault {
* CTor.
* @param sigma Sigma
*/
+ @SuppressWarnings("PMD.ConstructorOnlyInitializesOrCallOtherConstructors")
EOthrow(final Phi sigma) {
super(sigma);
this.add(
diff --git a/eo-runtime/src/test/java/org/eolang/MainTest.java b/eo-runtime/src/test/java/org/eolang/MainTest.java
index a8fdd226a3..30844e701c 100644
--- a/eo-runtime/src/test/java/org/eolang/MainTest.java
+++ b/eo-runtime/src/test/java/org/eolang/MainTest.java
@@ -30,7 +30,6 @@
import java.io.IOException;
import java.nio.channels.Channels;
import java.nio.charset.StandardCharsets;
-import java.util.Arrays;
import org.hamcrest.MatcherAssert;
import org.hamcrest.Matchers;
import org.junit.jupiter.api.Disabled;
@@ -44,6 +43,7 @@
* tupled-stdout.eo was removed from eo-runtime tests because it wasn't working in CI.
* Need to refactor them and enable
*/
+@SuppressWarnings("PMD.TooManyMethods")
final class MainTest {
@Test
diff --git a/eo-runtime/src/test/java/org/eolang/PhDataTest.java b/eo-runtime/src/test/java/org/eolang/PhDataTest.java
index 87553128ee..22e05e034d 100644
--- a/eo-runtime/src/test/java/org/eolang/PhDataTest.java
+++ b/eo-runtime/src/test/java/org/eolang/PhDataTest.java
@@ -32,7 +32,7 @@
* Test case for {@link PhData}.
* @since 0.36.0
*/
-public class PhDataTest {
+final class PhDataTest {
@Test
void addsApplicationWithDelta() {
MatcherAssert.assertThat(
@@ -44,7 +44,7 @@ void addsApplicationWithDelta() {
@Test
void returnsData() {
- final byte[] data = new byte[] {0x2A, 0x3B};
+ final byte[] data = {0x2A, 0x3B};
MatcherAssert.assertThat(
AtCompositeTest.TO_ADD_MESSAGE,
new PhData(new Dummy(), data).delta(),
diff --git a/eo-runtime/src/test/java/org/eolang/PhDefaultTest.java b/eo-runtime/src/test/java/org/eolang/PhDefaultTest.java
index 2eb315b5a8..9959468633 100644
--- a/eo-runtime/src/test/java/org/eolang/PhDefaultTest.java
+++ b/eo-runtime/src/test/java/org/eolang/PhDefaultTest.java
@@ -41,7 +41,17 @@
* Test case for {@link PhDefault}.
* @since 0.1
*/
+@SuppressWarnings("PMD.TooManyMethods")
final class PhDefaultTest {
+ /**
+ * Name of attribute.
+ */
+ private static final String PLUS_ATT = "plus";
+
+ /**
+ * Name of attribute.
+ */
+ private static final String VOID_ATT = "void";
@Test
void comparesTwoObjects() {
@@ -82,7 +92,7 @@ void doesNotHaveRhoWhenFormed() {
@Test
void setsRhoAfterDispatch() {
- final Phi kid = new PhDefaultTest.Int().take("plus");
+ final Phi kid = new PhDefaultTest.Int().take(PhDefaultTest.PLUS_ATT);
Assertions.assertDoesNotThrow(
() -> kid.take(Attr.RHO),
String.format("Kid of should have %s attribute after dispatch", Attr.RHO)
@@ -102,8 +112,8 @@ void doesNotHaveRhoAfterCopying() {
@Test
void copiesKid() {
final Phi phi = new PhDefaultTest.Int();
- final Phi first = phi.take("plus");
- final Phi second = phi.copy().take("plus");
+ final Phi first = phi.take(PhDefaultTest.PLUS_ATT);
+ final Phi second = phi.copy().take(PhDefaultTest.PLUS_ATT);
MatcherAssert.assertThat(
"Child attributes should be copied after copying main object",
first,
@@ -118,9 +128,9 @@ void takesDifferentAbstractKidsEveryDispatch() {
final Phi phi = new PhDefaultTest.Int();
MatcherAssert.assertThat(
"Child attributes should be copied on every dispatch",
- phi.take("plus"),
+ phi.take(PhDefaultTest.PLUS_ATT),
Matchers.not(
- Matchers.equalTo(phi.take("plus"))
+ Matchers.equalTo(phi.take(PhDefaultTest.PLUS_ATT))
)
);
}
@@ -128,7 +138,7 @@ void takesDifferentAbstractKidsEveryDispatch() {
@Test
void hasKidWithSetRhoAfterCopying() {
final Phi phi = new PhDefaultTest.Int().copy();
- final Phi plus = phi.take("plus");
+ final Phi plus = phi.take(PhDefaultTest.PLUS_ATT);
Assertions.assertDoesNotThrow(
() -> plus.take(Attr.RHO),
String.format(
@@ -153,9 +163,9 @@ void hasDifferentKidsAfterDoubleCopying() {
final Phi second = first.copy();
MatcherAssert.assertThat(
"Child objects after double copying should be different",
- first.take("plus"),
+ first.take(PhDefaultTest.PLUS_ATT),
Matchers.not(
- Matchers.equalTo(second.take("plus"))
+ Matchers.equalTo(second.take(PhDefaultTest.PLUS_ATT))
)
);
}
@@ -168,15 +178,15 @@ void changesKidRhoAfterSelfCopying() {
String.format(
"%s attribute of original object kid should refer to original object", Attr.RHO
),
- phi.take("plus").take(Attr.RHO),
- Matchers.not(Matchers.equalTo(copy.take("plus").take(Attr.RHO)))
+ phi.take(PhDefaultTest.PLUS_ATT).take(Attr.RHO),
+ Matchers.not(Matchers.equalTo(copy.take(PhDefaultTest.PLUS_ATT).take(Attr.RHO)))
);
MatcherAssert.assertThat(
String.format(
"%s attribute of copied object kid should refer to copied object",
Attr.RHO
),
- copy.take("plus").take(Attr.RHO),
+ copy.take(PhDefaultTest.PLUS_ATT).take(Attr.RHO),
Matchers.equalTo(copy)
);
}
@@ -184,7 +194,7 @@ void changesKidRhoAfterSelfCopying() {
@Test
void doesNotChangeRhoAfterDirectKidCopying() {
final Phi phi = new PhDefaultTest.Int();
- final Phi first = phi.take("plus");
+ final Phi first = phi.take(PhDefaultTest.PLUS_ATT);
final Phi second = first.copy();
MatcherAssert.assertThat(
String.format(
@@ -201,7 +211,7 @@ void doesNotChangeRhoAfterDirectKidCopying() {
@Test
void doesNotCopyRhoWhileDispatch() {
final Phi phi = new PhDefaultTest.Int();
- final Phi plus = phi.take("plus");
+ final Phi plus = phi.take(PhDefaultTest.PLUS_ATT);
MatcherAssert.assertThat(
String.format("%s attributes should not be copied while dispatch", Attr.RHO),
plus.take(Attr.RHO),
@@ -212,7 +222,7 @@ void doesNotCopyRhoWhileDispatch() {
@Test
void doesNotCopySigmaWhileDispatch() {
final Phi phi = new PhDefaultTest.Int();
- final Phi plus = phi.take("plus");
+ final Phi plus = phi.take(PhDefaultTest.PLUS_ATT);
MatcherAssert.assertThat(
String.format("%s attributes should not be copied while dispatch", Attr.SIGMA),
plus.take(Attr.SIGMA),
@@ -226,7 +236,7 @@ void copiesUnsetVoidAttribute() {
final Phi copy = phi.copy();
Assertions.assertThrows(
EOerror.ExError.class,
- () -> copy.take("void"),
+ () -> copy.take(PhDefaultTest.VOID_ATT),
"Unset void attribute should be copied with unset value"
);
}
@@ -234,13 +244,13 @@ void copiesUnsetVoidAttribute() {
@Test
void copiesSetVoidAttributeOnCopy() {
final Phi phi = new PhDefaultTest.Int();
- phi.put("void", new Data.ToPhi(10L));
+ phi.put(PhDefaultTest.VOID_ATT, new Data.ToPhi(10L));
final Phi copy = phi.copy();
MatcherAssert.assertThat(
"Copied set void attribute should be different from original one",
- phi.take("void"),
+ phi.take(PhDefaultTest.VOID_ATT),
Matchers.not(
- Matchers.equalTo(copy.take("void"))
+ Matchers.equalTo(copy.take(PhDefaultTest.VOID_ATT))
)
);
}
@@ -248,11 +258,11 @@ void copiesSetVoidAttributeOnCopy() {
@Test
void doesNotCopySetVoidAttributeWithRho() {
final Phi phi = new PhDefaultTest.Int();
- phi.put("void", new Data.ToPhi(10L));
+ phi.put(PhDefaultTest.VOID_ATT, new Data.ToPhi(10L));
MatcherAssert.assertThat(
AtCompositeTest.TO_ADD_MESSAGE,
- phi.take("void"),
- Matchers.equalTo(phi.take("void"))
+ phi.take(PhDefaultTest.VOID_ATT),
+ Matchers.equalTo(phi.take(PhDefaultTest.VOID_ATT))
);
}
@@ -274,7 +284,7 @@ void hasAccessToDependentOnContextAttribute() {
() -> phi.take(Attr.PHI),
AtCompositeTest.TO_ADD_MESSAGE
);
- phi.put("void", new Data.ToPhi(10L));
+ phi.put(PhDefaultTest.VOID_ATT, new Data.ToPhi(10L));
Assertions.assertDoesNotThrow(
() -> phi.take(Attr.PHI),
AtCompositeTest.TO_ADD_MESSAGE
@@ -390,10 +400,10 @@ void cachesPhiViaNewRecursively() {
@Test
void refersToOriginalObjectAndDoesNotResetCache() {
final Phi phi = new PhDefaultTest.Dummy(Phi.Φ);
- phi.take("plus");
+ phi.take(PhDefaultTest.PLUS_ATT);
final Phi copy = phi.copy();
- copy.take("plus");
- phi.take("plus");
+ copy.take(PhDefaultTest.PLUS_ATT);
+ phi.take(PhDefaultTest.PLUS_ATT);
MatcherAssert.assertThat(
AtCompositeTest.TO_ADD_MESSAGE,
PhDefaultTest.Dummy.count,
@@ -433,7 +443,7 @@ void hasDifferentFormaWithBoundedMethod() {
Matchers.not(
Matchers.equalTo(
new PhWith(
- five.take("plus").copy(),
+ five.take(PhDefaultTest.PLUS_ATT).copy(),
"x",
new Data.ToPhi(5L)
).forma()
@@ -447,13 +457,13 @@ void hasTheSameFormaWithDifferentInstances() {
MatcherAssert.assertThat(
AtCompositeTest.TO_ADD_MESSAGE,
new PhWith(
- new Data.ToPhi(5L).take("plus").copy(),
+ new Data.ToPhi(5L).take(PhDefaultTest.PLUS_ATT).copy(),
"x",
new Data.ToPhi(5L)
).forma(),
Matchers.equalTo(
new PhWith(
- new Data.ToPhi(6L).take("plus").copy(),
+ new Data.ToPhi(6L).take(PhDefaultTest.PLUS_ATT).copy(),
"x",
new Data.ToPhi(6L)
).forma()
@@ -467,11 +477,11 @@ void doesNotCalculateRandomTwice() {
new PhMethod(
new PhWith(
new PhMethod(
- new Rnd(Phi.Φ), "plus"
+ new Rnd(Phi.Φ), PhDefaultTest.PLUS_ATT
),
0, new Data.ToPhi(1.2)
),
- "plus"
+ PhDefaultTest.PLUS_ATT
),
0, new Data.ToPhi(1.2)
);
@@ -500,6 +510,7 @@ private static class Rnd extends PhDefault {
* Ctor.
* @param sigma Sigma
*/
+ @SuppressWarnings("PMD.ConstructorOnlyInitializesOrCallOtherConstructors")
Rnd(final Phi sigma) {
super(sigma);
this.add(
@@ -522,16 +533,17 @@ private static class Int extends PhDefault {
/**
* Ctor.
*/
+ @SuppressWarnings("PMD.ConstructorOnlyInitializesOrCallOtherConstructors")
Int() {
super(Phi.Φ);
- this.add("void", new AtVoid("void"));
- this.add("plus", new AtSimple(new Plus(this)));
+ this.add(PhDefaultTest.VOID_ATT, new AtVoid(PhDefaultTest.VOID_ATT));
+ this.add(PhDefaultTest.PLUS_ATT, new AtSimple(new Plus(this)));
this.add(
Attr.PHI,
new AtOnce(
new AtComposite(
this,
- rho -> rho.take("void")
+ rho -> rho.take(PhDefaultTest.VOID_ATT)
)
)
);
@@ -541,7 +553,9 @@ private static class Int extends PhDefault {
new AtComposite(
this,
rho -> {
- final Phi plus = new Data.ToPhi(5L).take("plus").copy();
+ final Phi plus = new Data.ToPhi(5L).take(
+ PhDefaultTest.PLUS_ATT
+ ).copy();
plus.put(0, new Data.ToPhi(6L));
return plus;
}
@@ -583,6 +597,7 @@ public static class Foo extends PhDefault {
* @param sigma Sigma
* @param data Data
*/
+ @SuppressWarnings("PMD.ConstructorOnlyInitializesOrCallOtherConstructors")
Foo(final Phi sigma, final Object data) {
super(sigma);
this.add("x", new AtVoid("x"));
@@ -605,6 +620,7 @@ public static class Dummy extends PhDefault {
* Ctor.
* @param sigma Sigma
*/
+ @SuppressWarnings("PMD.ConstructorOnlyInitializesOrCallOtherConstructors")
Dummy(final Phi sigma) {
super(sigma);
this.add(
@@ -633,6 +649,7 @@ public static class Counter extends PhDefault {
* Ctor.
* @param sigma Sigma
*/
+ @SuppressWarnings("PMD.ConstructorOnlyInitializesOrCallOtherConstructors")
Counter(final Phi sigma) {
super(sigma);
this.add(
@@ -657,6 +674,7 @@ public static class Kid extends PhDefault {
* Ctor.
* @param sigma Sigma
*/
+ @SuppressWarnings("PMD.ConstructorOnlyInitializesOrCallOtherConstructors")
Kid(final Phi sigma) {
super(sigma);
this.add("z", new AtVoid("z"));
@@ -678,6 +696,7 @@ public static class EndlessRecursion extends PhDefault {
* Ctor.
* @param sigma Sigma
*/
+ @SuppressWarnings("PMD.ConstructorOnlyInitializesOrCallOtherConstructors")
EndlessRecursion(final Phi sigma) {
super(sigma);
this.add(
@@ -713,6 +732,7 @@ public static class RecursivePhi extends PhDefault {
* Ctor.
* @param sigma Sigma
*/
+ @SuppressWarnings("PMD.ConstructorOnlyInitializesOrCallOtherConstructors")
RecursivePhi(final Phi sigma) {
super(sigma);
this.add(
@@ -748,6 +768,7 @@ public static class RecursivePhiViaNew extends PhDefault {
* Ctor.
* @param sigma Sigma
*/
+ @SuppressWarnings("PMD.ConstructorOnlyInitializesOrCallOtherConstructors")
RecursivePhiViaNew(final Phi sigma) {
super(sigma);
this.add(
diff --git a/eo-runtime/src/test/java/org/eolang/PhLocatedTest.java b/eo-runtime/src/test/java/org/eolang/PhLocatedTest.java
index 66678764b9..1a423fc4c3 100644
--- a/eo-runtime/src/test/java/org/eolang/PhLocatedTest.java
+++ b/eo-runtime/src/test/java/org/eolang/PhLocatedTest.java
@@ -32,7 +32,7 @@
*
* @since 0.36.0
*/
-class PhLocatedTest {
+final class PhLocatedTest {
@Test
void savesLocationAfterCopying() {
diff --git a/eo-runtime/src/test/java/org/eolang/PhLoggedTest.java b/eo-runtime/src/test/java/org/eolang/PhLoggedTest.java
index 47b3d04c39..dada8d8f50 100644
--- a/eo-runtime/src/test/java/org/eolang/PhLoggedTest.java
+++ b/eo-runtime/src/test/java/org/eolang/PhLoggedTest.java
@@ -33,7 +33,7 @@
*
* @since 0.29.0
*/
-class PhLoggedTest {
+final class PhLoggedTest {
@Test
void convertsToOriginTerm() {
@@ -100,6 +100,7 @@ private static final class Dummy extends PhDefault {
* Ctor.
* @param sigma Sigma
*/
+ @SuppressWarnings("PMD.ConstructorOnlyInitializesOrCallOtherConstructors")
private Dummy(final Phi sigma) {
super(sigma);
this.add("x", new AtVoid("x"));
diff --git a/eo-runtime/src/test/java/org/eolang/PhMethodTest.java b/eo-runtime/src/test/java/org/eolang/PhMethodTest.java
index 80f0baf8b7..08895d71d2 100644
--- a/eo-runtime/src/test/java/org/eolang/PhMethodTest.java
+++ b/eo-runtime/src/test/java/org/eolang/PhMethodTest.java
@@ -25,7 +25,6 @@
import org.hamcrest.MatcherAssert;
import org.hamcrest.Matchers;
-import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
/**
@@ -130,6 +129,7 @@ public static class Dummy extends PhDefault {
* Ctor.
* @param sigma Sigma
*/
+ @SuppressWarnings("PMD.ConstructorOnlyInitializesOrCallOtherConstructors")
Dummy(final Phi sigma) {
super(sigma);
this.add(
diff --git a/eo-runtime/src/test/java/org/eolang/PhPackageTest.java b/eo-runtime/src/test/java/org/eolang/PhPackageTest.java
index f77f6b7423..0aca154985 100644
--- a/eo-runtime/src/test/java/org/eolang/PhPackageTest.java
+++ b/eo-runtime/src/test/java/org/eolang/PhPackageTest.java
@@ -47,6 +47,7 @@
*
* @since 0.24
*/
+@SuppressWarnings("PMD.TooManyMethods")
final class PhPackageTest {
/**
diff --git a/eo-runtime/src/test/java/org/eolang/PhWithTest.java b/eo-runtime/src/test/java/org/eolang/PhWithTest.java
index 9cf283fb94..fd9e17a453 100644
--- a/eo-runtime/src/test/java/org/eolang/PhWithTest.java
+++ b/eo-runtime/src/test/java/org/eolang/PhWithTest.java
@@ -135,6 +135,7 @@ private static class DummyWithAtFree extends PhDefault {
* @param attr Free attribute name
* @param sigma Sigma
*/
+ @SuppressWarnings("PMD.ConstructorOnlyInitializesOrCallOtherConstructors")
DummyWithAtFree(final String attr, final Phi sigma) {
super(sigma);
this.add(attr, new AtVoid(attr));
@@ -151,6 +152,7 @@ public static class Dummy extends PhDefault {
* Ctor.
* @param sigma Sigma
*/
+ @SuppressWarnings("PMD.ConstructorOnlyInitializesOrCallOtherConstructors")
Dummy(final Phi sigma) {
super(sigma);
this.add("φ", new AtComposite(this, self -> new Data.ToPhi(1L)));
diff --git a/eo-runtime/src/test/java/org/eolang/UniverseDefaultTest.java b/eo-runtime/src/test/java/org/eolang/UniverseDefaultTest.java
index b99a30353d..10f2cf968e 100644
--- a/eo-runtime/src/test/java/org/eolang/UniverseDefaultTest.java
+++ b/eo-runtime/src/test/java/org/eolang/UniverseDefaultTest.java
@@ -52,7 +52,7 @@ final class UniverseDefaultTest {
/**
* Data byte array.
*/
- private static final byte[] DATA = new BytesOf(123456789L).take();
+ private static final byte[] DATA = new BytesOf(123_456_789L).take();
@Test
void findsSimpleAtt() {
@@ -206,6 +206,7 @@ private static class DummyWithAt extends PhDefault {
* Ctor.
* @param sigma Sigma.
*/
+ @SuppressWarnings("PMD.ConstructorOnlyInitializesOrCallOtherConstructors")
DummyWithAt(final Phi sigma) {
super(sigma);
this.add(
@@ -229,6 +230,7 @@ private static class DummyWithStructure extends PhDefault {
* Ctor.
* @param sigma Sigma
*/
+ @SuppressWarnings("PMD.ConstructorOnlyInitializesOrCallOtherConstructors")
DummyWithStructure(final Phi sigma) {
super(sigma);
this.add(UniverseDefaultTest.ABSTRACT_ATT, new AtComposite(this, DummyWithAt::new));
@@ -245,6 +247,7 @@ private static class DummyAbstract extends PhDefault {
* Ctor.
* @param sigma Sigma
*/
+ @SuppressWarnings("PMD.ConstructorOnlyInitializesOrCallOtherConstructors")
DummyAbstract(final Phi sigma) {
super(sigma);
this.add(
diff --git a/eo-runtime/src/test/java/org/eolang/VerboseBytesAsStringTest.java b/eo-runtime/src/test/java/org/eolang/VerboseBytesAsStringTest.java
index 825931e6d1..89bda4db6f 100644
--- a/eo-runtime/src/test/java/org/eolang/VerboseBytesAsStringTest.java
+++ b/eo-runtime/src/test/java/org/eolang/VerboseBytesAsStringTest.java
@@ -35,6 +35,7 @@
*
* @since 0.1
*/
+@SuppressWarnings("PMD.JUnit5TestShouldBePackagePrivate")
public final class VerboseBytesAsStringTest {
@ParameterizedTest
@@ -118,9 +119,9 @@ public String toString(final Object object) {
*/
public Stream