Inital commit

This commit is contained in:
Erik C. Thauvin 2023-08-29 08:47:13 -07:00
commit 739446ce63
56 changed files with 3401 additions and 0 deletions

55
examples/.gitignore vendored Normal file
View file

@ -0,0 +1,55 @@
.gradle
.DS_Store
build
lib/bld/**
!lib/bld/bld-wrapper.jar
!lib/bld/bld-wrapper.properties
lib/compile/
lib/runtime/
lib/standalone/
lib/test/
# IDEA ignores
# User-specific
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/**/usage.statistics.xml
.idea/**/dictionaries
.idea/**/shelf
# AWS User-specific
.idea/**/aws.xml
# Generated files
.idea/**/contentModel.xml
# Sensitive or high-churn files
.idea/**/dataSources/
.idea/**/dataSources.ids
.idea/**/dataSources.local.xml
.idea/**/sqlDataSources.xml
.idea/**/dynamic.xml
.idea/**/uiDesigner.xml
.idea/**/dbnavigator.xml
# Gradle
.idea/**/gradle.xml
# Mongo Explorer plugin
.idea/**/mongoSettings.xml
# mpeltonen/sbt-idea plugin
.idea_modules/
# JIRA plugin
atlassian-ide-plugin.xml
# Cursive Clojure plugin
.idea/replstate.xml
# SonarLint plugin
.idea/sonarlint/
# Editor-based Rest Client
.idea/httpRequests

3
examples/.idea/.gitignore generated vendored Normal file
View file

@ -0,0 +1,3 @@
# Default ignored files
/shelf/
/workspace.xml

29
examples/.idea/app.iml generated Normal file
View file

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager">
<output url="file://$MODULE_DIR$/build/main" />
<output-test url="file://$MODULE_DIR$/build/test" />
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
<excludeFolder url="file://$MODULE_DIR$/src/main/resources/templates" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module-library" scope="RUNTIME">
<library>
<CLASSES>
<root url="file://$MODULE_DIR$/src/main/resources/templates" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="library" name="compile" level="project" />
<orderEntry type="library" scope="RUNTIME" name="runtime" level="project" />
<orderEntry type="library" scope="TEST" name="test" level="project" />
</component>
</module>

14
examples/.idea/bld.iml generated Normal file
View file

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager">
<output url="file://$MODULE_DIR$/build/bld" />
<output-test url="file://$MODULE_DIR$/build/bld" />
<exclude-output />
<content url="file://$MODULE_DIR$/src/bld">
<sourceFolder url="file://$MODULE_DIR$/src/bld/java" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="bld" level="project" />
</component>
</module>

View file

@ -0,0 +1,8 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="JavadocDeclaration" enabled="true" level="WARNING" enabled_by_default="true">
<option name="ADDITIONAL_TAGS" value="created" />
</inspection_tool>
</profile>
</component>

17
examples/.idea/libraries/bld.xml generated Normal file
View file

@ -0,0 +1,17 @@
<component name="libraryTable">
<library name="bld">
<CLASSES>
<root url="file://$PROJECT_DIR$/lib/bld" />
<root url="jar://$USER_HOME$/.bld/dist/bld-1.7.2.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.bld/dist/bld-1.7.2-sources.jar!/" />
</SOURCES>
<excluded>
<root url="jar://$PROJECT_DIR$/lib/bld/bld-wrapper.jar!/" />
</excluded>
<jarDirectory url="file://$PROJECT_DIR$/lib/bld" recursive="false" />
<jarDirectory url="file://$PROJECT_DIR$/lib/bld" recursive="false" type="SOURCES" />
</library>
</component>

13
examples/.idea/libraries/compile.xml generated Normal file
View file

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="compile">
<CLASSES>
<root url="file://$PROJECT_DIR$/lib/compile" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="file://$PROJECT_DIR$/lib/compile" />
</SOURCES>
<jarDirectory url="file://$PROJECT_DIR$/lib/compile" recursive="false" />
<jarDirectory url="file://$PROJECT_DIR$/lib/compile" recursive="false" type="SOURCES" />
</library>
</component>

14
examples/.idea/libraries/runtime.xml generated Normal file
View file

@ -0,0 +1,14 @@
<component name="libraryTable">
<library name="runtime">
<CLASSES>
<root url="file://$PROJECT_DIR$/lib/runtime" />
<root url="file://$PROJECT_DIR$/src/main/resources" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="file://$PROJECT_DIR$/lib/runtime" />
</SOURCES>
<jarDirectory url="file://$PROJECT_DIR$/lib/runtime" recursive="false" />
<jarDirectory url="file://$PROJECT_DIR$/lib/runtime" recursive="false" type="SOURCES" />
</library>
</component>

14
examples/.idea/libraries/test.xml generated Normal file
View file

@ -0,0 +1,14 @@
<component name="libraryTable">
<library name="test">
<CLASSES>
<root url="file://$PROJECT_DIR$/lib/test" />
<root url="file://$PROJECT_DIR$/src/test/resources" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="file://$PROJECT_DIR$/lib/test" />
</SOURCES>
<jarDirectory url="file://$PROJECT_DIR$/lib/test" recursive="false" />
<jarDirectory url="file://$PROJECT_DIR$/lib/test" recursive="false" type="SOURCES" />
</library>
</component>

13
examples/.idea/misc.xml generated Normal file
View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="EntryPointsManager">
<pattern value="com.example.ExamplesBuild" />
<pattern value="com.example.ExamplesBuild" method="pit" />
</component>
<component name="PDMPlugin">
<option name="skipTestSources" value="false" />
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" project-jdk-name="17" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build" />
</component>
</project>

9
examples/.idea/modules.xml generated Normal file
View file

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/app.iml" filepath="$PROJECT_DIR$/.idea/app.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/bld.iml" filepath="$PROJECT_DIR$/.idea/bld.iml" />
</modules>
</component>
</project>

View file

@ -0,0 +1,9 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Run Tests" type="Application" factoryName="Application" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="com.example.ExamplesTest" />
<module name="app" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
</component>

6
examples/.idea/vcs.xml generated Normal file
View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/.." vcs="Git" />
</component>
</project>

11
examples/.vscode/launch.json vendored Normal file
View file

@ -0,0 +1,11 @@
{
"version": "0.2.0",
"configurations": [
{
"type": "java",
"name": "Run Tests",
"request": "launch",
"mainClass": "com.example.ExamplesTest"
}
]
}

15
examples/.vscode/settings.json vendored Normal file
View file

@ -0,0 +1,15 @@
{
"java.project.sourcePaths": [
"src/main/java",
"src/main/resources",
"src/test/java",
"src/bld/java"
],
"java.configuration.updateBuildConfiguration": "automatic",
"java.project.referencedLibraries": [
"${HOME}/.bld/dist/bld-1.7.2.jar",
"lib/compile/*.jar",
"lib/runtime/*.jar",
"lib/test/*.jar"
]
}

2
examples/bld Executable file
View file

@ -0,0 +1,2 @@
#!/usr/bin/env sh
java -jar "$(dirname "$0")/lib/bld/bld-wrapper.jar" "$0" --build com.example.ExamplesBuild "$@"

4
examples/bld.bat Normal file
View file

@ -0,0 +1,4 @@
@echo off
set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
java -jar "%DIRNAME%/lib/bld/bld-wrapper.jar" "%0" --build com.example.ExamplesBuild %*

Binary file not shown.

View file

@ -0,0 +1,7 @@
bld.downloadExtensionJavadoc=false
bld.downloadExtensionSources=true
bld.extensions=com.uwyn.rife2:bld-pitest:0.9.0-SNAPSHOT
bld.repositories=MAVEN_LOCAL,MAVEN_CENTRAL,RIFE2_RELEASES
bld.downloadLocation=
bld.sourceDirectories=
bld.version=1.7.2

View file

@ -0,0 +1,166 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../style.css">
</head>
<body>
<h1>ExamplesLib.java</h1>
<table class="src">
<tr>
<td class='na'>
<a name='org.pitest.mutationtest.report.html.SourceFile@5609159b_1'/>
1
</td>
<td class=''>
<span class='pop'>
<a href='#grouporg.pitest.mutationtest.report.html.SourceFile@5609159b_1'></a>
<span>
</span>
</span>
</td>
<td class=''><pre><span class=''>package com.example;</span></pre></td></tr>
<tr>
<td class='na'>
<a name='org.pitest.mutationtest.report.html.SourceFile@5609159b_2'/>
2
</td>
<td class=''>
<span class='pop'>
<a href='#grouporg.pitest.mutationtest.report.html.SourceFile@5609159b_2'></a>
<span>
</span>
</span>
</td>
<td class=''><pre><span class=''></span></pre></td></tr>
<tr>
<td class='covered'>
<a name='org.pitest.mutationtest.report.html.SourceFile@5609159b_3'/>
3
</td>
<td class=''>
<span class='pop'>
<a href='#grouporg.pitest.mutationtest.report.html.SourceFile@5609159b_3'></a>
<span>
</span>
</span>
</td>
<td class='covered'><pre><span class=''>public class ExamplesLib {</span></pre></td></tr>
<tr>
<td class='na'>
<a name='org.pitest.mutationtest.report.html.SourceFile@5609159b_4'/>
4
</td>
<td class=''>
<span class='pop'>
<a href='#grouporg.pitest.mutationtest.report.html.SourceFile@5609159b_4'></a>
<span>
</span>
</span>
</td>
<td class=''><pre><span class=''> public String getMessage() {</span></pre></td></tr>
<tr>
<td class='covered'>
<a name='org.pitest.mutationtest.report.html.SourceFile@5609159b_5'/>
5
</td>
<td class='killed'>
<span class='pop'>
<a href='#grouporg.pitest.mutationtest.report.html.SourceFile@5609159b_5'>1</a>
<span>
1. getMessage : replaced return value with &#34;&#34; for com/example/ExamplesLib::getMessage &rarr; KILLED<br/>
</span>
</span>
</td>
<td class='covered'><pre><span class='killed'> return &#34;Hello World!&#34;;</span></pre></td></tr>
<tr>
<td class='na'>
<a name='org.pitest.mutationtest.report.html.SourceFile@5609159b_6'/>
6
</td>
<td class=''>
<span class='pop'>
<a href='#grouporg.pitest.mutationtest.report.html.SourceFile@5609159b_6'></a>
<span>
</span>
</span>
</td>
<td class=''><pre><span class=''> }</span></pre></td></tr>
<tr>
<td class='na'>
<a name='org.pitest.mutationtest.report.html.SourceFile@5609159b_7'/>
7
</td>
<td class=''>
<span class='pop'>
<a href='#grouporg.pitest.mutationtest.report.html.SourceFile@5609159b_7'></a>
<span>
</span>
</span>
</td>
<td class=''><pre><span class=''>}</span></pre></td></tr>
<tr><td></td><td></td><td><h2>Mutations</h2></td></tr>
<tr>
<td><a href='#org.pitest.mutationtest.report.html.SourceFile@5609159b_5'>5</a></td>
<td></td>
<td>
<a name='grouporg.pitest.mutationtest.report.html.SourceFile@5609159b_5'/>
<p class='KILLED'><span class='pop'>1.<span><b>1</b><br/><b>Location : </b>getMessage<br/><b>Killed by : </b>com.example.ExamplesTest.[engine:junit-jupiter]/[class:com.example.ExamplesTest]/[method:verifyHello()]</span></span> replaced return value with &#34;&#34; for com/example/ExamplesLib::getMessage &rarr; KILLED</p>
</td>
</tr>
</table>
<h2>Active mutators</h2>
<ul>
<li class='mutator'>CONDITIONALS_BOUNDARY</li>
<li class='mutator'>EMPTY_RETURNS</li>
<li class='mutator'>FALSE_RETURNS</li>
<li class='mutator'>INCREMENTS</li>
<li class='mutator'>INVERT_NEGS</li>
<li class='mutator'>MATH</li>
<li class='mutator'>NEGATE_CONDITIONALS</li>
<li class='mutator'>NULL_RETURNS</li>
<li class='mutator'>PRIMITIVE_RETURNS</li>
<li class='mutator'>TRUE_RETURNS</li>
<li class='mutator'>VOID_METHOD_CALLS</li>
</ul>
<h2>Tests examined</h2>
<ul>
<li>com.example.ExamplesTest.[engine:junit-jupiter]/[class:com.example.ExamplesTest]/[method:verifyHello()] (7 ms)</li>
</ul>
<br/>
Report generated by <a href='https://pitest.org'>PIT</a> 1.14.4
</body>
</html>

View file

@ -0,0 +1,241 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../style.css">
</head>
<body>
<h1>ExamplesTest.java</h1>
<table class="src">
<tr>
<td class='na'>
<a name='org.pitest.mutationtest.report.html.SourceFile@2f465398_1'/>
1
</td>
<td class=''>
<span class='pop'>
<a href='#grouporg.pitest.mutationtest.report.html.SourceFile@2f465398_1'></a>
<span>
</span>
</span>
</td>
<td class=''><pre><span class=''>package com.example;</span></pre></td></tr>
<tr>
<td class='na'>
<a name='org.pitest.mutationtest.report.html.SourceFile@2f465398_2'/>
2
</td>
<td class=''>
<span class='pop'>
<a href='#grouporg.pitest.mutationtest.report.html.SourceFile@2f465398_2'></a>
<span>
</span>
</span>
</td>
<td class=''><pre><span class=''></span></pre></td></tr>
<tr>
<td class='na'>
<a name='org.pitest.mutationtest.report.html.SourceFile@2f465398_3'/>
3
</td>
<td class=''>
<span class='pop'>
<a href='#grouporg.pitest.mutationtest.report.html.SourceFile@2f465398_3'></a>
<span>
</span>
</span>
</td>
<td class=''><pre><span class=''>import org.junit.jupiter.api.Test;</span></pre></td></tr>
<tr>
<td class='na'>
<a name='org.pitest.mutationtest.report.html.SourceFile@2f465398_4'/>
4
</td>
<td class=''>
<span class='pop'>
<a href='#grouporg.pitest.mutationtest.report.html.SourceFile@2f465398_4'></a>
<span>
</span>
</span>
</td>
<td class=''><pre><span class=''></span></pre></td></tr>
<tr>
<td class='na'>
<a name='org.pitest.mutationtest.report.html.SourceFile@2f465398_5'/>
5
</td>
<td class=''>
<span class='pop'>
<a href='#grouporg.pitest.mutationtest.report.html.SourceFile@2f465398_5'></a>
<span>
</span>
</span>
</td>
<td class=''><pre><span class=''>import static org.junit.jupiter.api.Assertions.assertEquals;</span></pre></td></tr>
<tr>
<td class='na'>
<a name='org.pitest.mutationtest.report.html.SourceFile@2f465398_6'/>
6
</td>
<td class=''>
<span class='pop'>
<a href='#grouporg.pitest.mutationtest.report.html.SourceFile@2f465398_6'></a>
<span>
</span>
</span>
</td>
<td class=''><pre><span class=''></span></pre></td></tr>
<tr>
<td class='covered'>
<a name='org.pitest.mutationtest.report.html.SourceFile@2f465398_7'/>
7
</td>
<td class=''>
<span class='pop'>
<a href='#grouporg.pitest.mutationtest.report.html.SourceFile@2f465398_7'></a>
<span>
</span>
</span>
</td>
<td class='covered'><pre><span class=''>public class ExamplesTest {</span></pre></td></tr>
<tr>
<td class='na'>
<a name='org.pitest.mutationtest.report.html.SourceFile@2f465398_8'/>
8
</td>
<td class=''>
<span class='pop'>
<a href='#grouporg.pitest.mutationtest.report.html.SourceFile@2f465398_8'></a>
<span>
</span>
</span>
</td>
<td class=''><pre><span class=''> @Test</span></pre></td></tr>
<tr>
<td class='na'>
<a name='org.pitest.mutationtest.report.html.SourceFile@2f465398_9'/>
9
</td>
<td class=''>
<span class='pop'>
<a href='#grouporg.pitest.mutationtest.report.html.SourceFile@2f465398_9'></a>
<span>
</span>
</span>
</td>
<td class=''><pre><span class=''> void verifyHello() {</span></pre></td></tr>
<tr>
<td class='covered'>
<a name='org.pitest.mutationtest.report.html.SourceFile@2f465398_10'/>
10
</td>
<td class='survived'>
<span class='pop'>
<a href='#grouporg.pitest.mutationtest.report.html.SourceFile@2f465398_10'>1</a>
<span>
1. verifyHello : removed call to org/junit/jupiter/api/Assertions::assertEquals &rarr; SURVIVED<br/>
</span>
</span>
</td>
<td class='covered'><pre><span class='survived'> assertEquals(&#34;Hello World!&#34;, new ExamplesLib().getMessage());</span></pre></td></tr>
<tr>
<td class='covered'>
<a name='org.pitest.mutationtest.report.html.SourceFile@2f465398_11'/>
11
</td>
<td class=''>
<span class='pop'>
<a href='#grouporg.pitest.mutationtest.report.html.SourceFile@2f465398_11'></a>
<span>
</span>
</span>
</td>
<td class='covered'><pre><span class=''> }</span></pre></td></tr>
<tr>
<td class='na'>
<a name='org.pitest.mutationtest.report.html.SourceFile@2f465398_12'/>
12
</td>
<td class=''>
<span class='pop'>
<a href='#grouporg.pitest.mutationtest.report.html.SourceFile@2f465398_12'></a>
<span>
</span>
</span>
</td>
<td class=''><pre><span class=''>}</span></pre></td></tr>
<tr><td></td><td></td><td><h2>Mutations</h2></td></tr>
<tr>
<td><a href='#org.pitest.mutationtest.report.html.SourceFile@2f465398_10'>10</a></td>
<td></td>
<td>
<a name='grouporg.pitest.mutationtest.report.html.SourceFile@2f465398_10'/>
<p class='SURVIVED'><span class='pop'>1.<span><b>1</b><br/><b>Location : </b>verifyHello<br/><b>Killed by : </b>none</span></span> removed call to org/junit/jupiter/api/Assertions::assertEquals &rarr; SURVIVED</p>
</td>
</tr>
</table>
<h2>Active mutators</h2>
<ul>
<li class='mutator'>CONDITIONALS_BOUNDARY</li>
<li class='mutator'>EMPTY_RETURNS</li>
<li class='mutator'>FALSE_RETURNS</li>
<li class='mutator'>INCREMENTS</li>
<li class='mutator'>INVERT_NEGS</li>
<li class='mutator'>MATH</li>
<li class='mutator'>NEGATE_CONDITIONALS</li>
<li class='mutator'>NULL_RETURNS</li>
<li class='mutator'>PRIMITIVE_RETURNS</li>
<li class='mutator'>TRUE_RETURNS</li>
<li class='mutator'>VOID_METHOD_CALLS</li>
</ul>
<h2>Tests examined</h2>
<ul>
<li>com.example.ExamplesTest.[engine:junit-jupiter]/[class:com.example.ExamplesTest]/[method:verifyHello()] (7 ms)</li>
</ul>
<br/>
Report generated by <a href='https://pitest.org'>PIT</a> 1.14.4
</body>
</html>

View file

@ -0,0 +1,69 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../style.css">
</head>
<body>
<h1>Pit Test Coverage Report</h1>
<h2>Package Summary</h2>
<h3>com.example</h3>
<table>
<thead>
<tr>
<th>Number of Classes</th>
<th>Line Coverage</th>
<th>Mutation Coverage</th>
<th>Test Strength</th>
</tr>
</thead>
<tbody>
<tr>
<td>2</td>
<td>100% <div class="coverage_bar"><div class="coverage_complete width-100"></div><div class="coverage_legend">5/5</div></div></td>
<td>50% <div class="coverage_bar"><div class="coverage_complete width-50"></div><div class="coverage_legend">1/2</div></div></td>
<td>50% <div class="coverage_bar"><div class="coverage_complete width-50"></div><div class="coverage_legend">1/2</div></div></td>
</tr>
</tbody>
</table>
<h3>Breakdown by Class</h3>
<table>
<thead>
<tr>
<th>Name</th>
<th>Line Coverage</th>
<th>Mutation Coverage</th>
<th>Test Strength</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="./ExamplesLib.java.html">ExamplesLib.java</a></td>
<td><div class="coverage_percentage">100% </div><div class="coverage_bar"><div class="coverage_complete width-100"></div><div class="coverage_legend">2/2</div></div></td>
<td><div class="coverage_percentage">100% </div><div class="coverage_bar"><div class="coverage_complete width-100"></div><div class="coverage_legend">1/1</div></div></td>
<td><div class="coverage_percentage">100% </div><div class="coverage_bar"><div class="coverage_complete width-100"></div><div class="coverage_legend">1/1</div></div></td>
</tr>
<tr>
<td><a href="./ExamplesTest.java.html">ExamplesTest.java</a></td>
<td><div class="coverage_percentage">100% </div><div class="coverage_bar"><div class="coverage_complete width-100"></div><div class="coverage_legend">3/3</div></div></td>
<td><div class="coverage_percentage">0% </div><div class="coverage_bar"><div class="coverage_complete width-0"></div><div class="coverage_legend">0/1</div></div></td>
<td><div class="coverage_percentage">0% </div><div class="coverage_bar"><div class="coverage_complete width-0"></div><div class="coverage_legend">0/1</div></div></td>
</tr>
</tbody>
</table>
<br/>
<hr/>
Report generated by <a href='https://pitest.org'>PIT</a> 1.14.4
</body>
</html>

View file

@ -0,0 +1,69 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<h1>Pit Test Coverage Report</h1>
<h3>Project Summary</h3>
<table>
<thead>
<tr>
<th>Number of Classes</th>
<th>Line Coverage</th>
<th>Mutation Coverage</th>
<th>Test Strength</th>
</tr>
</thead>
<tbody>
<tr>
<td>2</td>
<td>100% <div class="coverage_bar"><div class="coverage_complete width-100"></div><div class="coverage_legend">5/5</div></div></td>
<td>50% <div class="coverage_bar"><div class="coverage_complete width-50"></div><div class="coverage_legend">1/2</div></div></td>
<td>50% <div class="coverage_bar"><div class="coverage_complete width-50"></div><div class="coverage_legend">1/2</div></div></td>
</tr>
</tbody>
</table>
<h3>Breakdown by Package</h3>
<table>
<thead>
<tr>
<th>Name</th>
<th>Number of Classes</th>
<th>Line Coverage</th>
<th>Mutation Coverage</th>
<th>Test Strength</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="./com.example/index.html">com.example</a></td>
<td>2</td>
<td><div class="coverage_percentage">100% </div><div class="coverage_bar"><div class="coverage_complete width-100"></div><div class="coverage_legend">5/5</div></div></td>
<td><div class="coverage_percentage">50% </div><div class="coverage_bar"><div class="coverage_complete width-50"></div><div class="coverage_legend">1/2</div></div></td>
<td><div class="coverage_percentage">50% </div><div class="coverage_bar"><div class="coverage_complete width-50"></div><div class="coverage_legend">1/2</div></div></td>
</tr>
</tbody>
</table>
<br/>
<hr/>
Report generated by <a href='https://pitest.org'>PIT</a> 1.14.4
<br/>
<br/>
Enhanced functionality available at <a href='https://www.arcmutate.com/'>arcmutate.com</a>
</body>
</html>

View file

@ -0,0 +1,563 @@
html, body, div, span, p, blockquote, pre {
margin: 0;
padding: 0;
border: 0;
outline: 0;
font-weight: inherit;
font-style: inherit;
font-size: 100%;
font-family: inherit;
vertical-align: baseline;
}
body{
line-height: 1;
color: black;
background: white;
margin-left: 20px;
}
.src {
border: 1px solid #dddddd;
padding-top: 10px;
padding-right: 5px;
padding-left: 5px;
font-family: Consolas, Courier, monospace;
}
.covered, .COVERED {
background-color: #ddffdd;
}
.uncovered, .UNCOVERED {
background-color: #ffdddd;
}
.killed, .KILLED {
background-color: #aaffaa;
}
.survived, .SURVIVED {
background-color: #ffaaaa;
}
.uncertain, .UNCERTAIN {
background-color: #dde7ef;
}
.run_error, .RUN_ERROR {
background-color: #dde7ef;
}
.na {
background-color: #eeeeee;
}
.timed_out, .TIMED_OUT {
background-color: #dde7ef;
}
.non_viable, .NON_VIABLE {
background-color: #aaffaa;
}
.memory_error, .MEMORY_ERROR {
background-color: #dde7ef;
}
.not_started, .NO_STARTED {
background-color: #dde7ef; color : red
}
.no_coverage, .NO_COVERAGE {
background-color: #ffaaaa;
}
.tests {
width: 50%;
float: left;
}
.mutees {
float: right;
width: 50%;
}
.unit {
padding-top: 20px;
clear: both;
}
.coverage_bar {
display: inline-block;
height: 1.1em;
width: 130px;
background: #FAA;
margin: 0 5px;
vertical-align: middle;
border: 1px solid #AAA;
position: relative;
}
.coverage_complete {
display: inline-block;
height: 100%;
background: #DFD;
float: left;
}
.coverage_legend {
position: absolute;
height: 100%;
width: 100%;
left: 0;
top: 0;
text-align: center;
}
.line, .mut {
vertical-align: middle;
}
.coverage_percentage {
display: inline-block;
width: 3em;
text-align: right;
}
.pop {
outline:none;
}
.pop strong {
line-height: 30px;
}
.pop {
text-decoration: none;
}
.pop span {
z-index: 10;
display: none;
padding: 14px 20px;
margin-top: -30px;
margin-left: 28px;
width: 800px;
line-height: 16px;
word-wrap: break-word;
border-radius: 4px;
-moz-border-radius: 4px;
-webkit-border-radius: 4px;
-moz-box-shadow: 5px 5px 8px #CCC;
-webkit-box-shadow: 5px 5px 8px #CCC;
box-shadow: 5px 5px 8px #CCC;
}
.pop:hover span {
display: inline;
position: absolute;
color: #111;
border: 1px solid #DCA;
background: #fffAF0;
}
.width-1 {
width: 1%;
}
.width-2 {
width: 2%;
}
.width-3 {
width: 3%;
}
.width-4 {
width: 4%;
}
.width-5 {
width: 5%;
}
.width-6 {
width: 6%;
}
.width-7 {
width: 7%;
}
.width-8 {
width: 8%;
}
.width-9 {
width: 9%;
}
.width-10 {
width: 10%;
}
.width-11 {
width: 11%;
}
.width-12 {
width: 12%;
}
.width-13 {
width: 13%;
}
.width-14 {
width: 14%;
}
.width-15 {
width: 15%;
}
.width-16 {
width: 16%;
}
.width-17 {
width: 17%;
}
.width-18 {
width: 18%;
}
.width-19 {
width: 19%;
}
.width-20 {
width: 20%;
}
.width-21 {
width: 21%;
}
.width-22 {
width: 22%;
}
.width-23 {
width: 23%;
}
.width-24 {
width: 24%;
}
.width-25 {
width: 25%;
}
.width-26 {
width: 26%;
}
.width-27 {
width: 27%;
}
.width-28 {
width: 28%;
}
.width-29 {
width: 29%;
}
.width-30 {
width: 30%;
}
.width-31 {
width: 31%;
}
.width-32 {
width: 32%;
}
.width-33 {
width: 33%;
}
.width-34 {
width: 34%;
}
.width-35 {
width: 35%;
}
.width-36 {
width: 36%;
}
.width-37 {
width: 37%;
}
.width-38 {
width: 38%;
}
.width-39 {
width: 39%;
}
.width-40 {
width: 40%;
}
.width-41 {
width: 41%;
}
.width-42 {
width: 42%;
}
.width-43 {
width: 43%;
}
.width-44 {
width: 44%;
}
.width-45 {
width: 45%;
}
.width-46 {
width: 46%;
}
.width-47 {
width: 47%;
}
.width-48 {
width: 48%;
}
.width-49 {
width: 49%;
}
.width-50 {
width: 50%;
}
.width-51 {
width: 51%;
}
.width-52 {
width: 52%;
}
.width-53 {
width: 53%;
}
.width-54 {
width: 54%;
}
.width-55 {
width: 55%;
}
.width-56 {
width: 56%;
}
.width-57 {
width: 57%;
}
.width-58 {
width: 58%;
}
.width-59 {
width: 59%;
}
.width-60 {
width: 60%;
}
.width-61 {
width: 61%;
}
.width-62 {
width: 62%;
}
.width-63 {
width: 63%;
}
.width-64 {
width: 64%;
}
.width-65 {
width: 65%;
}
.width-66 {
width: 66%;
}
.width-67 {
width: 67%;
}
.width-68 {
width: 68%;
}
.width-69 {
width: 69%;
}
.width-70 {
width: 70%;
}
.width-71 {
width: 71%;
}
.width-72 {
width: 72%;
}
.width-73 {
width: 73%;
}
.width-74 {
width: 74%;
}
.width-75 {
width: 75%;
}
.width-76 {
width: 76%;
}
.width-77 {
width: 77%;
}
.width-78 {
width: 78%;
}
.width-79 {
width: 79%;
}
.width-80 {
width: 80%;
}
.width-81 {
width: 81%;
}
.width-82 {
width: 82%;
}
.width-83 {
width: 83%;
}
.width-84 {
width: 84%;
}
.width-85 {
width: 85%;
}
.width-86 {
width: 86%;
}
.width-87 {
width: 87%;
}
.width-88 {
width: 88%;
}
.width-89 {
width: 89%;
}
.width-90 {
width: 90%;
}
.width-91 {
width: 91%;
}
.width-92 {
width: 92%;
}
.width-93 {
width: 93%;
}
.width-94 {
width: 94%;
}
.width-95 {
width: 95%;
}
.width-96 {
width: 96%;
}
.width-97 {
width: 97%;
}
.width-98 {
width: 98%;
}
.width-99 {
width: 99%;
}
.width-100 {
width: 100%;
}

View file

@ -0,0 +1,46 @@
package com.example;
import rife.bld.BuildCommand;
import rife.bld.Project;
import rife.bld.extension.PitestOperation;
import rife.tools.FileUtils;
import java.nio.file.Path;
import java.util.List;
import static rife.bld.dependencies.Scope.test;
import static rife.bld.dependencies.Repository.MAVEN_CENTRAL;
import static rife.bld.dependencies.Repository.RIFE2_RELEASES;
public class ExamplesBuild extends Project {
public ExamplesBuild() {
pkg = "com.example";
name = "Examples";
version = version(0, 1, 0);
repositories = List.of(MAVEN_CENTRAL, RIFE2_RELEASES);
scope(test)
.include(dependency("org.pitest", "pitest", version(1, 14, 4)))
.include(dependency("org.pitest", "pitest-command-line", version(1, 14, 4)))
.include(dependency("org.pitest", "pitest-junit5-plugin", version(1, 2, 0)))
.include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 10, 0)))
.include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 10, 0)));
}
public static void main(String[] args) {
new ExamplesBuild().start(args);
}
@BuildCommand(summary = "Run PIT mutation tests")
public void pit() throws Exception {
new PitestOperation()
.fromProject(this)
.reportDir(Path.of("reports", "mutations").toString())
.targetClasses(pkg + ".*")
.targetTests(pkg + ".*")
.verbose(true)
.execute();
}
}

View file

@ -0,0 +1,7 @@
package com.example;
public class ExamplesLib {
public String getMessage() {
return "Hello World!";
}
}

View file

@ -0,0 +1,12 @@
package com.example;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class ExamplesTest {
@Test
void verifyHello() {
assertEquals("Hello World!", new ExamplesLib().getMessage());
}
}