init
This commit is contained in:
		
							parent
							
								
									be1f0de3ff
								
							
						
					
					
						commit
						2c02f7eef1
					
				
							
								
								
									
										
											BIN
										
									
								
								.gradle/7.5.1/checksums/checksums.lock
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.gradle/7.5.1/checksums/checksums.lock
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.gradle/7.5.1/dependencies-accessors/dependencies-accessors.lock
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.gradle/7.5.1/dependencies-accessors/dependencies-accessors.lock
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										0
									
								
								.gradle/7.5.1/dependencies-accessors/gc.properties
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								.gradle/7.5.1/dependencies-accessors/gc.properties
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.gradle/7.5.1/executionHistory/executionHistory.bin
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.gradle/7.5.1/executionHistory/executionHistory.bin
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.gradle/7.5.1/executionHistory/executionHistory.lock
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.gradle/7.5.1/executionHistory/executionHistory.lock
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.gradle/7.5.1/fileChanges/last-build.bin
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.gradle/7.5.1/fileChanges/last-build.bin
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.gradle/7.5.1/fileHashes/fileHashes.bin
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.gradle/7.5.1/fileHashes/fileHashes.bin
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.gradle/7.5.1/fileHashes/fileHashes.lock
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.gradle/7.5.1/fileHashes/fileHashes.lock
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.gradle/7.5.1/fileHashes/resourceHashesCache.bin
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.gradle/7.5.1/fileHashes/resourceHashesCache.bin
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										0
									
								
								.gradle/7.5.1/gc.properties
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								.gradle/7.5.1/gc.properties
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.gradle/buildOutputCleanup/buildOutputCleanup.lock
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.gradle/buildOutputCleanup/buildOutputCleanup.lock
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										2
									
								
								.gradle/buildOutputCleanup/cache.properties
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								.gradle/buildOutputCleanup/cache.properties
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,2 @@
 | 
			
		||||
#Tue Sep 27 08:56:27 BST 2022
 | 
			
		||||
gradle.version=7.5.1
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								.gradle/buildOutputCleanup/outputFiles.bin
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.gradle/buildOutputCleanup/outputFiles.bin
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.gradle/file-system.probe
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.gradle/file-system.probe
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										0
									
								
								.gradle/vcs-1/gc.properties
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								.gradle/vcs-1/gc.properties
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										
											BIN
										
									
								
								bin/main/practical1/NumberTools.class
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								bin/main/practical1/NumberTools.class
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								bin/main/practical1/Practical1.class
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								bin/main/practical1/Practical1.class
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								bin/test/practical1/NumberToolsTest.class
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								bin/test/practical1/NumberToolsTest.class
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										37
									
								
								build.gradle
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								build.gradle
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,37 @@
 | 
			
		||||
/*
 | 
			
		||||
 * This file was generated by the Gradle 'init' task.
 | 
			
		||||
 *
 | 
			
		||||
 * This is a general purpose Gradle build.
 | 
			
		||||
 * Learn more about Gradle by exploring our samples at https://docs.gradle.org/7.4.2/samples
 | 
			
		||||
 */
 | 
			
		||||
plugins {
 | 
			
		||||
    id 'java'
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
sourceCompatibility = 11
 | 
			
		||||
 | 
			
		||||
// this tells Gradle where to find the dependencies
 | 
			
		||||
// mavenCentral has pretty much anything you're likely to want
 | 
			
		||||
repositories {
 | 
			
		||||
    mavenCentral()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// "implementation" dependencies are needed by the program to run.
 | 
			
		||||
// "TestImplementation" dependencies are only needed when testing the program.
 | 
			
		||||
// We’ll come back to that shortly.
 | 
			
		||||
dependencies {
 | 
			
		||||
	implementation group: 'com.github.spullara.cli-parser', name: 'cli-parser', version: '1.1.5'
 | 
			
		||||
	implementation group: 'org.apache.commons', name: 'commons-math3', version: '3.0'
 | 
			
		||||
	implementation group: 'com.opencsv', name: 'opencsv', version: '3.7'
 | 
			
		||||
	testImplementation group: 'junit', name: 'junit', version: '4.13.2'
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// this will gather up all the libraries and include them in the "build" jar
 | 
			
		||||
// so the program can be more easily run
 | 
			
		||||
jar {
 | 
			
		||||
	duplicatesStrategy = DuplicatesStrategy.EXCLUDE
 | 
			
		||||
    
 | 
			
		||||
    from {
 | 
			
		||||
        configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								build/classes/java/main/practical1/NumberTools.class
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								build/classes/java/main/practical1/NumberTools.class
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								build/classes/java/main/practical1/Practical1.class
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								build/classes/java/main/practical1/Practical1.class
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								build/classes/java/test/practical1/NumberToolsTest.class
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								build/classes/java/test/practical1/NumberToolsTest.class
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								build/libs/Practical1Gradle.jar
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								build/libs/Practical1Gradle.jar
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										101
									
								
								build/reports/tests/test/classes/practical1.NumberToolsTest.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										101
									
								
								build/reports/tests/test/classes/practical1.NumberToolsTest.html
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,101 @@
 | 
			
		||||
<!DOCTYPE html>
 | 
			
		||||
<html>
 | 
			
		||||
<head>
 | 
			
		||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
 | 
			
		||||
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
 | 
			
		||||
<title>Test results - Class practical1.NumberToolsTest</title>
 | 
			
		||||
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
 | 
			
		||||
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
 | 
			
		||||
<script src="../js/report.js" type="text/javascript"></script>
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
<div id="content">
 | 
			
		||||
<h1>Class practical1.NumberToolsTest</h1>
 | 
			
		||||
<div class="breadcrumbs">
 | 
			
		||||
<a href="../index.html">all</a> > 
 | 
			
		||||
<a href="../packages/practical1.html">practical1</a> > NumberToolsTest</div>
 | 
			
		||||
<div id="summary">
 | 
			
		||||
<table>
 | 
			
		||||
<tr>
 | 
			
		||||
<td>
 | 
			
		||||
<div class="summaryGroup">
 | 
			
		||||
<table>
 | 
			
		||||
<tr>
 | 
			
		||||
<td>
 | 
			
		||||
<div class="infoBox" id="tests">
 | 
			
		||||
<div class="counter">2</div>
 | 
			
		||||
<p>tests</p>
 | 
			
		||||
</div>
 | 
			
		||||
</td>
 | 
			
		||||
<td>
 | 
			
		||||
<div class="infoBox" id="failures">
 | 
			
		||||
<div class="counter">0</div>
 | 
			
		||||
<p>failures</p>
 | 
			
		||||
</div>
 | 
			
		||||
</td>
 | 
			
		||||
<td>
 | 
			
		||||
<div class="infoBox" id="ignored">
 | 
			
		||||
<div class="counter">0</div>
 | 
			
		||||
<p>ignored</p>
 | 
			
		||||
</div>
 | 
			
		||||
</td>
 | 
			
		||||
<td>
 | 
			
		||||
<div class="infoBox" id="duration">
 | 
			
		||||
<div class="counter">0.019s</div>
 | 
			
		||||
<p>duration</p>
 | 
			
		||||
</div>
 | 
			
		||||
</td>
 | 
			
		||||
</tr>
 | 
			
		||||
</table>
 | 
			
		||||
</div>
 | 
			
		||||
</td>
 | 
			
		||||
<td>
 | 
			
		||||
<div class="infoBox success" id="successRate">
 | 
			
		||||
<div class="percent">100%</div>
 | 
			
		||||
<p>successful</p>
 | 
			
		||||
</div>
 | 
			
		||||
</td>
 | 
			
		||||
</tr>
 | 
			
		||||
</table>
 | 
			
		||||
</div>
 | 
			
		||||
<div id="tabs">
 | 
			
		||||
<ul class="tabLinks">
 | 
			
		||||
<li>
 | 
			
		||||
<a href="#tab0">Tests</a>
 | 
			
		||||
</li>
 | 
			
		||||
</ul>
 | 
			
		||||
<div id="tab0" class="tab">
 | 
			
		||||
<h2>Tests</h2>
 | 
			
		||||
<table>
 | 
			
		||||
<thead>
 | 
			
		||||
<tr>
 | 
			
		||||
<th>Test</th>
 | 
			
		||||
<th>Duration</th>
 | 
			
		||||
<th>Result</th>
 | 
			
		||||
</tr>
 | 
			
		||||
</thead>
 | 
			
		||||
<tr>
 | 
			
		||||
<td class="success">testComputeStatistic</td>
 | 
			
		||||
<td class="success">0.011s</td>
 | 
			
		||||
<td class="success">passed</td>
 | 
			
		||||
</tr>
 | 
			
		||||
<tr>
 | 
			
		||||
<td class="success">testParse</td>
 | 
			
		||||
<td class="success">0.008s</td>
 | 
			
		||||
<td class="success">passed</td>
 | 
			
		||||
</tr>
 | 
			
		||||
</table>
 | 
			
		||||
</div>
 | 
			
		||||
</div>
 | 
			
		||||
<div id="footer">
 | 
			
		||||
<p>
 | 
			
		||||
<div>
 | 
			
		||||
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
 | 
			
		||||
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
 | 
			
		||||
</label>
 | 
			
		||||
</div>Generated by 
 | 
			
		||||
<a href="http://www.gradle.org">Gradle 7.5.1</a> at 27 Sept 2022, 08:56:28</p>
 | 
			
		||||
</div>
 | 
			
		||||
</div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
							
								
								
									
										179
									
								
								build/reports/tests/test/css/base-style.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										179
									
								
								build/reports/tests/test/css/base-style.css
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,179 @@
 | 
			
		||||
 | 
			
		||||
body {
 | 
			
		||||
    margin: 0;
 | 
			
		||||
    padding: 0;
 | 
			
		||||
    font-family: sans-serif;
 | 
			
		||||
    font-size: 12pt;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
body, a, a:visited {
 | 
			
		||||
    color: #303030;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#content {
 | 
			
		||||
    padding-left: 50px;
 | 
			
		||||
    padding-right: 50px;
 | 
			
		||||
    padding-top: 30px;
 | 
			
		||||
    padding-bottom: 30px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#content h1 {
 | 
			
		||||
    font-size: 160%;
 | 
			
		||||
    margin-bottom: 10px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#footer {
 | 
			
		||||
    margin-top: 100px;
 | 
			
		||||
    font-size: 80%;
 | 
			
		||||
    white-space: nowrap;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#footer, #footer a {
 | 
			
		||||
    color: #a0a0a0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#line-wrapping-toggle {
 | 
			
		||||
    vertical-align: middle;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#label-for-line-wrapping-toggle {
 | 
			
		||||
    vertical-align: middle;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ul {
 | 
			
		||||
    margin-left: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
h1, h2, h3 {
 | 
			
		||||
    white-space: nowrap;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
h2 {
 | 
			
		||||
    font-size: 120%;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ul.tabLinks {
 | 
			
		||||
    padding-left: 0;
 | 
			
		||||
    padding-top: 10px;
 | 
			
		||||
    padding-bottom: 10px;
 | 
			
		||||
    overflow: auto;
 | 
			
		||||
    min-width: 800px;
 | 
			
		||||
    width: auto !important;
 | 
			
		||||
    width: 800px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ul.tabLinks li {
 | 
			
		||||
    float: left;
 | 
			
		||||
    height: 100%;
 | 
			
		||||
    list-style: none;
 | 
			
		||||
    padding-left: 10px;
 | 
			
		||||
    padding-right: 10px;
 | 
			
		||||
    padding-top: 5px;
 | 
			
		||||
    padding-bottom: 5px;
 | 
			
		||||
    margin-bottom: 0;
 | 
			
		||||
    -moz-border-radius: 7px;
 | 
			
		||||
    border-radius: 7px;
 | 
			
		||||
    margin-right: 25px;
 | 
			
		||||
    border: solid 1px #d4d4d4;
 | 
			
		||||
    background-color: #f0f0f0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ul.tabLinks li:hover {
 | 
			
		||||
    background-color: #fafafa;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ul.tabLinks li.selected {
 | 
			
		||||
    background-color: #c5f0f5;
 | 
			
		||||
    border-color: #c5f0f5;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ul.tabLinks a {
 | 
			
		||||
    font-size: 120%;
 | 
			
		||||
    display: block;
 | 
			
		||||
    outline: none;
 | 
			
		||||
    text-decoration: none;
 | 
			
		||||
    margin: 0;
 | 
			
		||||
    padding: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ul.tabLinks li h2 {
 | 
			
		||||
    margin: 0;
 | 
			
		||||
    padding: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.tab {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.selected {
 | 
			
		||||
    display: block;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.deselected {
 | 
			
		||||
    display: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.tab table {
 | 
			
		||||
    min-width: 350px;
 | 
			
		||||
    width: auto !important;
 | 
			
		||||
    width: 350px;
 | 
			
		||||
    border-collapse: collapse;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.tab th, div.tab table {
 | 
			
		||||
    border-bottom: solid #d0d0d0 1px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.tab th {
 | 
			
		||||
    text-align: left;
 | 
			
		||||
    white-space: nowrap;
 | 
			
		||||
    padding-left: 6em;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.tab th:first-child {
 | 
			
		||||
    padding-left: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.tab td {
 | 
			
		||||
    white-space: nowrap;
 | 
			
		||||
    padding-left: 6em;
 | 
			
		||||
    padding-top: 5px;
 | 
			
		||||
    padding-bottom: 5px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.tab td:first-child {
 | 
			
		||||
    padding-left: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.tab td.numeric, div.tab th.numeric {
 | 
			
		||||
    text-align: right;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
span.code {
 | 
			
		||||
    display: inline-block;
 | 
			
		||||
    margin-top: 0em;
 | 
			
		||||
    margin-bottom: 1em;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
span.code pre {
 | 
			
		||||
    font-size: 11pt;
 | 
			
		||||
    padding-top: 10px;
 | 
			
		||||
    padding-bottom: 10px;
 | 
			
		||||
    padding-left: 10px;
 | 
			
		||||
    padding-right: 10px;
 | 
			
		||||
    margin: 0;
 | 
			
		||||
    background-color: #f7f7f7;
 | 
			
		||||
    border: solid 1px #d0d0d0;
 | 
			
		||||
    min-width: 700px;
 | 
			
		||||
    width: auto !important;
 | 
			
		||||
    width: 700px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
span.wrapped pre {
 | 
			
		||||
    word-wrap: break-word;
 | 
			
		||||
    white-space: pre-wrap;
 | 
			
		||||
    word-break: break-all;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
label.hidden {
 | 
			
		||||
    display: none;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										84
									
								
								build/reports/tests/test/css/style.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										84
									
								
								build/reports/tests/test/css/style.css
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,84 @@
 | 
			
		||||
 | 
			
		||||
#summary {
 | 
			
		||||
    margin-top: 30px;
 | 
			
		||||
    margin-bottom: 40px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#summary table {
 | 
			
		||||
    border-collapse: collapse;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#summary td {
 | 
			
		||||
    vertical-align: top;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.breadcrumbs, .breadcrumbs a {
 | 
			
		||||
    color: #606060;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.infoBox {
 | 
			
		||||
    width: 110px;
 | 
			
		||||
    padding-top: 15px;
 | 
			
		||||
    padding-bottom: 15px;
 | 
			
		||||
    text-align: center;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.infoBox p {
 | 
			
		||||
    margin: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.counter, .percent {
 | 
			
		||||
    font-size: 120%;
 | 
			
		||||
    font-weight: bold;
 | 
			
		||||
    margin-bottom: 8px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#duration {
 | 
			
		||||
    width: 125px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#successRate, .summaryGroup {
 | 
			
		||||
    border: solid 2px #d0d0d0;
 | 
			
		||||
    -moz-border-radius: 10px;
 | 
			
		||||
    border-radius: 10px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#successRate {
 | 
			
		||||
    width: 140px;
 | 
			
		||||
    margin-left: 35px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#successRate .percent {
 | 
			
		||||
    font-size: 180%;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.success, .success a {
 | 
			
		||||
    color: #008000;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.success, #successRate.success {
 | 
			
		||||
    background-color: #bbd9bb;
 | 
			
		||||
    border-color: #008000;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.failures, .failures a {
 | 
			
		||||
    color: #b60808;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.skipped, .skipped a {
 | 
			
		||||
    color: #c09853;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.failures, #successRate.failures {
 | 
			
		||||
    background-color: #ecdada;
 | 
			
		||||
    border-color: #b60808;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ul.linkList {
 | 
			
		||||
    padding-left: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ul.linkList li {
 | 
			
		||||
    list-style: none;
 | 
			
		||||
    margin-bottom: 5px;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										133
									
								
								build/reports/tests/test/index.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										133
									
								
								build/reports/tests/test/index.html
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,133 @@
 | 
			
		||||
<!DOCTYPE html>
 | 
			
		||||
<html>
 | 
			
		||||
<head>
 | 
			
		||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
 | 
			
		||||
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
 | 
			
		||||
<title>Test results - Test Summary</title>
 | 
			
		||||
<link href="css/base-style.css" rel="stylesheet" type="text/css"/>
 | 
			
		||||
<link href="css/style.css" rel="stylesheet" type="text/css"/>
 | 
			
		||||
<script src="js/report.js" type="text/javascript"></script>
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
<div id="content">
 | 
			
		||||
<h1>Test Summary</h1>
 | 
			
		||||
<div id="summary">
 | 
			
		||||
<table>
 | 
			
		||||
<tr>
 | 
			
		||||
<td>
 | 
			
		||||
<div class="summaryGroup">
 | 
			
		||||
<table>
 | 
			
		||||
<tr>
 | 
			
		||||
<td>
 | 
			
		||||
<div class="infoBox" id="tests">
 | 
			
		||||
<div class="counter">2</div>
 | 
			
		||||
<p>tests</p>
 | 
			
		||||
</div>
 | 
			
		||||
</td>
 | 
			
		||||
<td>
 | 
			
		||||
<div class="infoBox" id="failures">
 | 
			
		||||
<div class="counter">0</div>
 | 
			
		||||
<p>failures</p>
 | 
			
		||||
</div>
 | 
			
		||||
</td>
 | 
			
		||||
<td>
 | 
			
		||||
<div class="infoBox" id="ignored">
 | 
			
		||||
<div class="counter">0</div>
 | 
			
		||||
<p>ignored</p>
 | 
			
		||||
</div>
 | 
			
		||||
</td>
 | 
			
		||||
<td>
 | 
			
		||||
<div class="infoBox" id="duration">
 | 
			
		||||
<div class="counter">0.019s</div>
 | 
			
		||||
<p>duration</p>
 | 
			
		||||
</div>
 | 
			
		||||
</td>
 | 
			
		||||
</tr>
 | 
			
		||||
</table>
 | 
			
		||||
</div>
 | 
			
		||||
</td>
 | 
			
		||||
<td>
 | 
			
		||||
<div class="infoBox success" id="successRate">
 | 
			
		||||
<div class="percent">100%</div>
 | 
			
		||||
<p>successful</p>
 | 
			
		||||
</div>
 | 
			
		||||
</td>
 | 
			
		||||
</tr>
 | 
			
		||||
</table>
 | 
			
		||||
</div>
 | 
			
		||||
<div id="tabs">
 | 
			
		||||
<ul class="tabLinks">
 | 
			
		||||
<li>
 | 
			
		||||
<a href="#tab0">Packages</a>
 | 
			
		||||
</li>
 | 
			
		||||
<li>
 | 
			
		||||
<a href="#tab1">Classes</a>
 | 
			
		||||
</li>
 | 
			
		||||
</ul>
 | 
			
		||||
<div id="tab0" class="tab">
 | 
			
		||||
<h2>Packages</h2>
 | 
			
		||||
<table>
 | 
			
		||||
<thead>
 | 
			
		||||
<tr>
 | 
			
		||||
<th>Package</th>
 | 
			
		||||
<th>Tests</th>
 | 
			
		||||
<th>Failures</th>
 | 
			
		||||
<th>Ignored</th>
 | 
			
		||||
<th>Duration</th>
 | 
			
		||||
<th>Success rate</th>
 | 
			
		||||
</tr>
 | 
			
		||||
</thead>
 | 
			
		||||
<tbody>
 | 
			
		||||
<tr>
 | 
			
		||||
<td class="success">
 | 
			
		||||
<a href="packages/practical1.html">practical1</a>
 | 
			
		||||
</td>
 | 
			
		||||
<td>2</td>
 | 
			
		||||
<td>0</td>
 | 
			
		||||
<td>0</td>
 | 
			
		||||
<td>0.019s</td>
 | 
			
		||||
<td class="success">100%</td>
 | 
			
		||||
</tr>
 | 
			
		||||
</tbody>
 | 
			
		||||
</table>
 | 
			
		||||
</div>
 | 
			
		||||
<div id="tab1" class="tab">
 | 
			
		||||
<h2>Classes</h2>
 | 
			
		||||
<table>
 | 
			
		||||
<thead>
 | 
			
		||||
<tr>
 | 
			
		||||
<th>Class</th>
 | 
			
		||||
<th>Tests</th>
 | 
			
		||||
<th>Failures</th>
 | 
			
		||||
<th>Ignored</th>
 | 
			
		||||
<th>Duration</th>
 | 
			
		||||
<th>Success rate</th>
 | 
			
		||||
</tr>
 | 
			
		||||
</thead>
 | 
			
		||||
<tbody>
 | 
			
		||||
<tr>
 | 
			
		||||
<td class="success">
 | 
			
		||||
<a href="classes/practical1.NumberToolsTest.html">practical1.NumberToolsTest</a>
 | 
			
		||||
</td>
 | 
			
		||||
<td>2</td>
 | 
			
		||||
<td>0</td>
 | 
			
		||||
<td>0</td>
 | 
			
		||||
<td>0.019s</td>
 | 
			
		||||
<td class="success">100%</td>
 | 
			
		||||
</tr>
 | 
			
		||||
</tbody>
 | 
			
		||||
</table>
 | 
			
		||||
</div>
 | 
			
		||||
</div>
 | 
			
		||||
<div id="footer">
 | 
			
		||||
<p>
 | 
			
		||||
<div>
 | 
			
		||||
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
 | 
			
		||||
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
 | 
			
		||||
</label>
 | 
			
		||||
</div>Generated by 
 | 
			
		||||
<a href="http://www.gradle.org">Gradle 7.5.1</a> at 27 Sept 2022, 08:56:28</p>
 | 
			
		||||
</div>
 | 
			
		||||
</div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
							
								
								
									
										194
									
								
								build/reports/tests/test/js/report.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										194
									
								
								build/reports/tests/test/js/report.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,194 @@
 | 
			
		||||
(function (window, document) {
 | 
			
		||||
    "use strict";
 | 
			
		||||
 | 
			
		||||
    var tabs = {};
 | 
			
		||||
 | 
			
		||||
    function changeElementClass(element, classValue) {
 | 
			
		||||
        if (element.getAttribute("className")) {
 | 
			
		||||
            element.setAttribute("className", classValue);
 | 
			
		||||
        } else {
 | 
			
		||||
            element.setAttribute("class", classValue);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function getClassAttribute(element) {
 | 
			
		||||
        if (element.getAttribute("className")) {
 | 
			
		||||
            return element.getAttribute("className");
 | 
			
		||||
        } else {
 | 
			
		||||
            return element.getAttribute("class");
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function addClass(element, classValue) {
 | 
			
		||||
        changeElementClass(element, getClassAttribute(element) + " " + classValue);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function removeClass(element, classValue) {
 | 
			
		||||
        changeElementClass(element, getClassAttribute(element).replace(classValue, ""));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function initTabs() {
 | 
			
		||||
        var container = document.getElementById("tabs");
 | 
			
		||||
 | 
			
		||||
        tabs.tabs = findTabs(container);
 | 
			
		||||
        tabs.titles = findTitles(tabs.tabs);
 | 
			
		||||
        tabs.headers = findHeaders(container);
 | 
			
		||||
        tabs.select = select;
 | 
			
		||||
        tabs.deselectAll = deselectAll;
 | 
			
		||||
        tabs.select(0);
 | 
			
		||||
 | 
			
		||||
        return true;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function getCheckBox() {
 | 
			
		||||
        return document.getElementById("line-wrapping-toggle");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function getLabelForCheckBox() {
 | 
			
		||||
        return document.getElementById("label-for-line-wrapping-toggle");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function findCodeBlocks() {
 | 
			
		||||
        var spans = document.getElementById("tabs").getElementsByTagName("span");
 | 
			
		||||
        var codeBlocks = [];
 | 
			
		||||
        for (var i = 0; i < spans.length; ++i) {
 | 
			
		||||
            if (spans[i].className.indexOf("code") >= 0) {
 | 
			
		||||
                codeBlocks.push(spans[i]);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        return codeBlocks;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function forAllCodeBlocks(operation) {
 | 
			
		||||
        var codeBlocks = findCodeBlocks();
 | 
			
		||||
 | 
			
		||||
        for (var i = 0; i < codeBlocks.length; ++i) {
 | 
			
		||||
            operation(codeBlocks[i], "wrapped");
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function toggleLineWrapping() {
 | 
			
		||||
        var checkBox = getCheckBox();
 | 
			
		||||
 | 
			
		||||
        if (checkBox.checked) {
 | 
			
		||||
            forAllCodeBlocks(addClass);
 | 
			
		||||
        } else {
 | 
			
		||||
            forAllCodeBlocks(removeClass);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function initControls() {
 | 
			
		||||
        if (findCodeBlocks().length > 0) {
 | 
			
		||||
            var checkBox = getCheckBox();
 | 
			
		||||
            var label = getLabelForCheckBox();
 | 
			
		||||
 | 
			
		||||
            checkBox.onclick = toggleLineWrapping;
 | 
			
		||||
            checkBox.checked = false;
 | 
			
		||||
 | 
			
		||||
            removeClass(label, "hidden");
 | 
			
		||||
         }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function switchTab() {
 | 
			
		||||
        var id = this.id.substr(1);
 | 
			
		||||
 | 
			
		||||
        for (var i = 0; i < tabs.tabs.length; i++) {
 | 
			
		||||
            if (tabs.tabs[i].id === id) {
 | 
			
		||||
                tabs.select(i);
 | 
			
		||||
                break;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function select(i) {
 | 
			
		||||
        this.deselectAll();
 | 
			
		||||
 | 
			
		||||
        changeElementClass(this.tabs[i], "tab selected");
 | 
			
		||||
        changeElementClass(this.headers[i], "selected");
 | 
			
		||||
 | 
			
		||||
        while (this.headers[i].firstChild) {
 | 
			
		||||
            this.headers[i].removeChild(this.headers[i].firstChild);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        var h2 = document.createElement("H2");
 | 
			
		||||
 | 
			
		||||
        h2.appendChild(document.createTextNode(this.titles[i]));
 | 
			
		||||
        this.headers[i].appendChild(h2);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function deselectAll() {
 | 
			
		||||
        for (var i = 0; i < this.tabs.length; i++) {
 | 
			
		||||
            changeElementClass(this.tabs[i], "tab deselected");
 | 
			
		||||
            changeElementClass(this.headers[i], "deselected");
 | 
			
		||||
 | 
			
		||||
            while (this.headers[i].firstChild) {
 | 
			
		||||
                this.headers[i].removeChild(this.headers[i].firstChild);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            var a = document.createElement("A");
 | 
			
		||||
 | 
			
		||||
            a.setAttribute("id", "ltab" + i);
 | 
			
		||||
            a.setAttribute("href", "#tab" + i);
 | 
			
		||||
            a.onclick = switchTab;
 | 
			
		||||
            a.appendChild(document.createTextNode(this.titles[i]));
 | 
			
		||||
 | 
			
		||||
            this.headers[i].appendChild(a);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function findTabs(container) {
 | 
			
		||||
        return findChildElements(container, "DIV", "tab");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function findHeaders(container) {
 | 
			
		||||
        var owner = findChildElements(container, "UL", "tabLinks");
 | 
			
		||||
        return findChildElements(owner[0], "LI", null);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function findTitles(tabs) {
 | 
			
		||||
        var titles = [];
 | 
			
		||||
 | 
			
		||||
        for (var i = 0; i < tabs.length; i++) {
 | 
			
		||||
            var tab = tabs[i];
 | 
			
		||||
            var header = findChildElements(tab, "H2", null)[0];
 | 
			
		||||
 | 
			
		||||
            header.parentNode.removeChild(header);
 | 
			
		||||
 | 
			
		||||
            if (header.innerText) {
 | 
			
		||||
                titles.push(header.innerText);
 | 
			
		||||
            } else {
 | 
			
		||||
                titles.push(header.textContent);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return titles;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function findChildElements(container, name, targetClass) {
 | 
			
		||||
        var elements = [];
 | 
			
		||||
        var children = container.childNodes;
 | 
			
		||||
 | 
			
		||||
        for (var i = 0; i < children.length; i++) {
 | 
			
		||||
            var child = children.item(i);
 | 
			
		||||
 | 
			
		||||
            if (child.nodeType === 1 && child.nodeName === name) {
 | 
			
		||||
                if (targetClass && child.className.indexOf(targetClass) < 0) {
 | 
			
		||||
                    continue;
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                elements.push(child);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return elements;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // Entry point.
 | 
			
		||||
 | 
			
		||||
    window.onload = function() {
 | 
			
		||||
        initTabs();
 | 
			
		||||
        initControls();
 | 
			
		||||
    };
 | 
			
		||||
} (window, window.document));
 | 
			
		||||
							
								
								
									
										103
									
								
								build/reports/tests/test/packages/practical1.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										103
									
								
								build/reports/tests/test/packages/practical1.html
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,103 @@
 | 
			
		||||
<!DOCTYPE html>
 | 
			
		||||
<html>
 | 
			
		||||
<head>
 | 
			
		||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
 | 
			
		||||
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
 | 
			
		||||
<title>Test results - Package practical1</title>
 | 
			
		||||
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
 | 
			
		||||
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
 | 
			
		||||
<script src="../js/report.js" type="text/javascript"></script>
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
<div id="content">
 | 
			
		||||
<h1>Package practical1</h1>
 | 
			
		||||
<div class="breadcrumbs">
 | 
			
		||||
<a href="../index.html">all</a> > practical1</div>
 | 
			
		||||
<div id="summary">
 | 
			
		||||
<table>
 | 
			
		||||
<tr>
 | 
			
		||||
<td>
 | 
			
		||||
<div class="summaryGroup">
 | 
			
		||||
<table>
 | 
			
		||||
<tr>
 | 
			
		||||
<td>
 | 
			
		||||
<div class="infoBox" id="tests">
 | 
			
		||||
<div class="counter">2</div>
 | 
			
		||||
<p>tests</p>
 | 
			
		||||
</div>
 | 
			
		||||
</td>
 | 
			
		||||
<td>
 | 
			
		||||
<div class="infoBox" id="failures">
 | 
			
		||||
<div class="counter">0</div>
 | 
			
		||||
<p>failures</p>
 | 
			
		||||
</div>
 | 
			
		||||
</td>
 | 
			
		||||
<td>
 | 
			
		||||
<div class="infoBox" id="ignored">
 | 
			
		||||
<div class="counter">0</div>
 | 
			
		||||
<p>ignored</p>
 | 
			
		||||
</div>
 | 
			
		||||
</td>
 | 
			
		||||
<td>
 | 
			
		||||
<div class="infoBox" id="duration">
 | 
			
		||||
<div class="counter">0.019s</div>
 | 
			
		||||
<p>duration</p>
 | 
			
		||||
</div>
 | 
			
		||||
</td>
 | 
			
		||||
</tr>
 | 
			
		||||
</table>
 | 
			
		||||
</div>
 | 
			
		||||
</td>
 | 
			
		||||
<td>
 | 
			
		||||
<div class="infoBox success" id="successRate">
 | 
			
		||||
<div class="percent">100%</div>
 | 
			
		||||
<p>successful</p>
 | 
			
		||||
</div>
 | 
			
		||||
</td>
 | 
			
		||||
</tr>
 | 
			
		||||
</table>
 | 
			
		||||
</div>
 | 
			
		||||
<div id="tabs">
 | 
			
		||||
<ul class="tabLinks">
 | 
			
		||||
<li>
 | 
			
		||||
<a href="#tab0">Classes</a>
 | 
			
		||||
</li>
 | 
			
		||||
</ul>
 | 
			
		||||
<div id="tab0" class="tab">
 | 
			
		||||
<h2>Classes</h2>
 | 
			
		||||
<table>
 | 
			
		||||
<thread>
 | 
			
		||||
<tr>
 | 
			
		||||
<th>Class</th>
 | 
			
		||||
<th>Tests</th>
 | 
			
		||||
<th>Failures</th>
 | 
			
		||||
<th>Ignored</th>
 | 
			
		||||
<th>Duration</th>
 | 
			
		||||
<th>Success rate</th>
 | 
			
		||||
</tr>
 | 
			
		||||
</thread>
 | 
			
		||||
<tr>
 | 
			
		||||
<td class="success">
 | 
			
		||||
<a href="../classes/practical1.NumberToolsTest.html">NumberToolsTest</a>
 | 
			
		||||
</td>
 | 
			
		||||
<td>2</td>
 | 
			
		||||
<td>0</td>
 | 
			
		||||
<td>0</td>
 | 
			
		||||
<td>0.019s</td>
 | 
			
		||||
<td class="success">100%</td>
 | 
			
		||||
</tr>
 | 
			
		||||
</table>
 | 
			
		||||
</div>
 | 
			
		||||
</div>
 | 
			
		||||
<div id="footer">
 | 
			
		||||
<p>
 | 
			
		||||
<div>
 | 
			
		||||
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
 | 
			
		||||
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
 | 
			
		||||
</label>
 | 
			
		||||
</div>Generated by 
 | 
			
		||||
<a href="http://www.gradle.org">Gradle 7.5.1</a> at 27 Sept 2022, 08:56:28</p>
 | 
			
		||||
</div>
 | 
			
		||||
</div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
@ -0,0 +1,8 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<testsuite name="practical1.NumberToolsTest" tests="2" skipped="0" failures="0" errors="0" timestamp="2022-09-27T07:56:28" hostname="5300" time="0.019">
 | 
			
		||||
  <properties/>
 | 
			
		||||
  <testcase name="testParse" classname="practical1.NumberToolsTest" time="0.008"/>
 | 
			
		||||
  <testcase name="testComputeStatistic" classname="practical1.NumberToolsTest" time="0.011"/>
 | 
			
		||||
  <system-out><![CDATA[]]></system-out>
 | 
			
		||||
  <system-err><![CDATA[]]></system-err>
 | 
			
		||||
</testsuite>
 | 
			
		||||
							
								
								
									
										0
									
								
								build/test-results/test/binary/output.bin
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								build/test-results/test/binary/output.bin
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										
											BIN
										
									
								
								build/test-results/test/binary/output.bin.idx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								build/test-results/test/binary/output.bin.idx
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								build/test-results/test/binary/results.bin
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								build/test-results/test/binary/results.bin
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								build/tmp/compileJava/previous-compilation-data.bin
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								build/tmp/compileJava/previous-compilation-data.bin
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								build/tmp/compileTestJava/previous-compilation-data.bin
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								build/tmp/compileTestJava/previous-compilation-data.bin
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										2
									
								
								build/tmp/jar/MANIFEST.MF
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								build/tmp/jar/MANIFEST.MF
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,2 @@
 | 
			
		||||
Manifest-Version: 1.0
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								gradle/wrapper/gradle-wrapper.jar
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								gradle/wrapper/gradle-wrapper.jar
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										5
									
								
								gradle/wrapper/gradle-wrapper.properties
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								gradle/wrapper/gradle-wrapper.properties
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,5 @@
 | 
			
		||||
distributionBase=GRADLE_USER_HOME
 | 
			
		||||
distributionPath=wrapper/dists
 | 
			
		||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip
 | 
			
		||||
zipStoreBase=GRADLE_USER_HOME
 | 
			
		||||
zipStorePath=wrapper/dists
 | 
			
		||||
							
								
								
									
										240
									
								
								gradlew
									
									
									
									
										vendored
									
									
										Executable file
									
								
							
							
						
						
									
										240
									
								
								gradlew
									
									
									
									
										vendored
									
									
										Executable file
									
								
							@ -0,0 +1,240 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# Copyright © 2015-2021 the original authors.
 | 
			
		||||
#
 | 
			
		||||
# Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
# you may not use this file except in compliance with the License.
 | 
			
		||||
# You may obtain a copy of the License at
 | 
			
		||||
#
 | 
			
		||||
#      https://www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
#
 | 
			
		||||
# Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
# distributed under the License is distributed on an "AS IS" BASIS,
 | 
			
		||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
# See the License for the specific language governing permissions and
 | 
			
		||||
# limitations under the License.
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
##############################################################################
 | 
			
		||||
#
 | 
			
		||||
#   Gradle start up script for POSIX generated by Gradle.
 | 
			
		||||
#
 | 
			
		||||
#   Important for running:
 | 
			
		||||
#
 | 
			
		||||
#   (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
 | 
			
		||||
#       noncompliant, but you have some other compliant shell such as ksh or
 | 
			
		||||
#       bash, then to run this script, type that shell name before the whole
 | 
			
		||||
#       command line, like:
 | 
			
		||||
#
 | 
			
		||||
#           ksh Gradle
 | 
			
		||||
#
 | 
			
		||||
#       Busybox and similar reduced shells will NOT work, because this script
 | 
			
		||||
#       requires all of these POSIX shell features:
 | 
			
		||||
#         * functions;
 | 
			
		||||
#         * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
 | 
			
		||||
#           «${var#prefix}», «${var%suffix}», and «$( cmd )»;
 | 
			
		||||
#         * compound commands having a testable exit status, especially «case»;
 | 
			
		||||
#         * various built-in commands including «command», «set», and «ulimit».
 | 
			
		||||
#
 | 
			
		||||
#   Important for patching:
 | 
			
		||||
#
 | 
			
		||||
#   (2) This script targets any POSIX shell, so it avoids extensions provided
 | 
			
		||||
#       by Bash, Ksh, etc; in particular arrays are avoided.
 | 
			
		||||
#
 | 
			
		||||
#       The "traditional" practice of packing multiple parameters into a
 | 
			
		||||
#       space-separated string is a well documented source of bugs and security
 | 
			
		||||
#       problems, so this is (mostly) avoided, by progressively accumulating
 | 
			
		||||
#       options in "$@", and eventually passing that to Java.
 | 
			
		||||
#
 | 
			
		||||
#       Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
 | 
			
		||||
#       and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
 | 
			
		||||
#       see the in-line comments for details.
 | 
			
		||||
#
 | 
			
		||||
#       There are tweaks for specific operating systems such as AIX, CygWin,
 | 
			
		||||
#       Darwin, MinGW, and NonStop.
 | 
			
		||||
#
 | 
			
		||||
#   (3) This script is generated from the Groovy template
 | 
			
		||||
#       https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
 | 
			
		||||
#       within the Gradle project.
 | 
			
		||||
#
 | 
			
		||||
#       You can find Gradle at https://github.com/gradle/gradle/.
 | 
			
		||||
#
 | 
			
		||||
##############################################################################
 | 
			
		||||
 | 
			
		||||
# Attempt to set APP_HOME
 | 
			
		||||
 | 
			
		||||
# Resolve links: $0 may be a link
 | 
			
		||||
app_path=$0
 | 
			
		||||
 | 
			
		||||
# Need this for daisy-chained symlinks.
 | 
			
		||||
while
 | 
			
		||||
    APP_HOME=${app_path%"${app_path##*/}"}  # leaves a trailing /; empty if no leading path
 | 
			
		||||
    [ -h "$app_path" ]
 | 
			
		||||
do
 | 
			
		||||
    ls=$( ls -ld "$app_path" )
 | 
			
		||||
    link=${ls#*' -> '}
 | 
			
		||||
    case $link in             #(
 | 
			
		||||
      /*)   app_path=$link ;; #(
 | 
			
		||||
      *)    app_path=$APP_HOME$link ;;
 | 
			
		||||
    esac
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
 | 
			
		||||
 | 
			
		||||
APP_NAME="Gradle"
 | 
			
		||||
APP_BASE_NAME=${0##*/}
 | 
			
		||||
 | 
			
		||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
 | 
			
		||||
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
 | 
			
		||||
 | 
			
		||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
 | 
			
		||||
MAX_FD=maximum
 | 
			
		||||
 | 
			
		||||
warn () {
 | 
			
		||||
    echo "$*"
 | 
			
		||||
} >&2
 | 
			
		||||
 | 
			
		||||
die () {
 | 
			
		||||
    echo
 | 
			
		||||
    echo "$*"
 | 
			
		||||
    echo
 | 
			
		||||
    exit 1
 | 
			
		||||
} >&2
 | 
			
		||||
 | 
			
		||||
# OS specific support (must be 'true' or 'false').
 | 
			
		||||
cygwin=false
 | 
			
		||||
msys=false
 | 
			
		||||
darwin=false
 | 
			
		||||
nonstop=false
 | 
			
		||||
case "$( uname )" in                #(
 | 
			
		||||
  CYGWIN* )         cygwin=true  ;; #(
 | 
			
		||||
  Darwin* )         darwin=true  ;; #(
 | 
			
		||||
  MSYS* | MINGW* )  msys=true    ;; #(
 | 
			
		||||
  NONSTOP* )        nonstop=true ;;
 | 
			
		||||
esac
 | 
			
		||||
 | 
			
		||||
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Determine the Java command to use to start the JVM.
 | 
			
		||||
if [ -n "$JAVA_HOME" ] ; then
 | 
			
		||||
    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
 | 
			
		||||
        # IBM's JDK on AIX uses strange locations for the executables
 | 
			
		||||
        JAVACMD=$JAVA_HOME/jre/sh/java
 | 
			
		||||
    else
 | 
			
		||||
        JAVACMD=$JAVA_HOME/bin/java
 | 
			
		||||
    fi
 | 
			
		||||
    if [ ! -x "$JAVACMD" ] ; then
 | 
			
		||||
        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
 | 
			
		||||
 | 
			
		||||
Please set the JAVA_HOME variable in your environment to match the
 | 
			
		||||
location of your Java installation."
 | 
			
		||||
    fi
 | 
			
		||||
else
 | 
			
		||||
    JAVACMD=java
 | 
			
		||||
    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
 | 
			
		||||
 | 
			
		||||
Please set the JAVA_HOME variable in your environment to match the
 | 
			
		||||
location of your Java installation."
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Increase the maximum file descriptors if we can.
 | 
			
		||||
if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
 | 
			
		||||
    case $MAX_FD in #(
 | 
			
		||||
      max*)
 | 
			
		||||
        MAX_FD=$( ulimit -H -n ) ||
 | 
			
		||||
            warn "Could not query maximum file descriptor limit"
 | 
			
		||||
    esac
 | 
			
		||||
    case $MAX_FD in  #(
 | 
			
		||||
      '' | soft) :;; #(
 | 
			
		||||
      *)
 | 
			
		||||
        ulimit -n "$MAX_FD" ||
 | 
			
		||||
            warn "Could not set maximum file descriptor limit to $MAX_FD"
 | 
			
		||||
    esac
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Collect all arguments for the java command, stacking in reverse order:
 | 
			
		||||
#   * args from the command line
 | 
			
		||||
#   * the main class name
 | 
			
		||||
#   * -classpath
 | 
			
		||||
#   * -D...appname settings
 | 
			
		||||
#   * --module-path (only if needed)
 | 
			
		||||
#   * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
 | 
			
		||||
 | 
			
		||||
# For Cygwin or MSYS, switch paths to Windows format before running java
 | 
			
		||||
if "$cygwin" || "$msys" ; then
 | 
			
		||||
    APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
 | 
			
		||||
    CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
 | 
			
		||||
 | 
			
		||||
    JAVACMD=$( cygpath --unix "$JAVACMD" )
 | 
			
		||||
 | 
			
		||||
    # Now convert the arguments - kludge to limit ourselves to /bin/sh
 | 
			
		||||
    for arg do
 | 
			
		||||
        if
 | 
			
		||||
            case $arg in                                #(
 | 
			
		||||
              -*)   false ;;                            # don't mess with options #(
 | 
			
		||||
              /?*)  t=${arg#/} t=/${t%%/*}              # looks like a POSIX filepath
 | 
			
		||||
                    [ -e "$t" ] ;;                      #(
 | 
			
		||||
              *)    false ;;
 | 
			
		||||
            esac
 | 
			
		||||
        then
 | 
			
		||||
            arg=$( cygpath --path --ignore --mixed "$arg" )
 | 
			
		||||
        fi
 | 
			
		||||
        # Roll the args list around exactly as many times as the number of
 | 
			
		||||
        # args, so each arg winds up back in the position where it started, but
 | 
			
		||||
        # possibly modified.
 | 
			
		||||
        #
 | 
			
		||||
        # NB: a `for` loop captures its iteration list before it begins, so
 | 
			
		||||
        # changing the positional parameters here affects neither the number of
 | 
			
		||||
        # iterations, nor the values presented in `arg`.
 | 
			
		||||
        shift                   # remove old arg
 | 
			
		||||
        set -- "$@" "$arg"      # push replacement arg
 | 
			
		||||
    done
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Collect all arguments for the java command;
 | 
			
		||||
#   * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
 | 
			
		||||
#     shell script including quotes and variable substitutions, so put them in
 | 
			
		||||
#     double quotes to make sure that they get re-expanded; and
 | 
			
		||||
#   * put everything else in single quotes, so that it's not re-expanded.
 | 
			
		||||
 | 
			
		||||
set -- \
 | 
			
		||||
        "-Dorg.gradle.appname=$APP_BASE_NAME" \
 | 
			
		||||
        -classpath "$CLASSPATH" \
 | 
			
		||||
        org.gradle.wrapper.GradleWrapperMain \
 | 
			
		||||
        "$@"
 | 
			
		||||
 | 
			
		||||
# Stop when "xargs" is not available.
 | 
			
		||||
if ! command -v xargs >/dev/null 2>&1
 | 
			
		||||
then
 | 
			
		||||
    die "xargs is not available"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Use "xargs" to parse quoted args.
 | 
			
		||||
#
 | 
			
		||||
# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
 | 
			
		||||
#
 | 
			
		||||
# In Bash we could simply go:
 | 
			
		||||
#
 | 
			
		||||
#   readarray ARGS < <( xargs -n1 <<<"$var" ) &&
 | 
			
		||||
#   set -- "${ARGS[@]}" "$@"
 | 
			
		||||
#
 | 
			
		||||
# but POSIX shell has neither arrays nor command substitution, so instead we
 | 
			
		||||
# post-process each arg (as a line of input to sed) to backslash-escape any
 | 
			
		||||
# character that might be a shell metacharacter, then use eval to reverse
 | 
			
		||||
# that process (while maintaining the separation between arguments), and wrap
 | 
			
		||||
# the whole thing up as a single "set" statement.
 | 
			
		||||
#
 | 
			
		||||
# This will of course break if any of these variables contains a newline or
 | 
			
		||||
# an unmatched quote.
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
eval "set -- $(
 | 
			
		||||
        printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
 | 
			
		||||
        xargs -n1 |
 | 
			
		||||
        sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
 | 
			
		||||
        tr '\n' ' '
 | 
			
		||||
    )" '"$@"'
 | 
			
		||||
 | 
			
		||||
exec "$JAVACMD" "$@"
 | 
			
		||||
							
								
								
									
										91
									
								
								gradlew.bat
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										91
									
								
								gradlew.bat
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,91 @@
 | 
			
		||||
@rem
 | 
			
		||||
@rem Copyright 2015 the original author or authors.
 | 
			
		||||
@rem
 | 
			
		||||
@rem Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
@rem you may not use this file except in compliance with the License.
 | 
			
		||||
@rem You may obtain a copy of the License at
 | 
			
		||||
@rem
 | 
			
		||||
@rem      https://www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
@rem
 | 
			
		||||
@rem Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
@rem distributed under the License is distributed on an "AS IS" BASIS,
 | 
			
		||||
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
@rem See the License for the specific language governing permissions and
 | 
			
		||||
@rem limitations under the License.
 | 
			
		||||
@rem
 | 
			
		||||
 | 
			
		||||
@if "%DEBUG%"=="" @echo off
 | 
			
		||||
@rem ##########################################################################
 | 
			
		||||
@rem
 | 
			
		||||
@rem  Gradle startup script for Windows
 | 
			
		||||
@rem
 | 
			
		||||
@rem ##########################################################################
 | 
			
		||||
 | 
			
		||||
@rem Set local scope for the variables with windows NT shell
 | 
			
		||||
if "%OS%"=="Windows_NT" setlocal
 | 
			
		||||
 | 
			
		||||
set DIRNAME=%~dp0
 | 
			
		||||
if "%DIRNAME%"=="" set DIRNAME=.
 | 
			
		||||
set APP_BASE_NAME=%~n0
 | 
			
		||||
set APP_HOME=%DIRNAME%
 | 
			
		||||
 | 
			
		||||
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
 | 
			
		||||
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
 | 
			
		||||
 | 
			
		||||
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
 | 
			
		||||
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
 | 
			
		||||
 | 
			
		||||
@rem Find java.exe
 | 
			
		||||
if defined JAVA_HOME goto findJavaFromJavaHome
 | 
			
		||||
 | 
			
		||||
set JAVA_EXE=java.exe
 | 
			
		||||
%JAVA_EXE% -version >NUL 2>&1
 | 
			
		||||
if %ERRORLEVEL% equ 0 goto execute
 | 
			
		||||
 | 
			
		||||
echo.
 | 
			
		||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
 | 
			
		||||
echo.
 | 
			
		||||
echo Please set the JAVA_HOME variable in your environment to match the
 | 
			
		||||
echo location of your Java installation.
 | 
			
		||||
 | 
			
		||||
goto fail
 | 
			
		||||
 | 
			
		||||
:findJavaFromJavaHome
 | 
			
		||||
set JAVA_HOME=%JAVA_HOME:"=%
 | 
			
		||||
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
 | 
			
		||||
 | 
			
		||||
if exist "%JAVA_EXE%" goto execute
 | 
			
		||||
 | 
			
		||||
echo.
 | 
			
		||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
 | 
			
		||||
echo.
 | 
			
		||||
echo Please set the JAVA_HOME variable in your environment to match the
 | 
			
		||||
echo location of your Java installation.
 | 
			
		||||
 | 
			
		||||
goto fail
 | 
			
		||||
 | 
			
		||||
:execute
 | 
			
		||||
@rem Setup the command line
 | 
			
		||||
 | 
			
		||||
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@rem Execute Gradle
 | 
			
		||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
 | 
			
		||||
 | 
			
		||||
:end
 | 
			
		||||
@rem End local scope for the variables with windows NT shell
 | 
			
		||||
if %ERRORLEVEL% equ 0 goto mainEnd
 | 
			
		||||
 | 
			
		||||
:fail
 | 
			
		||||
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
 | 
			
		||||
rem the _cmd.exe /c_ return code!
 | 
			
		||||
set EXIT_CODE=%ERRORLEVEL%
 | 
			
		||||
if %EXIT_CODE% equ 0 set EXIT_CODE=1
 | 
			
		||||
if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
 | 
			
		||||
exit /b %EXIT_CODE%
 | 
			
		||||
 | 
			
		||||
:mainEnd
 | 
			
		||||
if "%OS%"=="Windows_NT" endlocal
 | 
			
		||||
 | 
			
		||||
:omega
 | 
			
		||||
							
								
								
									
										10
									
								
								settings.gradle
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								settings.gradle
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,10 @@
 | 
			
		||||
/*
 | 
			
		||||
 * This file was generated by the Gradle 'init' task.
 | 
			
		||||
 *
 | 
			
		||||
 * The settings file is used to specify which projects to include in your build.
 | 
			
		||||
 *
 | 
			
		||||
 * Detailed information about configuring a multi-project build in Gradle can be found
 | 
			
		||||
 * in the user manual at https://docs.gradle.org/7.5.1/userguide/multi_project_builds.html
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
rootProject.name = 'Practical1Gradle'
 | 
			
		||||
							
								
								
									
										86
									
								
								src/main/java/practical1/NumberTools.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										86
									
								
								src/main/java/practical1/NumberTools.java
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,86 @@
 | 
			
		||||
package practical1;
 | 
			
		||||
 | 
			
		||||
import java.io.StringReader;
 | 
			
		||||
import java.util.Arrays;
 | 
			
		||||
 | 
			
		||||
import org.apache.commons.math3.stat.descriptive.DescriptiveStatistics;
 | 
			
		||||
 | 
			
		||||
import com.opencsv.CSVReader;
 | 
			
		||||
import com.sampullara.cli.Args;
 | 
			
		||||
import com.sampullara.cli.Argument;
 | 
			
		||||
 | 
			
		||||
public class NumberTools {
 | 
			
		||||
 | 
			
		||||
	// the cli parser library lets us make instance variables with annotations like this
 | 
			
		||||
	// that specify command line arguments for the program
 | 
			
		||||
    @Argument(alias = "m", description = "Statistic to compute for the values", required = false)
 | 
			
		||||
    protected String statistic = "mean";
 | 
			
		||||
    
 | 
			
		||||
    @Argument(alias = "v", description = "Comma separated (no spaces) list of values", required = true)
 | 
			
		||||
    protected String values = "1,2,3";
 | 
			
		||||
	
 | 
			
		||||
	public static void main(String[] args) {
 | 
			
		||||
	    NumberTools numberTools = new NumberTools();
 | 
			
		||||
	    
 | 
			
		||||
	    // this will parse the list of arguments passed into the program, and
 | 
			
		||||
	    // populate the appropriate instance variables
 | 
			
		||||
	    // if the required arguments were not found, it will gracefully exit 
 | 
			
		||||
	    Args.parseOrExit(numberTools, args);
 | 
			
		||||
	    
 | 
			
		||||
	    // turn the string of numbers into an array of doubles
 | 
			
		||||
	    double[] doubleValues = parseString(numberTools.values);
 | 
			
		||||
	    
 | 
			
		||||
	    // finally, compute and output the required statistic
 | 
			
		||||
	    System.out.println("You requested the " + numberTools.statistic + " of the list " + Arrays.toString(doubleValues));
 | 
			
		||||
	    System.out.println("It is: " + computeStatistic(numberTools.statistic, doubleValues));
 | 
			
		||||
	    
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * take a comma separated string and parse it into an array of doubles
 | 
			
		||||
	 * uses the openCSV library
 | 
			
		||||
	 */
 | 
			
		||||
	public static double[] parseString(String s) {
 | 
			
		||||
    	CSVReader reader = new CSVReader(new StringReader(s));
 | 
			
		||||
    	
 | 
			
		||||
    	double[] parsed = new double[0];
 | 
			
		||||
    	try {
 | 
			
		||||
    		String[] tmp = reader.readNext();
 | 
			
		||||
    		parsed = new double[tmp.length];
 | 
			
		||||
    		
 | 
			
		||||
    		for (int i = 0; i < tmp.length; i++) {
 | 
			
		||||
    			parsed[i] = Double.parseDouble(tmp[i]);
 | 
			
		||||
    		}
 | 
			
		||||
    		
 | 
			
		||||
    		reader.close();
 | 
			
		||||
    	} catch(Exception e) {
 | 
			
		||||
    		System.err.println("Error parsing string: " + s);
 | 
			
		||||
    		System.exit(1);
 | 
			
		||||
    	}
 | 
			
		||||
    	
 | 
			
		||||
    	return parsed;
 | 
			
		||||
    }
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
	 * compute the appropriate statistic for the given array of doubles
 | 
			
		||||
	 * uses the apache commons math library 
 | 
			
		||||
	 */
 | 
			
		||||
	public static double computeStatistic(String statistic, double[] values) {
 | 
			
		||||
		DescriptiveStatistics stats = new DescriptiveStatistics(values);
 | 
			
		||||
		
 | 
			
		||||
		if (statistic.equalsIgnoreCase("mean")) {
 | 
			
		||||
			return stats.getMean();
 | 
			
		||||
		} else if (statistic.equalsIgnoreCase("sd")) {
 | 
			
		||||
			return stats.getStandardDeviation();
 | 
			
		||||
		} else if (statistic.equalsIgnoreCase("sum")) {
 | 
			
		||||
			return stats.getSum();
 | 
			
		||||
		} else {
 | 
			
		||||
			System.err.println("Unknown option: " + statistic);
 | 
			
		||||
    		System.exit(1);
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		// should never get here
 | 
			
		||||
		return 0;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										7
									
								
								src/main/java/practical1/Practical1.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								src/main/java/practical1/Practical1.java
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,7 @@
 | 
			
		||||
package practical1;
 | 
			
		||||
 | 
			
		||||
public class Practical1 {
 | 
			
		||||
    public static void main(String[] args){
 | 
			
		||||
        System.out.println("Hello, World!");
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										55
									
								
								src/test/java/practical1/NumberToolsTest.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								src/test/java/practical1/NumberToolsTest.java
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,55 @@
 | 
			
		||||
package practical1;
 | 
			
		||||
 | 
			
		||||
import static org.junit.Assert.*;
 | 
			
		||||
 | 
			
		||||
import org.junit.Test;
 | 
			
		||||
 | 
			
		||||
public class NumberToolsTest {
 | 
			
		||||
 | 
			
		||||
	// JUnit tests might be familiar if you did CSCU9A3
 | 
			
		||||
	// Here, we have a load of test methods
 | 
			
		||||
	// JUnit will look for any method with a @Test annotation and will run it
 | 
			
		||||
	// If the method throws an exception, the test has failed; otherwise it passes
 | 
			
		||||
	// JUnit methods like assertEquals() are used to test conditions and throw
 | 
			
		||||
	// exceptions as necessary.
 | 
			
		||||
	
 | 
			
		||||
	// in practice we'd want more wide-ranging tests than these!
 | 
			
		||||
	
 | 
			
		||||
	// tests involving doubles need some rounding to handle precision errors
 | 
			
		||||
	private static final double TOLERANCE = 0.000001;
 | 
			
		||||
	
 | 
			
		||||
	@Test
 | 
			
		||||
	public void testParse() {
 | 
			
		||||
		double[] expected = {1,2,3,4,5};
 | 
			
		||||
		double[] actual = NumberTools.parseString("1,2,3,4,5");
 | 
			
		||||
		assertArrayEquals(expected, actual, TOLERANCE);
 | 
			
		||||
 | 
			
		||||
		expected = new double[] {1.5,2.5,3,4,5};
 | 
			
		||||
		actual = NumberTools.parseString("1.5,2.5,3,4,5");
 | 
			
		||||
		assertArrayEquals(expected, actual, TOLERANCE);
 | 
			
		||||
		
 | 
			
		||||
		expected = new double[] {-1.5,0,3,4,5};
 | 
			
		||||
		actual = NumberTools.parseString("-1.5,0,3,4,5");
 | 
			
		||||
		assertArrayEquals(expected, actual, TOLERANCE);
 | 
			
		||||
		
 | 
			
		||||
		expected = new double[] {67};
 | 
			
		||||
		actual = NumberTools.parseString("67");
 | 
			
		||||
		assertArrayEquals(expected, actual, TOLERANCE);
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	@Test
 | 
			
		||||
	public void testComputeStatistic() {
 | 
			
		||||
		double expected = 4;
 | 
			
		||||
		double actual = NumberTools.computeStatistic("mean", new double[] {0,2,4,6,8});
 | 
			
		||||
		assertEquals(expected, actual, TOLERANCE);
 | 
			
		||||
		
 | 
			
		||||
		expected = 3.16227766016838;
 | 
			
		||||
		actual = NumberTools.computeStatistic("sd", new double[] {0,2,4,6,8});
 | 
			
		||||
		assertEquals(expected, actual, TOLERANCE);
 | 
			
		||||
		
 | 
			
		||||
		expected = 20;
 | 
			
		||||
		actual = NumberTools.computeStatistic("sum", new double[] {0,2,4,6,8});
 | 
			
		||||
		assertEquals(expected, actual, TOLERANCE);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user