From 2084dd6cf867a213ccf3cfd21ea239bf19e9a1ad Mon Sep 17 00:00:00 2001 From: Rame Madah Date: Fri, 21 May 2021 16:28:38 +0200 Subject: [PATCH 1/2] time conversion 100% --- .../compileJava/source-classes-mapping.txt | 4 ++ src/main/java/de/htwberlin/App.java | 7 +++ src/main/java/de/htwberlin/TimeSwitch.java | 59 +++++++++++++++++++ 3 files changed, 70 insertions(+) create mode 100644 build/tmp/compileJava/source-classes-mapping.txt create mode 100644 src/main/java/de/htwberlin/TimeSwitch.java diff --git a/build/tmp/compileJava/source-classes-mapping.txt b/build/tmp/compileJava/source-classes-mapping.txt new file mode 100644 index 0000000..ccb32fb --- /dev/null +++ b/build/tmp/compileJava/source-classes-mapping.txt @@ -0,0 +1,4 @@ +de/htwberlin/TimeSwitch.java + de.htwberlin.TimeSwitch +de/htwberlin/App.java + de.htwberlin.App diff --git a/src/main/java/de/htwberlin/App.java b/src/main/java/de/htwberlin/App.java index 2e57978..23a73cd 100644 --- a/src/main/java/de/htwberlin/App.java +++ b/src/main/java/de/htwberlin/App.java @@ -7,6 +7,13 @@ public static void main(String[] args) { String s2 = "07:05:45 AM"; String s3 = "12:05:45 PM"; String s4 = "12:05:45 AM"; + TimeSwitch t = new TimeSwitch(); + + // t.timeSwitcher("12:05:45 AM"); + t.timeSwitcher("07:05:45 PM"); + t.timeSwitcher("07:05:32 AM"); + t.timeSwitcher("12:05:29 PM"); + t.timeSwitcher("12:05:00 AM"); // TODO: Rufen Sie hier Ihre Methode auf } } diff --git a/src/main/java/de/htwberlin/TimeSwitch.java b/src/main/java/de/htwberlin/TimeSwitch.java new file mode 100644 index 0000000..647cd23 --- /dev/null +++ b/src/main/java/de/htwberlin/TimeSwitch.java @@ -0,0 +1,59 @@ +package de.htwberlin; + +import java.util.ArrayList; + +public class TimeSwitch { + ArrayList Switcher = new ArrayList<>(); + + public TimeSwitch() { + } + + public ArrayList timeSwitcher(String in){ + String[] time = in.split( "[ :]+"); + String oldtime; + int newtime = 0 ; + int converted = 0; + + this.Switcher.clear(); + + + for(String i : time){ + oldtime = time[0] ; + + if(time[0].equals("12") && time[3].equals("AM") ){ + converted = 0; + time[0]= String.valueOf(converted); + } + if(time[0].equals("12") && time[3].equals("PM") ){ + converted = 12; + time[0]= String.valueOf(converted); + } + + if(i.equals("PM") && converted!= 12){ + for(int j=0; j<12;j++){ + if (newtime < 12) + newtime += 1 ; + + } + converted= Integer.parseInt(oldtime) + newtime; + + if(converted >24 ){ + converted = 0; + } + time[0]= String.valueOf(converted); + + } + + } + Switcher.add(time[0]); + Switcher.add(time[1]); + Switcher.add(time[2]); + System.out.println("------------"); + + System.out.println(Switcher); + return this.Switcher; + } + + + +} From 9622836a6e982fc003e7d9f47212262dd7a039dc Mon Sep 17 00:00:00 2001 From: Rame Madah Date: Sat, 22 May 2021 18:33:54 +0200 Subject: [PATCH 2/2] test & implementation 100 --- .../classes/de.htwberlin.TimeSwitchTest.html | 124 +++++++++++ build/reports/tests/test/css/base-style.css | 179 ++++++++++++++++ build/reports/tests/test/css/style.css | 84 ++++++++ build/reports/tests/test/index.html | 133 ++++++++++++ build/reports/tests/test/js/report.js | 194 ++++++++++++++++++ .../tests/test/packages/de.htwberlin.html | 103 ++++++++++ .../test/TEST-de.htwberlin.TimeSwitchTest.xml | 14 ++ build/test-results/test/binary/output.bin | 4 + build/test-results/test/binary/output.bin.idx | Bin 0 -> 135 bytes build/test-results/test/binary/results.bin | Bin 0 -> 229 bytes .../source-classes-mapping.txt | 2 + src/main/java/de/htwberlin/App.java | 1 + src/main/java/de/htwberlin/TimeSwitch.java | 25 +-- .../java/de/htwberlin/TimeSwitchTest.java | 38 ++++ 14 files changed, 887 insertions(+), 14 deletions(-) create mode 100644 build/reports/tests/test/classes/de.htwberlin.TimeSwitchTest.html create mode 100644 build/reports/tests/test/css/base-style.css create mode 100644 build/reports/tests/test/css/style.css create mode 100644 build/reports/tests/test/index.html create mode 100644 build/reports/tests/test/js/report.js create mode 100644 build/reports/tests/test/packages/de.htwberlin.html create mode 100644 build/test-results/test/TEST-de.htwberlin.TimeSwitchTest.xml create mode 100644 build/test-results/test/binary/output.bin create mode 100644 build/test-results/test/binary/output.bin.idx create mode 100644 build/test-results/test/binary/results.bin create mode 100644 build/tmp/compileTestJava/source-classes-mapping.txt create mode 100644 src/test/java/de/htwberlin/TimeSwitchTest.java diff --git a/build/reports/tests/test/classes/de.htwberlin.TimeSwitchTest.html b/build/reports/tests/test/classes/de.htwberlin.TimeSwitchTest.html new file mode 100644 index 0000000..33cacb2 --- /dev/null +++ b/build/reports/tests/test/classes/de.htwberlin.TimeSwitchTest.html @@ -0,0 +1,124 @@ + + + + + +Test results - TimeSwitchTest + + + + + +
+

TimeSwitchTest

+ +
+ + + + + +
+
+ + + + + + + +
+
+
4
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

ignored

+
+
+
+
0.084s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+ +
+

Tests

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TestDurationResult
timeSwitcher()0.002spassed
timeSwitcher2()0.077spassed
timeSwitcher3()0.003spassed
timeSwitcher4()0.002spassed
+
+
+

Standard output

+ +
------------
+------------
+------------
+------------
+
+
+
+
+ +
+ + diff --git a/build/reports/tests/test/css/base-style.css b/build/reports/tests/test/css/base-style.css new file mode 100644 index 0000000..4afa73e --- /dev/null +++ b/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/build/reports/tests/test/css/style.css b/build/reports/tests/test/css/style.css new file mode 100644 index 0000000..3dc4913 --- /dev/null +++ b/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/build/reports/tests/test/index.html b/build/reports/tests/test/index.html new file mode 100644 index 0000000..83b0659 --- /dev/null +++ b/build/reports/tests/test/index.html @@ -0,0 +1,133 @@ + + + + + +Test results - Test Summary + + + + + +
+

Test Summary

+
+ + + + + +
+
+ + + + + + + +
+
+
4
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

ignored

+
+
+
+
0.084s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+ +
+

Packages

+ + + + + + + + + + + + + + + + + + + + + +
PackageTestsFailuresIgnoredDurationSuccess rate
+de.htwberlin +4000.084s100%
+
+
+

Classes

+ + + + + + + + + + + + + + + + + + + + + +
ClassTestsFailuresIgnoredDurationSuccess rate
+de.htwberlin.TimeSwitchTest +4000.084s100%
+
+
+ +
+ + diff --git a/build/reports/tests/test/js/report.js b/build/reports/tests/test/js/report.js new file mode 100644 index 0000000..83bab4a --- /dev/null +++ b/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/build/reports/tests/test/packages/de.htwberlin.html b/build/reports/tests/test/packages/de.htwberlin.html new file mode 100644 index 0000000..f83425f --- /dev/null +++ b/build/reports/tests/test/packages/de.htwberlin.html @@ -0,0 +1,103 @@ + + + + + +Test results - Package de.htwberlin + + + + + +
+

Package de.htwberlin

+ +
+ + + + + +
+
+ + + + + + + +
+
+
4
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

ignored

+
+
+
+
0.084s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+ +
+

Classes

+ + + + + + + + + + + + + + + + + + + +
ClassTestsFailuresIgnoredDurationSuccess rate
+TimeSwitchTest +4000.084s100%
+
+
+ +
+ + diff --git a/build/test-results/test/TEST-de.htwberlin.TimeSwitchTest.xml b/build/test-results/test/TEST-de.htwberlin.TimeSwitchTest.xml new file mode 100644 index 0000000..6c3a667 --- /dev/null +++ b/build/test-results/test/TEST-de.htwberlin.TimeSwitchTest.xml @@ -0,0 +1,14 @@ + + + + + + + + + + diff --git a/build/test-results/test/binary/output.bin b/build/test-results/test/binary/output.bin new file mode 100644 index 0000000..328e1b1 --- /dev/null +++ b/build/test-results/test/binary/output.bin @@ -0,0 +1,4 @@ +------------ +------------ +------------ +------------ diff --git a/build/test-results/test/binary/output.bin.idx b/build/test-results/test/binary/output.bin.idx new file mode 100644 index 0000000000000000000000000000000000000000..288e1f46a7c04cc1ba4e3dd191200fec54352ff9 GIT binary patch literal 135 ocmZQ%Vqs)J1OL$gGgMv(Mx)99XMswnz-V*@tWXIv7>%v~0G=X1tpET3 literal 0 HcmV?d00001 diff --git a/build/test-results/test/binary/results.bin b/build/test-results/test/binary/results.bin new file mode 100644 index 0000000000000000000000000000000000000000..7ffd589aa2742742d154f01d35ca5dbea411003a GIT binary patch literal 229 zcmZQ(WSWzbs+Unxo|IaYlbNR%l9`(tT%K8yoDq^*T+)xqWnf^eoboCql7(?X30z%j zk&%WbI-kK8s&*LzGm4xsnpz;Aff=fHH3JKZS`#$2Kt2N#RPA~O)_!C+XlSBw;VL&X F006j8P@Mn( literal 0 HcmV?d00001 diff --git a/build/tmp/compileTestJava/source-classes-mapping.txt b/build/tmp/compileTestJava/source-classes-mapping.txt new file mode 100644 index 0000000..dd99ebb --- /dev/null +++ b/build/tmp/compileTestJava/source-classes-mapping.txt @@ -0,0 +1,2 @@ +de/htwberlin/TimeSwitchTest.java + de.htwberlin.TimeSwitchTest diff --git a/src/main/java/de/htwberlin/App.java b/src/main/java/de/htwberlin/App.java index 23a73cd..36362a1 100644 --- a/src/main/java/de/htwberlin/App.java +++ b/src/main/java/de/htwberlin/App.java @@ -13,6 +13,7 @@ public static void main(String[] args) { t.timeSwitcher("07:05:45 PM"); t.timeSwitcher("07:05:32 AM"); t.timeSwitcher("12:05:29 PM"); + System.out.println("---------------------------"); t.timeSwitcher("12:05:00 AM"); // TODO: Rufen Sie hier Ihre Methode auf } diff --git a/src/main/java/de/htwberlin/TimeSwitch.java b/src/main/java/de/htwberlin/TimeSwitch.java index 647cd23..5733b2d 100644 --- a/src/main/java/de/htwberlin/TimeSwitch.java +++ b/src/main/java/de/htwberlin/TimeSwitch.java @@ -8,13 +8,12 @@ public class TimeSwitch { public TimeSwitch() { } - public ArrayList timeSwitcher(String in){ + public String timeSwitcher(String in){ String[] time = in.split( "[ :]+"); String oldtime; int newtime = 0 ; int converted = 0; - - this.Switcher.clear(); + this.Switcher.clear(); for(String i : time){ @@ -29,29 +28,27 @@ public ArrayList timeSwitcher(String in){ time[0]= String.valueOf(converted); } - if(i.equals("PM") && converted!= 12){ - for(int j=0; j<12;j++){ + if(i.equals("PM") && converted!= 12) { + for (int j = 0; j < 12; j++) { if (newtime < 12) - newtime += 1 ; + newtime += 1; } - converted= Integer.parseInt(oldtime) + newtime; + converted = Integer.parseInt(oldtime) + newtime; - if(converted >24 ){ + if (converted > 24) { converted = 0; } - time[0]= String.valueOf(converted); - + time[0] = String.valueOf(converted); } - } + Switcher.add(time[0]); Switcher.add(time[1]); Switcher.add(time[2]); - System.out.println("------------"); - System.out.println(Switcher); - return this.Switcher; + + return time[0]+":"+time[1]+":"+time[2]; } diff --git a/src/test/java/de/htwberlin/TimeSwitchTest.java b/src/test/java/de/htwberlin/TimeSwitchTest.java new file mode 100644 index 0000000..7be7c8f --- /dev/null +++ b/src/test/java/de/htwberlin/TimeSwitchTest.java @@ -0,0 +1,38 @@ +package de.htwberlin; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +class TimeSwitchTest { + + @Test + void timeSwitcher() { + TimeSwitch T = new TimeSwitch(); + String actual = "07:05:45 PM"; + String expected = "19:05:45"; + assertEquals(expected, T.timeSwitcher(actual)); + } + + @Test + void timeSwitcher2() { + TimeSwitch T = new TimeSwitch(); + String actual = "07:05:32 AM"; + String expected = "07:05:32"; + assertEquals(expected, T.timeSwitcher(actual)); + } + @Test + void timeSwitcher3() { + TimeSwitch T = new TimeSwitch(); + String actual = "12:05:29 PM"; + String expected = "12:05:29"; + assertEquals(expected, T.timeSwitcher(actual)); + } + @Test + void timeSwitcher4() { + TimeSwitch T = new TimeSwitch(); + String actual = "12:05:00 AM"; + String expected = "0:05:00"; + assertEquals(expected, T.timeSwitcher(actual)); + } +} \ No newline at end of file