diff --git a/.gradle/7.2/executionHistory/executionHistory.bin b/.gradle/7.2/executionHistory/executionHistory.bin new file mode 100644 index 0000000..cc00e7b Binary files /dev/null and b/.gradle/7.2/executionHistory/executionHistory.bin differ diff --git a/.gradle/7.2/executionHistory/executionHistory.lock b/.gradle/7.2/executionHistory/executionHistory.lock index 591ef9c..0dae6cc 100644 Binary files a/.gradle/7.2/executionHistory/executionHistory.lock and b/.gradle/7.2/executionHistory/executionHistory.lock differ diff --git a/.gradle/7.2/fileHashes/fileHashes.bin b/.gradle/7.2/fileHashes/fileHashes.bin new file mode 100644 index 0000000..7fc6e4e Binary files /dev/null and b/.gradle/7.2/fileHashes/fileHashes.bin differ diff --git a/.gradle/7.2/fileHashes/fileHashes.lock b/.gradle/7.2/fileHashes/fileHashes.lock index 20836ac..5a73b9d 100644 Binary files a/.gradle/7.2/fileHashes/fileHashes.lock and b/.gradle/7.2/fileHashes/fileHashes.lock differ diff --git a/.gradle/7.2/fileHashes/resourceHashesCache.bin b/.gradle/7.2/fileHashes/resourceHashesCache.bin new file mode 100644 index 0000000..e755d9a Binary files /dev/null and b/.gradle/7.2/fileHashes/resourceHashesCache.bin differ diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock index 4983b10..7e3a881 100644 Binary files a/.gradle/buildOutputCleanup/buildOutputCleanup.lock and b/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ diff --git a/.gradle/buildOutputCleanup/outputFiles.bin b/.gradle/buildOutputCleanup/outputFiles.bin new file mode 100644 index 0000000..bad424d Binary files /dev/null and b/.gradle/buildOutputCleanup/outputFiles.bin differ diff --git a/build/reports/tests/test/classes/Lecture4ExercisesTest.html b/build/reports/tests/test/classes/Lecture4ExercisesTest.html new file mode 100644 index 0000000..2dcda09 --- /dev/null +++ b/build/reports/tests/test/classes/Lecture4ExercisesTest.html @@ -0,0 +1,181 @@ + + + + + +Test results - Class Lecture4ExercisesTest + + + + + +
+

Class Lecture4ExercisesTest

+ +
+ + + + + +
+
+ + + + + + + +
+
+
18
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

ignored

+
+
+
+
0.044s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+ +
+

Tests

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TestDurationResult
dotPlotSample1()0.002spassed
dotPlotSample2()0spassed
factorialOfZero()0.001spassed
factorialSimple1()0.001spassed
factorialSimple2()0spassed
fibonacciBigIndex()0spassed
fibonacciSample1()0.018spassed
fibonacciSample2()0.001spassed
fibonacciSample3()0.001spassed
isPalindrome()0.002spassed
isPalindromeIgnoreCase()0.001spassed
isPalindromeLine()0.001spassed
isPalindromeWrong1()0.001spassed
isPalindromeWrong2()0spassed
reverseCaseImportant()0.013spassed
reverseSample1()0spassed
reverseSample2()0.001spassed
reverseWithSpace()0.001spassed
+
+
+ +
+ + 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..0eb9194 --- /dev/null +++ b/build/reports/tests/test/index.html @@ -0,0 +1,133 @@ + + + + + +Test results - Test Summary + + + + + +
+

Test Summary

+
+ + + + + +
+
+ + + + + + + +
+
+
18
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

ignored

+
+
+
+
0.044s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+ +
+

Packages

+ + + + + + + + + + + + + + + + + + + + + +
PackageTestsFailuresIgnoredDurationSuccess rate
+default-package +18000.044s100%
+
+
+

Classes

+ + + + + + + + + + + + + + + + + + + + + +
ClassTestsFailuresIgnoredDurationSuccess rate
+Lecture4ExercisesTest +18000.044s100%
+
+
+ +
+ + 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/default-package.html b/build/reports/tests/test/packages/default-package.html new file mode 100644 index 0000000..ee8f895 --- /dev/null +++ b/build/reports/tests/test/packages/default-package.html @@ -0,0 +1,103 @@ + + + + + +Test results - Default package + + + + + +
+

Default package

+ +
+ + + + + +
+
+ + + + + + + +
+
+
18
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

ignored

+
+
+
+
0.044s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+ +
+

Classes

+ + + + + + + + + + + + + + + + + + + +
ClassTestsFailuresIgnoredDurationSuccess rate
+Lecture4ExercisesTest +18000.044s100%
+
+
+ +
+ + diff --git a/build/test-results/test/TEST-Lecture4ExercisesTest.xml b/build/test-results/test/TEST-Lecture4ExercisesTest.xml new file mode 100644 index 0000000..b20cfa3 --- /dev/null +++ b/build/test-results/test/TEST-Lecture4ExercisesTest.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/build/test-results/test/binary/output.bin b/build/test-results/test/binary/output.bin new file mode 100644 index 0000000..e69de29 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 0000000..f76dd23 Binary files /dev/null and b/build/test-results/test/binary/output.bin.idx differ diff --git a/build/test-results/test/binary/results.bin b/build/test-results/test/binary/results.bin new file mode 100644 index 0000000..2a21d0a Binary files /dev/null and b/build/test-results/test/binary/results.bin differ diff --git a/build/tmp/compileJava/previous-compilation-data.bin b/build/tmp/compileJava/previous-compilation-data.bin new file mode 100644 index 0000000..bc170a8 Binary files /dev/null and b/build/tmp/compileJava/previous-compilation-data.bin differ diff --git a/build/tmp/compileTestJava/previous-compilation-data.bin b/build/tmp/compileTestJava/previous-compilation-data.bin new file mode 100644 index 0000000..6a3b34d Binary files /dev/null and b/build/tmp/compileTestJava/previous-compilation-data.bin differ diff --git a/src/main/java/Lecture4Exercises.java b/src/main/java/Lecture4Exercises.java index 868721c..91bb08e 100644 --- a/src/main/java/Lecture4Exercises.java +++ b/src/main/java/Lecture4Exercises.java @@ -1,3 +1,6 @@ +import java.util.ArrayList; +import java.util.List; + public class Lecture4Exercises { /* @@ -5,7 +8,12 @@ public class Lecture4Exercises { * lecture 4 page 15 */ public long factorial(int n) { - return 0L; + + long fac = 1; + for (int i=1 ; i<=n ; i++){ + fac*=i; + } + return fac; } /* @@ -14,7 +22,20 @@ public long factorial(int n) { * lecture 4 page 19 */ public long fibonacci(int n) { - return 0; + + long f1 = 1; + long f2 = 1; + long temp = 0; + if (n == 1) + return f1; + if (n == 1) + return f2; + for (int i = 0; i < n-2; i++){ + temp = f1 + f2; + f1 = f2; + f2 = temp; + } + return f2; } /* @@ -22,7 +43,12 @@ public long fibonacci(int n) { * lecture 4 page 19 */ public String reverse(String word) { - return null; + + String reverse = ""; + for (int i = word.length()-1 ; i >=0; i--){ + reverse+=word.charAt(i); + } + return reverse; } /* @@ -32,7 +58,19 @@ public String reverse(String word) { * lecture 4 page 19 */ public boolean isPalindrome(String line) { - return false; + + String reverse=""; + line=line.replaceAll("\\s", ""); + line=line.toLowerCase(); + for (int i = line.length()-1 ; i >=0; i--){ + reverse+=line.charAt(i); + } + if (line.equals(reverse)){ + return true; + } + else { + return false; + } } /* @@ -47,6 +85,19 @@ public boolean isPalindrome(String line) { * lecture 4 page 26 */ public char[][] dotPlot(String str1, String str2) { - return null; + + char[][] dotPlot = new char[str1.length()][str2.length()]; + for (int i = 0; i < str1.length(); i++) { + for (int j = 0; j < str2.length(); j++) { + if (str1.charAt(i) == str2.charAt(j)) { + dotPlot[i][j] = '*'; + } + + else { + dotPlot[i][j] = ' '; + } + } + } + return dotPlot; } } diff --git a/src/main/java/Lecture5Exercises.java b/src/main/java/Lecture5Exercises.java index 2fb9556..45f05d3 100644 --- a/src/main/java/Lecture5Exercises.java +++ b/src/main/java/Lecture5Exercises.java @@ -1,3 +1,5 @@ +import java.util.Random; + public class Lecture5Exercises { /* @@ -6,7 +8,15 @@ public class Lecture5Exercises { * lecture 5 page 14 */ public String weakPassword(int length) { - return null; + + Random random = new Random(); + String letters = "qwertyuiopasdfghjklzxcvbnm"; + char[] password = new char[length]; + for (int i = 0; i < length; i++) { + password[i] = letters.charAt(random.nextInt(letters.length())); + } + String finalPass= new String(password); + return finalPass; } /* @@ -15,7 +25,22 @@ public String weakPassword(int length) { * lecture 5 page 14 */ public String strongPassword(int length) throws Exception { - return null; + + String letters ="qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM"; + String numbers ="0123456789"; + String specialchars="-/.^&*_!@%=+>"; + String finalStr = letters + specialchars + numbers ; + Random random = new Random(); + char[] password = new char[length]; + password[0]=letters.charAt(random.nextInt(letters.length())); + password[1]=numbers.charAt(random.nextInt(numbers.length())); + password[2]=specialchars.charAt(random.nextInt(specialchars.length())); + for (int i = 3; i < length; i++) { + password[i] = finalStr.charAt(random.nextInt(finalStr.length())); + } + String finalPass= new String(password); + return finalPass; + } /* diff --git a/src/main/java/Lecture6Exercises.java b/src/main/java/Lecture6Exercises.java index 2a89978..2109fcd 100644 --- a/src/main/java/Lecture6Exercises.java +++ b/src/main/java/Lecture6Exercises.java @@ -1,4 +1,7 @@ +import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Set; public class Lecture6Exercises { @@ -8,7 +11,12 @@ public class Lecture6Exercises { * lecture 6 page 16 */ public long calculateEvenSum(int[] arr) { - return 0L; + + long sum=0; + for (int i = 0 ; i=0; i--){ + reverse[i]=arr[arr.length-1-i]; + } + return reverse; } /* @@ -25,7 +38,17 @@ public int[] reverseArray(int[] arr) { * lecture 6 page 21 */ public double[][] matrixProduct(double[][] m1, double[][] m2) throws RuntimeException { - return null; + + double[][] product = new double[m1.length][m2[0].length]; + for(int i=0;i> arrayToList(String[][] names) { - return null; + + List> result = new ArrayList<>(); + for (String[] i : names) { + List list = new ArrayList<>(); + for (String j : i) { + list.add(j); + } + result.add(list); + } + return result; } /* @@ -43,7 +75,25 @@ public List> arrayToList(String[][] names) { * lecture 6 page 30 */ public List primeFactors(int n) { - return null; + + List primeFactors =new ArrayList<>(); + while (n % 2 == 0) { + primeFactors.add(2); + n /= 2; + } + for (int i = 3; i <= Math.sqrt(n); i += 2) { + while (n % i == 0) { + primeFactors.add(i); + n /= i; + } + } + if (n > 2) { + primeFactors.add(n); + } + Set set = new HashSet<>(primeFactors); + primeFactors.clear(); + primeFactors.addAll(set); + return primeFactors; } /* @@ -51,6 +101,14 @@ public List primeFactors(int n) { * lecture 6 page 30 */ public List extractWord(String line) { - return null; + + List words = new ArrayList<>(); + String[] split = line.split("[^a-zA-Z]+"); + for (String word : split) { + if (!word.equals("")) { + words.add(word); + } + } + return words; } }