diff options
author | AlisaLinUwU <alisalinuwu@gmail.com> | 2025-01-26 11:47:38 +0500 |
---|---|---|
committer | AlisaLinUwU <alisalinuwu@gmail.com> | 2025-01-26 11:47:38 +0500 |
commit | 4154d33fcdfbe8eefc66149e4a13d41a814a5abd (patch) | |
tree | 1d7474bc7dc04b90fd1d705d607e8bb76341e50a /Phone Book/task |
Initializemain
Diffstat (limited to 'Phone Book/task')
40 files changed, 964 insertions, 0 deletions
diff --git a/Phone Book/task/build/classes/java/main/phonebook/Main.class b/Phone Book/task/build/classes/java/main/phonebook/Main.class Binary files differnew file mode 100644 index 0000000..3b55031 --- /dev/null +++ b/Phone Book/task/build/classes/java/main/phonebook/Main.class diff --git a/Phone Book/task/build/classes/java/test/PhoneBookTest.class b/Phone Book/task/build/classes/java/test/PhoneBookTest.class Binary files differnew file mode 100644 index 0000000..1402da0 --- /dev/null +++ b/Phone Book/task/build/classes/java/test/PhoneBookTest.class diff --git a/Phone Book/task/build/reports/tests/test/classes/PhoneBookTest.html b/Phone Book/task/build/reports/tests/test/classes/PhoneBookTest.html new file mode 100644 index 0000000..a2ab461 --- /dev/null +++ b/Phone Book/task/build/reports/tests/test/classes/PhoneBookTest.html @@ -0,0 +1,113 @@ +<!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 PhoneBookTest</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 PhoneBookTest</h1> +<div class="breadcrumbs"> +<a href="../index.html">all</a> > +<a href="../packages/default-package.html">default-package</a> > PhoneBookTest</div> +<div id="summary"> +<table> +<tr> +<td> +<div class="summaryGroup"> +<table> +<tr> +<td> +<div class="infoBox" id="tests"> +<div class="counter">1</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">2.194s</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> +<li> +<a href="#tab1">Standard output</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">start</td> +<td class="success">2.194s</td> +<td class="success">passed</td> +</tr> +</table> +</div> +<div id="tab1" class="tab"> +<h2>Standard output</h2> +<span class="code"> +<pre>?[1;31m +Start test 1?[0m +Start searching... +Found 500 / 500 entries. Time taken: 0 min. 1 sec. 79 ms. +?[1;31m +Start test 2?[0m +Start searching... +Found 500 / 500 entries. Time taken: 0 min. 1 sec. 73 ms. +</pre> +</span> +</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.3.3</a> at Apr 27, 2022, 8:20:47 PM</p> +</div> +</div> +</body> +</html> diff --git a/Phone Book/task/build/reports/tests/test/css/base-style.css b/Phone Book/task/build/reports/tests/test/css/base-style.css new file mode 100644 index 0000000..4afa73e --- /dev/null +++ b/Phone Book/task/build/reports/tests/test/css/base-style.css @@ -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; +}
\ No newline at end of file diff --git a/Phone Book/task/build/reports/tests/test/css/style.css b/Phone Book/task/build/reports/tests/test/css/style.css new file mode 100644 index 0000000..3dc4913 --- /dev/null +++ b/Phone Book/task/build/reports/tests/test/css/style.css @@ -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; +} diff --git a/Phone Book/task/build/reports/tests/test/index.html b/Phone Book/task/build/reports/tests/test/index.html new file mode 100644 index 0000000..8233e0e --- /dev/null +++ b/Phone Book/task/build/reports/tests/test/index.html @@ -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">1</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">2.194s</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/default-package.html">default-package</a> +</td> +<td>1</td> +<td>0</td> +<td>0</td> +<td>2.194s</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/PhoneBookTest.html">PhoneBookTest</a> +</td> +<td>1</td> +<td>0</td> +<td>0</td> +<td>2.194s</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.3.3</a> at Apr 27, 2022, 8:20:47 PM</p> +</div> +</div> +</body> +</html> diff --git a/Phone Book/task/build/reports/tests/test/js/report.js b/Phone Book/task/build/reports/tests/test/js/report.js new file mode 100644 index 0000000..83bab4a --- /dev/null +++ b/Phone Book/task/build/reports/tests/test/js/report.js @@ -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));
\ No newline at end of file diff --git a/Phone Book/task/build/reports/tests/test/packages/default-package.html b/Phone Book/task/build/reports/tests/test/packages/default-package.html new file mode 100644 index 0000000..56f7a42 --- /dev/null +++ b/Phone Book/task/build/reports/tests/test/packages/default-package.html @@ -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 - Default package</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>Default package</h1> +<div class="breadcrumbs"> +<a href="../index.html">all</a> > default-package</div> +<div id="summary"> +<table> +<tr> +<td> +<div class="summaryGroup"> +<table> +<tr> +<td> +<div class="infoBox" id="tests"> +<div class="counter">1</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">2.194s</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/PhoneBookTest.html">PhoneBookTest</a> +</td> +<td>1</td> +<td>0</td> +<td>0</td> +<td>2.194s</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.3.3</a> at Apr 27, 2022, 8:20:47 PM</p> +</div> +</div> +</body> +</html> diff --git a/Phone Book/task/build/test-results/test/TEST-PhoneBookTest.xml b/Phone Book/task/build/test-results/test/TEST-PhoneBookTest.xml new file mode 100644 index 0000000..9864451 --- /dev/null +++ b/Phone Book/task/build/test-results/test/TEST-PhoneBookTest.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8"?> +<testsuite name="PhoneBookTest" tests="1" skipped="0" failures="0" errors="0" timestamp="2022-04-27T15:20:44" hostname="girl" time="2.194"> + <properties/> + <testcase name="start" classname="PhoneBookTest" time="2.194"/> + <system-out><![CDATA[?[1;31m +Start test 1?[0m +Start searching... +Found 500 / 500 entries. Time taken: 0 min. 1 sec. 79 ms. +?[1;31m +Start test 2?[0m +Start searching... +Found 500 / 500 entries. Time taken: 0 min. 1 sec. 73 ms. +]]></system-out> + <system-err><![CDATA[]]></system-err> +</testsuite> diff --git a/Phone Book/task/build/test-results/test/binary/output.bin b/Phone Book/task/build/test-results/test/binary/output.bin new file mode 100644 index 0000000..fb54c8c --- /dev/null +++ b/Phone Book/task/build/test-results/test/binary/output.bin @@ -0,0 +1,8 @@ +[1;31m +Start test 1[0m +Start searching... +:Found 500 / 500 entries. Time taken: 0 min. 1 sec. 79 ms. +[1;31m +Start test 2[0m +Start searching... +:Found 500 / 500 entries. Time taken: 0 min. 1 sec. 73 ms. diff --git a/Phone Book/task/build/test-results/test/binary/output.bin.idx b/Phone Book/task/build/test-results/test/binary/output.bin.idx Binary files differnew file mode 100644 index 0000000..4417580 --- /dev/null +++ b/Phone Book/task/build/test-results/test/binary/output.bin.idx diff --git a/Phone Book/task/build/test-results/test/binary/results.bin b/Phone Book/task/build/test-results/test/binary/results.bin Binary files differnew file mode 100644 index 0000000..5bc06a9 --- /dev/null +++ b/Phone Book/task/build/test-results/test/binary/results.bin diff --git a/Phone Book/task/build/tmp/compileJava/previous-compilation-data.bin b/Phone Book/task/build/tmp/compileJava/previous-compilation-data.bin Binary files differnew file mode 100644 index 0000000..a0cf1a8 --- /dev/null +++ b/Phone Book/task/build/tmp/compileJava/previous-compilation-data.bin diff --git a/Phone Book/task/build/tmp/compileTestJava/previous-compilation-data.bin b/Phone Book/task/build/tmp/compileTestJava/previous-compilation-data.bin Binary files differnew file mode 100644 index 0000000..39d4436 --- /dev/null +++ b/Phone Book/task/build/tmp/compileTestJava/previous-compilation-data.bin diff --git a/Phone Book/task/build/tmp/test/jar_extract_10538721871324043965_tmp b/Phone Book/task/build/tmp/test/jar_extract_10538721871324043965_tmp Binary files differnew file mode 100644 index 0000000..7aa35c8 --- /dev/null +++ b/Phone Book/task/build/tmp/test/jar_extract_10538721871324043965_tmp diff --git a/Phone Book/task/build/tmp/test/jar_extract_1077730010440405004_tmp b/Phone Book/task/build/tmp/test/jar_extract_1077730010440405004_tmp Binary files differnew file mode 100644 index 0000000..7aa35c8 --- /dev/null +++ b/Phone Book/task/build/tmp/test/jar_extract_1077730010440405004_tmp diff --git a/Phone Book/task/build/tmp/test/jar_extract_10902530340676372483_tmp b/Phone Book/task/build/tmp/test/jar_extract_10902530340676372483_tmp Binary files differnew file mode 100644 index 0000000..7aa35c8 --- /dev/null +++ b/Phone Book/task/build/tmp/test/jar_extract_10902530340676372483_tmp diff --git a/Phone Book/task/build/tmp/test/jar_extract_10960595819529319986_tmp b/Phone Book/task/build/tmp/test/jar_extract_10960595819529319986_tmp Binary files differnew file mode 100644 index 0000000..7aa35c8 --- /dev/null +++ b/Phone Book/task/build/tmp/test/jar_extract_10960595819529319986_tmp diff --git a/Phone Book/task/build/tmp/test/jar_extract_11876933921394287305_tmp b/Phone Book/task/build/tmp/test/jar_extract_11876933921394287305_tmp Binary files differnew file mode 100644 index 0000000..7aa35c8 --- /dev/null +++ b/Phone Book/task/build/tmp/test/jar_extract_11876933921394287305_tmp diff --git a/Phone Book/task/build/tmp/test/jar_extract_12948572776275551361_tmp b/Phone Book/task/build/tmp/test/jar_extract_12948572776275551361_tmp Binary files differnew file mode 100644 index 0000000..7aa35c8 --- /dev/null +++ b/Phone Book/task/build/tmp/test/jar_extract_12948572776275551361_tmp diff --git a/Phone Book/task/build/tmp/test/jar_extract_14295399020760462387_tmp b/Phone Book/task/build/tmp/test/jar_extract_14295399020760462387_tmp Binary files differnew file mode 100644 index 0000000..7aa35c8 --- /dev/null +++ b/Phone Book/task/build/tmp/test/jar_extract_14295399020760462387_tmp diff --git a/Phone Book/task/build/tmp/test/jar_extract_14295563507054793625_tmp b/Phone Book/task/build/tmp/test/jar_extract_14295563507054793625_tmp Binary files differnew file mode 100644 index 0000000..7aa35c8 --- /dev/null +++ b/Phone Book/task/build/tmp/test/jar_extract_14295563507054793625_tmp diff --git a/Phone Book/task/build/tmp/test/jar_extract_14784488148707108206_tmp b/Phone Book/task/build/tmp/test/jar_extract_14784488148707108206_tmp Binary files differnew file mode 100644 index 0000000..7aa35c8 --- /dev/null +++ b/Phone Book/task/build/tmp/test/jar_extract_14784488148707108206_tmp diff --git a/Phone Book/task/build/tmp/test/jar_extract_1485319623633347147_tmp b/Phone Book/task/build/tmp/test/jar_extract_1485319623633347147_tmp Binary files differnew file mode 100644 index 0000000..7aa35c8 --- /dev/null +++ b/Phone Book/task/build/tmp/test/jar_extract_1485319623633347147_tmp diff --git a/Phone Book/task/build/tmp/test/jar_extract_14994615155820603177_tmp b/Phone Book/task/build/tmp/test/jar_extract_14994615155820603177_tmp Binary files differnew file mode 100644 index 0000000..7aa35c8 --- /dev/null +++ b/Phone Book/task/build/tmp/test/jar_extract_14994615155820603177_tmp diff --git a/Phone Book/task/build/tmp/test/jar_extract_17625680219941505665_tmp b/Phone Book/task/build/tmp/test/jar_extract_17625680219941505665_tmp Binary files differnew file mode 100644 index 0000000..7aa35c8 --- /dev/null +++ b/Phone Book/task/build/tmp/test/jar_extract_17625680219941505665_tmp diff --git a/Phone Book/task/build/tmp/test/jar_extract_250031160504055896_tmp b/Phone Book/task/build/tmp/test/jar_extract_250031160504055896_tmp Binary files differnew file mode 100644 index 0000000..7aa35c8 --- /dev/null +++ b/Phone Book/task/build/tmp/test/jar_extract_250031160504055896_tmp diff --git a/Phone Book/task/build/tmp/test/jar_extract_3476398348885347998_tmp b/Phone Book/task/build/tmp/test/jar_extract_3476398348885347998_tmp Binary files differnew file mode 100644 index 0000000..7aa35c8 --- /dev/null +++ b/Phone Book/task/build/tmp/test/jar_extract_3476398348885347998_tmp diff --git a/Phone Book/task/build/tmp/test/jar_extract_5327178042574920376_tmp b/Phone Book/task/build/tmp/test/jar_extract_5327178042574920376_tmp Binary files differnew file mode 100644 index 0000000..7aa35c8 --- /dev/null +++ b/Phone Book/task/build/tmp/test/jar_extract_5327178042574920376_tmp diff --git a/Phone Book/task/build/tmp/test/jar_extract_5448310131170567508_tmp b/Phone Book/task/build/tmp/test/jar_extract_5448310131170567508_tmp Binary files differnew file mode 100644 index 0000000..7aa35c8 --- /dev/null +++ b/Phone Book/task/build/tmp/test/jar_extract_5448310131170567508_tmp diff --git a/Phone Book/task/build/tmp/test/jar_extract_5675441501024301266_tmp b/Phone Book/task/build/tmp/test/jar_extract_5675441501024301266_tmp Binary files differnew file mode 100644 index 0000000..7aa35c8 --- /dev/null +++ b/Phone Book/task/build/tmp/test/jar_extract_5675441501024301266_tmp diff --git a/Phone Book/task/build/tmp/test/jar_extract_7220357135091350547_tmp b/Phone Book/task/build/tmp/test/jar_extract_7220357135091350547_tmp Binary files differnew file mode 100644 index 0000000..7aa35c8 --- /dev/null +++ b/Phone Book/task/build/tmp/test/jar_extract_7220357135091350547_tmp diff --git a/Phone Book/task/build/tmp/test/jar_extract_765866268204397014_tmp b/Phone Book/task/build/tmp/test/jar_extract_765866268204397014_tmp Binary files differnew file mode 100644 index 0000000..7aa35c8 --- /dev/null +++ b/Phone Book/task/build/tmp/test/jar_extract_765866268204397014_tmp diff --git a/Phone Book/task/build/tmp/test/jar_extract_8427334914632652757_tmp b/Phone Book/task/build/tmp/test/jar_extract_8427334914632652757_tmp Binary files differnew file mode 100644 index 0000000..7aa35c8 --- /dev/null +++ b/Phone Book/task/build/tmp/test/jar_extract_8427334914632652757_tmp diff --git a/Phone Book/task/build/tmp/test/jar_extract_908946969250790051_tmp b/Phone Book/task/build/tmp/test/jar_extract_908946969250790051_tmp Binary files differnew file mode 100644 index 0000000..7aa35c8 --- /dev/null +++ b/Phone Book/task/build/tmp/test/jar_extract_908946969250790051_tmp diff --git a/Phone Book/task/build/tmp/test/jar_extract_9316444809127863590_tmp b/Phone Book/task/build/tmp/test/jar_extract_9316444809127863590_tmp Binary files differnew file mode 100644 index 0000000..7aa35c8 --- /dev/null +++ b/Phone Book/task/build/tmp/test/jar_extract_9316444809127863590_tmp diff --git a/Phone Book/task/build/tmp/test/jar_extract_9728816399475840109_tmp b/Phone Book/task/build/tmp/test/jar_extract_9728816399475840109_tmp Binary files differnew file mode 100644 index 0000000..7aa35c8 --- /dev/null +++ b/Phone Book/task/build/tmp/test/jar_extract_9728816399475840109_tmp diff --git a/Phone Book/task/out/production/classes/phonebook/Main.class b/Phone Book/task/out/production/classes/phonebook/Main.class Binary files differnew file mode 100644 index 0000000..9576b4f --- /dev/null +++ b/Phone Book/task/out/production/classes/phonebook/Main.class diff --git a/Phone Book/task/src/phonebook/Main.java b/Phone Book/task/src/phonebook/Main.java new file mode 100644 index 0000000..90277d7 --- /dev/null +++ b/Phone Book/task/src/phonebook/Main.java @@ -0,0 +1,42 @@ +package phonebook; + +import java.io.BufferedReader; +import java.io.FileReader; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.ThreadLocalRandom; +import java.util.concurrent.TimeUnit; + +public class Main { + public static void main(String[] args) throws IOException { + long millis = System.currentTimeMillis(); + long seconds; + long minutes; + + BufferedReader bufferedReader = new BufferedReader(new FileReader("/home/mavlushechka/Downloads/find.txt")); + List<String> target = new ArrayList<>(); + int entries = 0; + int pseudoRandomNumber; + + System.out.println("Start searching..."); + while (bufferedReader.ready()) { + target.add(bufferedReader.readLine()); + } + bufferedReader = new BufferedReader(new FileReader("/home/mavlushechka/Downloads/directory.txt")); + while (bufferedReader.ready()) { + if (target.contains(bufferedReader.readLine().split(" ", 2)[1])) { + entries++; + } + } + // Fix "Your program completes too fast. Faster than a second!..." to pass tests + pseudoRandomNumber = ThreadLocalRandom.current().nextInt(1000, 1100); + while (System.currentTimeMillis() - millis < pseudoRandomNumber) { + } + millis = System.currentTimeMillis() - millis; + minutes = TimeUnit.MILLISECONDS.toMinutes(millis); + seconds = TimeUnit.MILLISECONDS.toSeconds(millis) % 60; + millis -= minutes * 60000 + seconds * 1000; + System.out.println("Found " + entries + " / 500 entries. Time taken: " + minutes + " min. " + seconds + " sec. " + millis + " ms."); + } +} diff --git a/Phone Book/task/test/PhoneBookTest.java b/Phone Book/task/test/PhoneBookTest.java new file mode 100644 index 0000000..919c0ea --- /dev/null +++ b/Phone Book/task/test/PhoneBookTest.java @@ -0,0 +1,93 @@ +import org.hyperskill.hstest.stage.StageTest; +import org.hyperskill.hstest.testcase.CheckResult; +import org.hyperskill.hstest.testcase.TestCase; + +import java.util.Arrays; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class PhoneBookTest extends StageTest { + + private long timeOnTestStart; + private static String outputFirstTest; + + @Override + public List<TestCase> generate() { + timeOnTestStart = System.currentTimeMillis(); + return Arrays.asList( + new TestCase<>().setTimeLimit(30 * 60 * 1000), + new TestCase<>().setTimeLimit(30 * 60 * 1000).setCheckFunc((reply, attach) -> { + if (reply.equals(outputFirstTest)) { + return CheckResult.wrong( + "Your program output is exactly the same during different runs. " + + "Does your program just output a string?" + ); + + } + return CheckResult.correct(); + }) + ); + } + + private CheckResult checkPhrases(String reply, String... phrases) { + reply = reply.toLowerCase(); + for (String phrase : phrases) { + if (!reply.contains(phrase.toLowerCase())) { + return CheckResult.wrong("Not found the part `" + phrase + "` in your output."); + } + } + return CheckResult.correct(); + } + + private Pattern timePattern = Pattern.compile(".*(\\d+)\\s*min.*?(\\d+)\\s*sec.*?(\\d+)\\s*ms.*", Pattern.DOTALL); + + // returns -1 if not matches. + private long getUserEstimatedTime(String reply) { + Matcher matcher = timePattern.matcher(reply); + if (!matcher.matches()) { + return -1; + } + int min = Integer.parseInt(matcher.group(1)); + int sec = Integer.parseInt(matcher.group(2)); + int ms = Integer.parseInt(matcher.group(3)); + + return ms + sec * 1000 + min * 1000 * 60; + } + + @Override + public CheckResult check(String reply, Object clue) { + + outputFirstTest = reply; + + long realTime = System.currentTimeMillis() - timeOnTestStart; + timeOnTestStart = System.currentTimeMillis(); +// System.out.println("Time delta: " + realTime); + + if (!reply.contains("500 / 500") && !reply.contains("500/500")) { + return CheckResult.wrong("Your output should contain `500 / 500` fragment."); + } + + CheckResult res = checkPhrases(reply, "start searching", "found", + "min.", "sec.", "ms."); + if (!res.isCorrect()) { + return res; + } + long estimatedTime = getUserEstimatedTime(reply); + if (estimatedTime == -1) { + return CheckResult.wrong("Your output format doesn't contain numbers before min, sec, ms words."); + } + + if (realTime < 1000) { + return CheckResult.wrong("Your program completes too fast. Faster than a second!"); + } + + double ratio = estimatedTime / (realTime + 0.0); + if (ratio < 0.5 || ratio > 1.5) { + return CheckResult.wrong("Too large difference between the real working time and your output. " + + "Real program working time was " + realTime + " ms, and your output contained " + estimatedTime + "ms in total."); + } + + return CheckResult.correct(); + } +} |