From c5775a28edaf27a967c5c64a1b819271146bd87b Mon Sep 17 00:00:00 2001 From: garethpark Date: Thu, 7 Apr 2022 14:03:00 +0100 Subject: [PATCH 01/10] added github actions --- .github/workflows/github-actions.yml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 .github/workflows/github-actions.yml diff --git a/.github/workflows/github-actions.yml b/.github/workflows/github-actions.yml new file mode 100644 index 0000000..6e15fe5 --- /dev/null +++ b/.github/workflows/github-actions.yml @@ -0,0 +1,17 @@ +name: GitHub Actions +on: [push] +jobs: + Explore-GitHub-Actions: + runs-on: ubuntu-latest + steps: + - run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event." + - run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by GitHub!" + - run: echo "🔎 The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}." + - name: Check out repository code + uses: actions/checkout@v3 + - run: echo "💡 The ${{ github.repository }} repository has been cloned to the runner." + - run: echo "🖥️ The workflow is now ready to test your code on the runner." + - name: List files in the repository + run: | + ls ${{ github.workspace }} + - run: echo "🍏 This job's status is ${{ job.status }}." From 8c5a692f22515d11dc5ec5274fee0ede5947747f Mon Sep 17 00:00:00 2001 From: garethpark Date: Thu, 7 Apr 2022 14:45:55 +0100 Subject: [PATCH 02/10] added github actions --- .github/workflows/github-actions.yml | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/.github/workflows/github-actions.yml b/.github/workflows/github-actions.yml index 6e15fe5..1eac603 100644 --- a/.github/workflows/github-actions.yml +++ b/.github/workflows/github-actions.yml @@ -1,17 +1,17 @@ -name: GitHub Actions -on: [push] +name: Deploy + +on: + push: + branches: + - master + jobs: - Explore-GitHub-Actions: + build: runs-on: ubuntu-latest steps: - - run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event." - - run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by GitHub!" - - run: echo "🔎 The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}." - - name: Check out repository code - uses: actions/checkout@v3 - - run: echo "💡 The ${{ github.repository }} repository has been cloned to the runner." - - run: echo "🖥️ The workflow is now ready to test your code on the runner." - - name: List files in the repository - run: | - ls ${{ github.workspace }} - - run: echo "🍏 This job's status is ${{ job.status }}." + - uses: actions/checkout@v2 + - uses: akhileshns/heroku-deploy@v3.12.12 # This is the action + with: + heroku_api_key: ${{secrets.HEROKU_API_KEY}} + heroku_app_name: "javawebapp-with-gareth" #Must be unique in Heroku + heroku_email: "ennoucas@gmail.com" From 5c5acbac724108cdf250f2514e433c6b36100053 Mon Sep 17 00:00:00 2001 From: garethpark Date: Thu, 7 Apr 2022 15:04:46 +0100 Subject: [PATCH 03/10] added github actions --- src/main/java/com/develogical/QueryProcessor.java | 2 ++ src/test/java/com/develogical/QueryProcessorTest.java | 7 +++++++ 2 files changed, 9 insertions(+) diff --git a/src/main/java/com/develogical/QueryProcessor.java b/src/main/java/com/develogical/QueryProcessor.java index 832670e..bc07d8a 100644 --- a/src/main/java/com/develogical/QueryProcessor.java +++ b/src/main/java/com/develogical/QueryProcessor.java @@ -7,6 +7,8 @@ public String process(String query) { return "William Shakespeare (26 April 1564 - 23 April 1616) was an " + "English poet, playwright, and actor, widely regarded as the greatest " + "writer in the English language and the world's pre-eminent dramatist."; + } else if (query.toLowerCase().contains("what is your name")){ + return "Gareth & Lucas"; } return ""; } diff --git a/src/test/java/com/develogical/QueryProcessorTest.java b/src/test/java/com/develogical/QueryProcessorTest.java index 89467ca..64e46c5 100644 --- a/src/test/java/com/develogical/QueryProcessorTest.java +++ b/src/test/java/com/develogical/QueryProcessorTest.java @@ -24,4 +24,11 @@ public void knowsAboutShakespeare() throws Exception { public void isNotCaseSensitive() throws Exception { assertThat(queryProcessor.process("shakespeare"), containsString("playwright")); } + + // /api?q=xxxxx: what is your name + @Test + public void returnsName() throws Exception { + assertThat(queryProcessor.process("what is your name"), is("Gareth & Lucas")); + } + } From 2142a0b697d173a81fb4e1d5e83dda10288b799d Mon Sep 17 00:00:00 2001 From: garethpark Date: Thu, 7 Apr 2022 15:51:40 +0100 Subject: [PATCH 04/10] updated --- src/main/java/com/develogical/QueryProcessor.java | 3 +++ src/test/java/com/develogical/QueryProcessorTest.java | 11 +++++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/develogical/QueryProcessor.java b/src/main/java/com/develogical/QueryProcessor.java index bc07d8a..f39f485 100644 --- a/src/main/java/com/develogical/QueryProcessor.java +++ b/src/main/java/com/develogical/QueryProcessor.java @@ -1,5 +1,8 @@ package com.develogical; +import java.util.Arrays; +import java.util.Comparator; + public class QueryProcessor { public String process(String query) { diff --git a/src/test/java/com/develogical/QueryProcessorTest.java b/src/test/java/com/develogical/QueryProcessorTest.java index 64e46c5..13eb119 100644 --- a/src/test/java/com/develogical/QueryProcessorTest.java +++ b/src/test/java/com/develogical/QueryProcessorTest.java @@ -2,6 +2,9 @@ import org.junit.Test; +import java.util.Arrays; +import java.util.Comparator; + import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; @@ -11,23 +14,23 @@ public class QueryProcessorTest { QueryProcessor queryProcessor = new QueryProcessor(); @Test - public void returnsEmptyStringIfCannotProcessQuery() throws Exception { + public void returnsEmptyStringIfCannotProcessQuery() { assertThat(queryProcessor.process("test"), is("")); } @Test - public void knowsAboutShakespeare() throws Exception { + public void knowsAboutShakespeare() { assertThat(queryProcessor.process("Shakespeare"), containsString("playwright")); } @Test - public void isNotCaseSensitive() throws Exception { + public void isNotCaseSensitive() { assertThat(queryProcessor.process("shakespeare"), containsString("playwright")); } // /api?q=xxxxx: what is your name @Test - public void returnsName() throws Exception { + public void returnsName() { assertThat(queryProcessor.process("what is your name"), is("Gareth & Lucas")); } From e8e00c335d516b17c2bc76f684a380dbea2c8943 Mon Sep 17 00:00:00 2001 From: garethpark Date: Thu, 7 Apr 2022 15:52:12 +0100 Subject: [PATCH 05/10] updated --- src/main/java/com/develogical/QueryProcessor.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/main/java/com/develogical/QueryProcessor.java b/src/main/java/com/develogical/QueryProcessor.java index f39f485..530cd27 100644 --- a/src/main/java/com/develogical/QueryProcessor.java +++ b/src/main/java/com/develogical/QueryProcessor.java @@ -12,6 +12,13 @@ public String process(String query) { "writer in the English language and the world's pre-eminent dramatist."; } else if (query.toLowerCase().contains("what is your name")){ return "Gareth & Lucas"; + } else if (query.toLowerCase().contains("which of the following numbers is the largest")){ + return Arrays.stream( + query + .replaceAll("\\s+", "") + .split(":")[2] + .split(",")) + .max(Comparator.comparingInt(Integer::parseInt)).get(); } return ""; } From 4c39a11027a408b0558c2c5a68ed21cfd1c5d952 Mon Sep 17 00:00:00 2001 From: garethpark Date: Thu, 7 Apr 2022 16:06:30 +0100 Subject: [PATCH 06/10] updated --- src/main/java/com/develogical/QueryProcessor.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/main/java/com/develogical/QueryProcessor.java b/src/main/java/com/develogical/QueryProcessor.java index 530cd27..5e01035 100644 --- a/src/main/java/com/develogical/QueryProcessor.java +++ b/src/main/java/com/develogical/QueryProcessor.java @@ -19,6 +19,14 @@ public String process(String query) { .split(":")[2] .split(",")) .max(Comparator.comparingInt(Integer::parseInt)).get(); + } else if (query.toLowerCase().contains("multiplied")){ + Pattern p = Pattern.compile("\\d+"); + Matcher m = p.matcher(query.split(":")[1]); + int total = 1; + while(m.find()) { + total*= Integer.parseInt(m.group()); + } + return Integer.toString(total); } return ""; } From 9ff6cde9b8bd72b1bc41457442a59c17f0ecdfa8 Mon Sep 17 00:00:00 2001 From: garethpark Date: Thu, 7 Apr 2022 16:06:49 +0100 Subject: [PATCH 07/10] updated --- src/main/java/com/develogical/QueryProcessor.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/com/develogical/QueryProcessor.java b/src/main/java/com/develogical/QueryProcessor.java index 5e01035..a2562c5 100644 --- a/src/main/java/com/develogical/QueryProcessor.java +++ b/src/main/java/com/develogical/QueryProcessor.java @@ -2,6 +2,8 @@ import java.util.Arrays; import java.util.Comparator; +import java.util.regex.Matcher; +import java.util.regex.Pattern; public class QueryProcessor { From 78aff7f6f4f16f2fb1d388b2a0a7a0165e369ef0 Mon Sep 17 00:00:00 2001 From: garethpark Date: Thu, 7 Apr 2022 16:19:27 +0100 Subject: [PATCH 08/10] updated --- .../java/com/develogical/QueryProcessor.java | 11 ++++++ src/main/java/com/develogical/WebServer.java | 1 + .../com/develogical/QueryProcessorTest.java | 34 +++++++++++++++++++ 3 files changed, 46 insertions(+) diff --git a/src/main/java/com/develogical/QueryProcessor.java b/src/main/java/com/develogical/QueryProcessor.java index a2562c5..860301e 100644 --- a/src/main/java/com/develogical/QueryProcessor.java +++ b/src/main/java/com/develogical/QueryProcessor.java @@ -29,6 +29,17 @@ public String process(String query) { total*= Integer.parseInt(m.group()); } return Integer.toString(total); + } else if (query.toLowerCase().contains("minus")){ + Pattern p = Pattern.compile("\\d+"); + Matcher m = p.matcher(query.split(":")[1]); + int total = 0; + m.find(); + total += Integer.parseInt(m.group()); + m.find(); + total -= Integer.parseInt(m.group()); + return Integer.toString(total); + } else if (query.toLowerCase().contains("minister")) { + return "2017"; } return ""; } diff --git a/src/main/java/com/develogical/WebServer.java b/src/main/java/com/develogical/WebServer.java index c2a9e2d..f356d0e 100644 --- a/src/main/java/com/develogical/WebServer.java +++ b/src/main/java/com/develogical/WebServer.java @@ -26,6 +26,7 @@ public WebServer() throws Exception { server.start(); } + //test github action change static class Website extends HttpServlet { @Override diff --git a/src/test/java/com/develogical/QueryProcessorTest.java b/src/test/java/com/develogical/QueryProcessorTest.java index 13eb119..9a14586 100644 --- a/src/test/java/com/develogical/QueryProcessorTest.java +++ b/src/test/java/com/develogical/QueryProcessorTest.java @@ -34,4 +34,38 @@ public void returnsName() { assertThat(queryProcessor.process("what is your name"), is("Gareth & Lucas")); } + @Test + public void returnsLargest() { + assertThat(queryProcessor.process("awefawef:which of the following numbers is the largest: 2016, 20345, 132123"), is("132123")); + } + + ///api?q=416be190: what is 14 multiplied by 19 + @Test + public void returnsMultiplication() { + assertThat(queryProcessor.process("416be190:what is 14 multiplied by 19"), is("266")); + } + + // 0which of the following numbers are primes: %20584,%2047 +// @Test +// public void returnsPrimeNumbers() { +// assertThat(queryProcessor.process("416be190:which of the following numbers are primes: 584, 47"), is("47")); +// } + + // which of the following numbers is both a square and a cube: 713, 2116 + + // what is 7 minus 8 + @Test + public void returnsMinus() { + assertThat(queryProcessor.process("416be190:what is 7 minus 8"), is("-1")); + } + + // what is the 7th number in the Fibonacci% + + // which year was Theresa May first elected as the Prime Minister of Great Britain + + @Test + public void returnsWhichYearWasTheresaMayFirstElectedAsThePrimeMinisterOfGreatBritain() { + assertThat(queryProcessor.process("416be190:which year was Theresa May first elected as the Prime Minister of Great Britain"), is("2017")); + } + } From 92b02b61ee6664d8c71003bb06c9a772e773accf Mon Sep 17 00:00:00 2001 From: garethpark Date: Thu, 7 Apr 2022 16:37:16 +0100 Subject: [PATCH 09/10] updated --- src/main/java/com/develogical/QueryProcessor.java | 10 ++++++++++ src/test/java/com/develogical/QueryProcessorTest.java | 4 ++++ 2 files changed, 14 insertions(+) diff --git a/src/main/java/com/develogical/QueryProcessor.java b/src/main/java/com/develogical/QueryProcessor.java index 860301e..ed36ee1 100644 --- a/src/main/java/com/develogical/QueryProcessor.java +++ b/src/main/java/com/develogical/QueryProcessor.java @@ -40,6 +40,16 @@ public String process(String query) { return Integer.toString(total); } else if (query.toLowerCase().contains("minister")) { return "2017"; + } else if (query.toLowerCase().contains("square")) { + return Arrays.stream( + query + .replaceAll("\\s+", "") + .split(":")[2] + .split(",")).filter(value -> { + double sq = Math.sqrt(Integer.parseInt(value)); + double cb = Math.cbrt(Integer.parseInt(value)); + return (sq - Math.floor(sq)) == 0 && (cb - Math.floor(cb)) == 0; + }).collect(Collectors.joining(",")); } return ""; } diff --git a/src/test/java/com/develogical/QueryProcessorTest.java b/src/test/java/com/develogical/QueryProcessorTest.java index 9a14586..ef4fefb 100644 --- a/src/test/java/com/develogical/QueryProcessorTest.java +++ b/src/test/java/com/develogical/QueryProcessorTest.java @@ -52,6 +52,10 @@ public void returnsMultiplication() { // } // which of the following numbers is both a square and a cube: 713, 2116 + @Test + public void returnsSquareAndCube() { + assertThat(queryProcessor.process("416be190:which of the following numbers is both a square and a cube: 713, 64"), is("64")); + } // what is 7 minus 8 @Test From 0db5e6f7492df7083b17f4a43eeaea8ec3b1f5bb Mon Sep 17 00:00:00 2001 From: garethpark Date: Thu, 7 Apr 2022 16:37:33 +0100 Subject: [PATCH 10/10] updated --- src/main/java/com/develogical/QueryProcessor.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/develogical/QueryProcessor.java b/src/main/java/com/develogical/QueryProcessor.java index ed36ee1..fca25c1 100644 --- a/src/main/java/com/develogical/QueryProcessor.java +++ b/src/main/java/com/develogical/QueryProcessor.java @@ -4,6 +4,7 @@ import java.util.Comparator; import java.util.regex.Matcher; import java.util.regex.Pattern; +import java.util.stream.Collectors; public class QueryProcessor {