From 23353b2e5db32cf9935fc992d770b6a714a86a2f Mon Sep 17 00:00:00 2001 From: Anton Miazin Date: Mon, 5 Jul 2021 20:02:54 +0300 Subject: [PATCH 01/11] Initial commit new directory --- src/main/java/Main.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/main/java/Main.java b/src/main/java/Main.java index cb24da2b..3ab203b5 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,9 +1,7 @@ public class Main { public static void main(String[] args) { - System.out.println("Hello, World!"); - - System.out.println("Hello World2!"); + System.out.println("Hello, username!"); } } From 45d25ba7731c0fde38a25f24b275b28974bb170e Mon Sep 17 00:00:00 2001 From: Anton Miazin Date: Wed, 7 Jul 2021 02:18:07 +0300 Subject: [PATCH 02/11] Homework 1 --- src/main/java/Homework_1/Main.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 src/main/java/Homework_1/Main.java diff --git a/src/main/java/Homework_1/Main.java b/src/main/java/Homework_1/Main.java new file mode 100644 index 00000000..eddc7336 --- /dev/null +++ b/src/main/java/Homework_1/Main.java @@ -0,0 +1,15 @@ +package Homework_1; + +public class Main { + public static void main(String[] args) { + for (int i = 0; i < args.length; i++) { + if (args[i].equals("error")) { + System.out.println("Alarm!"); + break; + } + else{ + System.out.println(args[i] + " : " + args[i].length() + " letters"); + } + } + } + } From 1a14530c56ff54364e086509ef0f5ec6da8d7639 Mon Sep 17 00:00:00 2001 From: AntonIOC777 <86797703+AntonIOC777@users.noreply.github.com> Date: Mon, 12 Jul 2021 19:15:09 +0300 Subject: [PATCH 03/11] Create README.md Updating of the Readme file --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 00000000..de4f483e --- /dev/null +++ b/README.md @@ -0,0 +1,7 @@ +# Java_Core_June_2021 + +## *Anton Miazin* + +| Number | Solution | Short description +| --- | --- | --- | +| HW1 | [Console printer]( https://github.com/NikolaevArtem/Java_Core_June_2021/tree/feature/AntonMiazin/src/main/java/Homework_1) | The app that reads input arguments and prints them, until "error" argument | From c957aa7026efce0677976d42b7e280c4be4f45e8 Mon Sep 17 00:00:00 2001 From: Anton Miazin Date: Thu, 15 Jul 2021 12:44:10 +0300 Subject: [PATCH 04/11] Homework 1_red color supporting --- src/main/java/Homework_1/Main.java | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/main/java/Homework_1/Main.java b/src/main/java/Homework_1/Main.java index eddc7336..7fc0c85f 100644 --- a/src/main/java/Homework_1/Main.java +++ b/src/main/java/Homework_1/Main.java @@ -2,14 +2,13 @@ public class Main { public static void main(String[] args) { - for (int i = 0; i < args.length; i++) { - if (args[i].equals("error")) { - System.out.println("Alarm!"); + for (String arg : args) { + if (arg.equals("error")) { + System.out.println("\u001B[31m" + "Alarm!" + "\u001B[0m\n"); break; - } - else{ - System.out.println(args[i] + " : " + args[i].length() + " letters"); - } - } + } else { + System.out.println(arg + " : " + arg.length() + " letters"); } } + } + } \ No newline at end of file From 5814647cdcbc1d6ed968f8483b1c24176f501ba8 Mon Sep 17 00:00:00 2001 From: Anton Miazin Date: Thu, 15 Jul 2021 12:59:36 +0300 Subject: [PATCH 05/11] merged --- src/main/java/homework_1/Main.java | 9 --------- 1 file changed, 9 deletions(-) delete mode 100644 src/main/java/homework_1/Main.java diff --git a/src/main/java/homework_1/Main.java b/src/main/java/homework_1/Main.java deleted file mode 100644 index 07c029a2..00000000 --- a/src/main/java/homework_1/Main.java +++ /dev/null @@ -1,9 +0,0 @@ -package homework_1; - -public class Main { - - public static void main(String[] args) { - System.out.println("Hello homework!"); - } - -} From f0a55445e4bf975ed9271388e95b3baaacfee502 Mon Sep 17 00:00:00 2001 From: Anton Miazin Date: Thu, 15 Jul 2021 22:17:52 +0300 Subject: [PATCH 06/11] HW2 first iteration --- src/main/java/Homework_2/PyramidPrinter.java | 32 ++++++++++++ .../java/Homework_2/RandomCharsTable.java | 50 +++++++++++++++++++ src/main/java/Homework_2/TrafficLight.java | 39 +++++++++++++++ 3 files changed, 121 insertions(+) create mode 100644 src/main/java/Homework_2/PyramidPrinter.java create mode 100644 src/main/java/Homework_2/RandomCharsTable.java create mode 100644 src/main/java/Homework_2/TrafficLight.java diff --git a/src/main/java/Homework_2/PyramidPrinter.java b/src/main/java/Homework_2/PyramidPrinter.java new file mode 100644 index 00000000..7753bb8d --- /dev/null +++ b/src/main/java/Homework_2/PyramidPrinter.java @@ -0,0 +1,32 @@ +package Homework_2; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; + +public class PyramidPrinter { + public static void main(String[] args) throws Exception { + bufferedReaderReadConsole(); + } + private static void bufferedReaderReadConsole() throws IOException { + try (BufferedReader reader = new BufferedReader(new InputStreamReader(System.in))) { + int blocks = Integer.parseInt(reader.readLine()); + String [][] Pyramid = new String[blocks][1]; + for (int i = 0; i < blocks; i++){ + char [] Pyramid_int = new char[i + 1]; + for (int j = 0; j <= i; j++){ + Pyramid_int[j] = 'x'; + } + Pyramid[i][0] = Pyramid[i][0].copyValueOf(Pyramid_int); + System.out.println(Pyramid[i][0]); + } + } + catch (NumberFormatException e) { + System.out.println("Введите число!"); + } + //ну мало ли.. + catch (NegativeArraySizeException e) { + System.out.println("Введите положительное число!"); + } + } +} diff --git a/src/main/java/Homework_2/RandomCharsTable.java b/src/main/java/Homework_2/RandomCharsTable.java new file mode 100644 index 00000000..141cdcba --- /dev/null +++ b/src/main/java/Homework_2/RandomCharsTable.java @@ -0,0 +1,50 @@ +package Homework_2; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.Random; + +public class RandomCharsTable { + public static void main(String[] args) throws Exception { + bufferedReaderReadConsole(); + } + private static void bufferedReaderReadConsole() throws IOException { + try (BufferedReader reader = new BufferedReader(new InputStreamReader(System.in))) { + while (true) { + String text = reader.readLine(); + String[] text_parts = text.split(" "); + int length = Integer.parseInt(text_parts[0]); + int width = Integer.parseInt(text_parts[1]); + String strategy = text_parts[2]; + char[][] table = new char[length][width]; + StringBuffer evens = new StringBuffer(); + StringBuffer odds = new StringBuffer(); + for (int i = 0; i < length; i++){ + for(int j = 0; j < width; j++) { + Random ran = new Random(); + int number = 65 + ran.nextInt(26); + table[i][j] = (char) number; + System.out.print("|" + table[i][j]); + if (j == (width - 1)){ + System.out.print('|'); + } + if (number % 2 == 0){ + evens = evens.length() == 0 ? evens.append(table[i][j]) : evens.append(", " + table[i][j]); + } + else { + odds = odds.length() == 0 ? odds.append(table[i][j]) : odds.append(", " + table[i][j]); + } + } + System.out.println(); + } + if (strategy.equalsIgnoreCase("even")){ + System.out.println("Even letters - " + evens.toString()); + } + else { + System.out.println("Odd letters - " + odds.toString()); + } + } + } + } +} diff --git a/src/main/java/Homework_2/TrafficLight.java b/src/main/java/Homework_2/TrafficLight.java new file mode 100644 index 00000000..27a66bb5 --- /dev/null +++ b/src/main/java/Homework_2/TrafficLight.java @@ -0,0 +1,39 @@ +package Homework_2; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.time.LocalTime; + +public class TrafficLight { + public static void main(String[] args) throws Exception { + bufferedReaderReadConsole(); + } + private static void bufferedReaderReadConsole() throws IOException { + try (BufferedReader reader = new BufferedReader(new InputStreamReader(System.in))) { + while (true) { + int time = Integer.parseInt(reader.readLine()); + int timeSec = time % 60; + if (time < 0){ + System.out.println("Не живите вчерашним днём!"); + } + else if (time > 86399){ + System.out.println("В будущее нельзя заглянуть так просто..."); + } + else { + if (timeSec >= 0 && timeSec < 35) { + System.out.println("Цвет светофора - зелёный, " + "местное время: " + LocalTime.ofSecondOfDay(time)); + } else if ((timeSec >= 35 && timeSec < 40) || (timeSec >= 55 && timeSec < 60)) { + System.out.println("Цвет светофора - жёлтый, " + "местное время: " + LocalTime.ofSecondOfDay(time)); + } else if (timeSec >= 40 && timeSec < 54) { + System.out.println("Цвет светофора - красный, " + "местное время: " + LocalTime.ofSecondOfDay(time)); + } + } + } + } + catch (NumberFormatException e) { + System.out.println("Введите число!"); + } + } +} + From ad63b34f72269721b53fbbb958765721ead89f1f Mon Sep 17 00:00:00 2001 From: Anton Miazin Date: Thu, 15 Jul 2021 22:29:15 +0300 Subject: [PATCH 07/11] README update --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index de4f483e..2c5d7828 100644 --- a/README.md +++ b/README.md @@ -4,4 +4,7 @@ | Number | Solution | Short description | --- | --- | --- | -| HW1 | [Console printer]( https://github.com/NikolaevArtem/Java_Core_June_2021/tree/feature/AntonMiazin/src/main/java/Homework_1) | The app that reads input arguments and prints them, until "error" argument | +| HW1 | [Console printer]( https://github.com/NikolaevArtem/Java_Core_June_2021/tree/feature/AntonMiazin/src/main/java/Homework_1 ) | The app that reads input arguments and prints them, until "error" argument | +| HW2 | [Traffic Light]( https://github.com/NikolaevArtem/Java_Core_June_2021/blob/feature/AntonMiazin/src/main/java/Homework_2/TrafficLight.java ) | The looped app that reads console input and return a color of a traffic light | +| HW2 | [Pyramid Printer]( https://github.com/NikolaevArtem/Java_Core_June_2021/blob/feature/AntonMiazin/src/main/java/Homework_2/PyramidPrinter.java ) | The app that build a triangle pyramid with a custom high | +| HW2 | [Random Chars Table]( https://github.com/NikolaevArtem/Java_Core_June_2021/blob/feature/AntonMiazin/src/main/java/Homework_2/RandomCharsTable.java ) | The looped app that create & print a custom array of the capital letters | \ No newline at end of file From e63862fff90b9a0968af1de15ba6a45cfa0b6603 Mon Sep 17 00:00:00 2001 From: Anton Miazin Date: Thu, 15 Jul 2021 22:38:23 +0300 Subject: [PATCH 08/11] HW1 renaming & optional fixes --- .../java/Homework_1/{Main.java => ConsolePrinter.java} | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) rename src/main/java/Homework_1/{Main.java => ConsolePrinter.java} (58%) diff --git a/src/main/java/Homework_1/Main.java b/src/main/java/Homework_1/ConsolePrinter.java similarity index 58% rename from src/main/java/Homework_1/Main.java rename to src/main/java/Homework_1/ConsolePrinter.java index 7fc0c85f..936d5708 100644 --- a/src/main/java/Homework_1/Main.java +++ b/src/main/java/Homework_1/ConsolePrinter.java @@ -1,14 +1,16 @@ package Homework_1; -public class Main { +public class ConsolePrinter { public static void main(String[] args) { + final String ANSI_RED = "\u001B[31m"; + final String ANSI_RESET = "\u001B[0m\n"; for (String arg : args) { if (arg.equals("error")) { - System.out.println("\u001B[31m" + "Alarm!" + "\u001B[0m\n"); + System.out.println(ANSI_RED + "Alarm!" + ANSI_RESET); break; } else { System.out.println(arg + " : " + arg.length() + " letters"); } } - } - } \ No newline at end of file + } +} \ No newline at end of file From 29a06c47420903ebe4f0cca27b9ab84dbee00a6b Mon Sep 17 00:00:00 2001 From: Anton Miazin Date: Mon, 26 Jul 2021 13:53:39 +0300 Subject: [PATCH 09/11] HW2 reworking --- .../java/Homework_2/PyramidPrinter/Main.java | 11 +++ .../PyramidPrinter/PyramidPrinter.java | 56 +++++++++++++ .../java/Homework_2/RandomCharsTable.java | 50 ------------ .../Homework_2/RandomCharsTable/Main.java | 10 +++ .../RandomCharsTable/RandomCharsTable.java | 79 +++++++++++++++++++ src/main/java/Homework_2/TrafficLight.java | 39 --------- .../java/Homework_2/TrafficLight/Main.java | 9 +++ .../Homework_2/TrafficLight/TrafficLight.java | 64 +++++++++++++++ 8 files changed, 229 insertions(+), 89 deletions(-) create mode 100644 src/main/java/Homework_2/PyramidPrinter/Main.java create mode 100644 src/main/java/Homework_2/PyramidPrinter/PyramidPrinter.java delete mode 100644 src/main/java/Homework_2/RandomCharsTable.java create mode 100644 src/main/java/Homework_2/RandomCharsTable/Main.java create mode 100644 src/main/java/Homework_2/RandomCharsTable/RandomCharsTable.java delete mode 100644 src/main/java/Homework_2/TrafficLight.java create mode 100644 src/main/java/Homework_2/TrafficLight/Main.java create mode 100644 src/main/java/Homework_2/TrafficLight/TrafficLight.java diff --git a/src/main/java/Homework_2/PyramidPrinter/Main.java b/src/main/java/Homework_2/PyramidPrinter/Main.java new file mode 100644 index 00000000..5678704d --- /dev/null +++ b/src/main/java/Homework_2/PyramidPrinter/Main.java @@ -0,0 +1,11 @@ +package Homework_2.PyramidPrinter; + + +import java.io.IOException; + +public class Main { + + public static void main(String[] args) throws IOException { + new PyramidPrinter().run(); + } +} diff --git a/src/main/java/Homework_2/PyramidPrinter/PyramidPrinter.java b/src/main/java/Homework_2/PyramidPrinter/PyramidPrinter.java new file mode 100644 index 00000000..bbfbe23c --- /dev/null +++ b/src/main/java/Homework_2/PyramidPrinter/PyramidPrinter.java @@ -0,0 +1,56 @@ +package Homework_2.PyramidPrinter; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; + +public class PyramidPrinter { + + public void run () throws IOException { + InputData inputData = consoleReading(); + String result = processing(inputData); + output(result); + } + + private static class InputData{ + final String console; + + private InputData(String console) { + this.console = console; + } + } + + private static InputData consoleReading() throws IOException{ + System.out.print("Enter the pyramid height as a single number: "); + try (BufferedReader reader = new BufferedReader(new InputStreamReader(System.in))) { + String input = reader.readLine(); + return new InputData(input); + } + } + + private String processing(InputData input) { + try { + int blocks = Integer.parseInt(input.console); + if (blocks < 0) { + throw new NumberFormatException(); + } + return pyramid(blocks); + } catch (NumberFormatException e) { + return "Only 1 non-negative integer is allowed as passed parameter"; + } + } + + private String pyramid (int blocks) { + StringBuilder build = new StringBuilder(); + for (int i = 0; i < blocks; i++) { + for (int j = 0; j <= i; j++) { + build.append('x'); + } + build.append('\n'); + } + return build.toString(); + } + private static void output (String result){ + System.out.print(result); + } +} diff --git a/src/main/java/Homework_2/RandomCharsTable.java b/src/main/java/Homework_2/RandomCharsTable.java deleted file mode 100644 index 141cdcba..00000000 --- a/src/main/java/Homework_2/RandomCharsTable.java +++ /dev/null @@ -1,50 +0,0 @@ -package Homework_2; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.Random; - -public class RandomCharsTable { - public static void main(String[] args) throws Exception { - bufferedReaderReadConsole(); - } - private static void bufferedReaderReadConsole() throws IOException { - try (BufferedReader reader = new BufferedReader(new InputStreamReader(System.in))) { - while (true) { - String text = reader.readLine(); - String[] text_parts = text.split(" "); - int length = Integer.parseInt(text_parts[0]); - int width = Integer.parseInt(text_parts[1]); - String strategy = text_parts[2]; - char[][] table = new char[length][width]; - StringBuffer evens = new StringBuffer(); - StringBuffer odds = new StringBuffer(); - for (int i = 0; i < length; i++){ - for(int j = 0; j < width; j++) { - Random ran = new Random(); - int number = 65 + ran.nextInt(26); - table[i][j] = (char) number; - System.out.print("|" + table[i][j]); - if (j == (width - 1)){ - System.out.print('|'); - } - if (number % 2 == 0){ - evens = evens.length() == 0 ? evens.append(table[i][j]) : evens.append(", " + table[i][j]); - } - else { - odds = odds.length() == 0 ? odds.append(table[i][j]) : odds.append(", " + table[i][j]); - } - } - System.out.println(); - } - if (strategy.equalsIgnoreCase("even")){ - System.out.println("Even letters - " + evens.toString()); - } - else { - System.out.println("Odd letters - " + odds.toString()); - } - } - } - } -} diff --git a/src/main/java/Homework_2/RandomCharsTable/Main.java b/src/main/java/Homework_2/RandomCharsTable/Main.java new file mode 100644 index 00000000..57dcc7f3 --- /dev/null +++ b/src/main/java/Homework_2/RandomCharsTable/Main.java @@ -0,0 +1,10 @@ +package Homework_2.RandomCharsTable; + +import java.io.IOException; + +public class Main { + + public static void main(String[] args) throws IOException { + new RandomCharsTable().run(); + } +} diff --git a/src/main/java/Homework_2/RandomCharsTable/RandomCharsTable.java b/src/main/java/Homework_2/RandomCharsTable/RandomCharsTable.java new file mode 100644 index 00000000..7d5df214 --- /dev/null +++ b/src/main/java/Homework_2/RandomCharsTable/RandomCharsTable.java @@ -0,0 +1,79 @@ +package Homework_2.RandomCharsTable; + + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.Random; + +public class RandomCharsTable { + + public void run () throws IOException { + InputData inputData = consoleReading(); + String result = processing(inputData); + output(result); + } + private static class InputData{ + final String console; + + private InputData(String console) { + this.console = console; + } + } + + private static InputData consoleReading() throws IOException { + System.out.print("Enter the sizes of a table and a strategy: "); + try (BufferedReader reader = new BufferedReader(new InputStreamReader(System.in))) { + String input = reader.readLine(); + return new InputData(input); + } + } + + private String processing(InputData input) { + try { + String[] input_parts = input.console.split(" "); + int length = Integer.parseInt(input_parts[0]); + int width = Integer.parseInt(input_parts[1]); + String strategy = input_parts[2]; + if (length < 0 || width < 0) { + throw new NumberFormatException(); + } + if (!strategy.equalsIgnoreCase("even") && !strategy.equalsIgnoreCase("odd")) { + throw new NumberFormatException(); + } + return elementsOf(length, width, strategy); + } + catch (NumberFormatException e) { + return "Passed parameters should match the format [positive integer] [positive integer] [even|odd]"; + } + } + + private String elementsOf(int length, int width, String strategy) { + StringBuilder table = new StringBuilder(); + StringBuilder evens = new StringBuilder(); + StringBuilder odds = new StringBuilder(); + for (int i = 0; i < length; i++){ + table.append('|'); + for(int j = 0; j < width; j++) { + Random ran = new Random(); + int number = 65 + ran.nextInt(26); + table.append((char) number) + .append('|'); + if (number % 2 == 0){ + evens = evens.length() == 0 ? evens.append((char) number) : evens.append(", " + (char) number); + } + else { + odds = odds.length() == 0 ? odds.append((char) number) : odds.append(", " + (char) number); + } + } + table.append("\n"); + } + table = strategy.equalsIgnoreCase("even") ? table.append(evens) : table.append(odds); + return table.toString(); + } + + private static void output (String result){ + System.out.print(result); + } +} + diff --git a/src/main/java/Homework_2/TrafficLight.java b/src/main/java/Homework_2/TrafficLight.java deleted file mode 100644 index 27a66bb5..00000000 --- a/src/main/java/Homework_2/TrafficLight.java +++ /dev/null @@ -1,39 +0,0 @@ -package Homework_2; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.time.LocalTime; - -public class TrafficLight { - public static void main(String[] args) throws Exception { - bufferedReaderReadConsole(); - } - private static void bufferedReaderReadConsole() throws IOException { - try (BufferedReader reader = new BufferedReader(new InputStreamReader(System.in))) { - while (true) { - int time = Integer.parseInt(reader.readLine()); - int timeSec = time % 60; - if (time < 0){ - System.out.println("Не живите вчерашним днём!"); - } - else if (time > 86399){ - System.out.println("В будущее нельзя заглянуть так просто..."); - } - else { - if (timeSec >= 0 && timeSec < 35) { - System.out.println("Цвет светофора - зелёный, " + "местное время: " + LocalTime.ofSecondOfDay(time)); - } else if ((timeSec >= 35 && timeSec < 40) || (timeSec >= 55 && timeSec < 60)) { - System.out.println("Цвет светофора - жёлтый, " + "местное время: " + LocalTime.ofSecondOfDay(time)); - } else if (timeSec >= 40 && timeSec < 54) { - System.out.println("Цвет светофора - красный, " + "местное время: " + LocalTime.ofSecondOfDay(time)); - } - } - } - } - catch (NumberFormatException e) { - System.out.println("Введите число!"); - } - } -} - diff --git a/src/main/java/Homework_2/TrafficLight/Main.java b/src/main/java/Homework_2/TrafficLight/Main.java new file mode 100644 index 00000000..eaefade6 --- /dev/null +++ b/src/main/java/Homework_2/TrafficLight/Main.java @@ -0,0 +1,9 @@ +package Homework_2.TrafficLight; + +import java.io.IOException; + +public class Main { + public static void main(String[] args) throws IOException { + new TrafficLight().run(); + } +} diff --git a/src/main/java/Homework_2/TrafficLight/TrafficLight.java b/src/main/java/Homework_2/TrafficLight/TrafficLight.java new file mode 100644 index 00000000..9c230d44 --- /dev/null +++ b/src/main/java/Homework_2/TrafficLight/TrafficLight.java @@ -0,0 +1,64 @@ +package Homework_2.TrafficLight; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; + +public class TrafficLight { + + public void run () throws IOException { + InputData inputData = consoleReading(); + String result = processing(inputData); + output(result); + } + + private static class InputData{ + final String console; + + private InputData(String console) { + this.console = console; + } + } + + private static InputData consoleReading() throws IOException { + System.out.print("Please enter the amount of seconds as integer within 0 - 86399 range: "); + try (BufferedReader reader = new BufferedReader(new InputStreamReader(System.in))) { + String input = reader.readLine(); + return new InputData(input); + } + } + + private String processing(InputData input) { + try { + int time = Integer.parseInt(input.console); + if (time < 0){ + throw new NumberFormatException(); + } + else if (time > 86399){ + throw new NumberFormatException(); + } + return color(time); + } + catch (NumberFormatException e) { + return "Only 1 non-negative integer is allowed as passed parameter"; + } + } + + private String color(int time) { + StringBuilder light = new StringBuilder(); + int timeSec = time % 60; + if (timeSec >= 0 && timeSec < 35) { + light.append("GREEN"); + } else if ((timeSec >= 35 && timeSec < 40) || (timeSec >= 55 && timeSec < 60)) { + light.append("YELLOW"); + } else if (timeSec >= 40 && timeSec < 54) { + light.append("RED"); + } + return light.toString(); + } + + private static void output (String result){ + System.out.print(result); + } +} + From f1f7a2b550360035801d4d302d0c71e8746b1709 Mon Sep 17 00:00:00 2001 From: Anton Miazin Date: Mon, 26 Jul 2021 13:54:10 +0300 Subject: [PATCH 10/11] HW2 reworking --- src/main/java/Homework_2/PyramidPrinter.java | 32 -------------------- 1 file changed, 32 deletions(-) delete mode 100644 src/main/java/Homework_2/PyramidPrinter.java diff --git a/src/main/java/Homework_2/PyramidPrinter.java b/src/main/java/Homework_2/PyramidPrinter.java deleted file mode 100644 index 7753bb8d..00000000 --- a/src/main/java/Homework_2/PyramidPrinter.java +++ /dev/null @@ -1,32 +0,0 @@ -package Homework_2; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; - -public class PyramidPrinter { - public static void main(String[] args) throws Exception { - bufferedReaderReadConsole(); - } - private static void bufferedReaderReadConsole() throws IOException { - try (BufferedReader reader = new BufferedReader(new InputStreamReader(System.in))) { - int blocks = Integer.parseInt(reader.readLine()); - String [][] Pyramid = new String[blocks][1]; - for (int i = 0; i < blocks; i++){ - char [] Pyramid_int = new char[i + 1]; - for (int j = 0; j <= i; j++){ - Pyramid_int[j] = 'x'; - } - Pyramid[i][0] = Pyramid[i][0].copyValueOf(Pyramid_int); - System.out.println(Pyramid[i][0]); - } - } - catch (NumberFormatException e) { - System.out.println("Введите число!"); - } - //ну мало ли.. - catch (NegativeArraySizeException e) { - System.out.println("Введите положительное число!"); - } - } -} From 228f3680d03cd0e3734dd3a6d4691150fdcb19dc Mon Sep 17 00:00:00 2001 From: Anton Miazin Date: Wed, 28 Jul 2021 17:57:56 +0300 Subject: [PATCH 11/11] HW3 tests except RandomCharTable --- .../java/Homework_2/PyramidPrinter/Main.java | 5 +- .../PyramidPrinter/PyramidPrinter.java | 42 +++--- .../Homework_2/RandomCharsTable/Main.java | 4 +- .../RandomCharsTable/RandomCharsTable.java | 30 ++--- .../java/Homework_2/TrafficLight/Main.java | 3 +- .../Homework_2/TrafficLight/TrafficLight.java | 24 ++-- .../PyramidPrinterTest.java | 85 ++++++++++++ .../RandomCharsTest/RandomCharsTest.java | 29 +++++ .../TrafficLightTest/TrafficLightTest.java | 121 ++++++++++++++++++ 9 files changed, 284 insertions(+), 59 deletions(-) create mode 100644 src/test/java/Homework_2/PyramidPrinterTest/PyramidPrinterTest.java create mode 100644 src/test/java/Homework_2/RandomCharsTest/RandomCharsTest.java create mode 100644 src/test/java/Homework_2/TrafficLightTest/TrafficLightTest.java diff --git a/src/main/java/Homework_2/PyramidPrinter/Main.java b/src/main/java/Homework_2/PyramidPrinter/Main.java index 5678704d..c04150e4 100644 --- a/src/main/java/Homework_2/PyramidPrinter/Main.java +++ b/src/main/java/Homework_2/PyramidPrinter/Main.java @@ -1,11 +1,8 @@ package Homework_2.PyramidPrinter; - -import java.io.IOException; - public class Main { - public static void main(String[] args) throws IOException { + public static void main(String[] args) { new PyramidPrinter().run(); } } diff --git a/src/main/java/Homework_2/PyramidPrinter/PyramidPrinter.java b/src/main/java/Homework_2/PyramidPrinter/PyramidPrinter.java index bbfbe23c..cd637f29 100644 --- a/src/main/java/Homework_2/PyramidPrinter/PyramidPrinter.java +++ b/src/main/java/Homework_2/PyramidPrinter/PyramidPrinter.java @@ -6,31 +6,27 @@ public class PyramidPrinter { - public void run () throws IOException { - InputData inputData = consoleReading(); + public void run () { + String inputData = consoleReading(); String result = processing(inputData); output(result); } - private static class InputData{ - final String console; - private InputData(String console) { - this.console = console; - } - } - - private static InputData consoleReading() throws IOException{ - System.out.print("Enter the pyramid height as a single number: "); + private String consoleReading() { + System.out.print("Enter the pyramid height as a single integer: "); try (BufferedReader reader = new BufferedReader(new InputStreamReader(System.in))) { String input = reader.readLine(); - return new InputData(input); + return input; + } + catch (IOException e) { + return "This should never happen..."; } } - private String processing(InputData input) { + private String processing(String input) { try { - int blocks = Integer.parseInt(input.console); + int blocks = Integer.parseInt(input); if (blocks < 0) { throw new NumberFormatException(); } @@ -42,15 +38,21 @@ private String processing(InputData input) { private String pyramid (int blocks) { StringBuilder build = new StringBuilder(); - for (int i = 0; i < blocks; i++) { - for (int j = 0; j <= i; j++) { - build.append('x'); + try{ + for (int i = 0; i < blocks; i++) { + for (int j = 0; j <= i; j++) { + build.append('x'); + } + build.append('\n'); } - build.append('\n'); + return build.toString(); + } + catch (OutOfMemoryError e) { + return "Heap space is out of memory, please input a smaller integer"; } - return build.toString(); } - private static void output (String result){ + + private void output (String result){ System.out.print(result); } } diff --git a/src/main/java/Homework_2/RandomCharsTable/Main.java b/src/main/java/Homework_2/RandomCharsTable/Main.java index 57dcc7f3..c95d0bd6 100644 --- a/src/main/java/Homework_2/RandomCharsTable/Main.java +++ b/src/main/java/Homework_2/RandomCharsTable/Main.java @@ -1,10 +1,8 @@ package Homework_2.RandomCharsTable; -import java.io.IOException; - public class Main { - public static void main(String[] args) throws IOException { + public static void main(String[] args) { new RandomCharsTable().run(); } } diff --git a/src/main/java/Homework_2/RandomCharsTable/RandomCharsTable.java b/src/main/java/Homework_2/RandomCharsTable/RandomCharsTable.java index 7d5df214..fad3ef98 100644 --- a/src/main/java/Homework_2/RandomCharsTable/RandomCharsTable.java +++ b/src/main/java/Homework_2/RandomCharsTable/RandomCharsTable.java @@ -8,30 +8,26 @@ public class RandomCharsTable { - public void run () throws IOException { - InputData inputData = consoleReading(); + public void run () { + String inputData = consoleReading(); String result = processing(inputData); output(result); } - private static class InputData{ - final String console; - private InputData(String console) { - this.console = console; - } - } - - private static InputData consoleReading() throws IOException { + private static String consoleReading() { System.out.print("Enter the sizes of a table and a strategy: "); try (BufferedReader reader = new BufferedReader(new InputStreamReader(System.in))) { String input = reader.readLine(); - return new InputData(input); + return input; + } + catch (IOException e) { + return "This should never happen..."; } } - private String processing(InputData input) { + private String processing(String input) { try { - String[] input_parts = input.console.split(" "); + String[] input_parts = input.split(" "); int length = Integer.parseInt(input_parts[0]); int width = Integer.parseInt(input_parts[1]); String strategy = input_parts[2]; @@ -52,6 +48,8 @@ private String elementsOf(int length, int width, String strategy) { StringBuilder table = new StringBuilder(); StringBuilder evens = new StringBuilder(); StringBuilder odds = new StringBuilder(); + evens.append("Even letters - "); + odds.append("Odd letters - "); for (int i = 0; i < length; i++){ table.append('|'); for(int j = 0; j < width; j++) { @@ -60,10 +58,10 @@ private String elementsOf(int length, int width, String strategy) { table.append((char) number) .append('|'); if (number % 2 == 0){ - evens = evens.length() == 0 ? evens.append((char) number) : evens.append(", " + (char) number); + evens = evens.length() == 15 ? evens.append((char) number) : evens.append(", " + (char) number); } else { - odds = odds.length() == 0 ? odds.append((char) number) : odds.append(", " + (char) number); + odds = odds.length() == 14 ? odds.append((char) number) : odds.append(", " + (char) number); } } table.append("\n"); @@ -72,7 +70,7 @@ private String elementsOf(int length, int width, String strategy) { return table.toString(); } - private static void output (String result){ + private void output (String result){ System.out.print(result); } } diff --git a/src/main/java/Homework_2/TrafficLight/Main.java b/src/main/java/Homework_2/TrafficLight/Main.java index eaefade6..3a5d00e6 100644 --- a/src/main/java/Homework_2/TrafficLight/Main.java +++ b/src/main/java/Homework_2/TrafficLight/Main.java @@ -1,9 +1,8 @@ package Homework_2.TrafficLight; -import java.io.IOException; public class Main { - public static void main(String[] args) throws IOException { + public static void main(String[] args) { new TrafficLight().run(); } } diff --git a/src/main/java/Homework_2/TrafficLight/TrafficLight.java b/src/main/java/Homework_2/TrafficLight/TrafficLight.java index 9c230d44..a658549a 100644 --- a/src/main/java/Homework_2/TrafficLight/TrafficLight.java +++ b/src/main/java/Homework_2/TrafficLight/TrafficLight.java @@ -6,31 +6,27 @@ public class TrafficLight { - public void run () throws IOException { - InputData inputData = consoleReading(); + public void run () { + String inputData = consoleReading(); String result = processing(inputData); output(result); } - private static class InputData{ - final String console; - private InputData(String console) { - this.console = console; - } - } - - private static InputData consoleReading() throws IOException { + private static String consoleReading() { System.out.print("Please enter the amount of seconds as integer within 0 - 86399 range: "); try (BufferedReader reader = new BufferedReader(new InputStreamReader(System.in))) { String input = reader.readLine(); - return new InputData(input); + return input; + } + catch (IOException e) { + return "This should never happen..."; } } - private String processing(InputData input) { + private String processing(String input) { try { - int time = Integer.parseInt(input.console); + int time = Integer.parseInt(input); if (time < 0){ throw new NumberFormatException(); } @@ -57,7 +53,7 @@ private String color(int time) { return light.toString(); } - private static void output (String result){ + private void output (String result){ System.out.print(result); } } diff --git a/src/test/java/Homework_2/PyramidPrinterTest/PyramidPrinterTest.java b/src/test/java/Homework_2/PyramidPrinterTest/PyramidPrinterTest.java new file mode 100644 index 00000000..ffd35b70 --- /dev/null +++ b/src/test/java/Homework_2/PyramidPrinterTest/PyramidPrinterTest.java @@ -0,0 +1,85 @@ +package Homework_2.PyramidPrinterTest; + +import Homework_2.PyramidPrinter.PyramidPrinter; +import base.UnitBase; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +class PyramidPrinterTest extends UnitBase { + + @Test + void CaseSymbol_error() { + setInput("Hello!"); + + new PyramidPrinter().run(); + + removeFromOutput("Enter the pyramid height as a single integer: "); + assertEquals("Only 1 non-negative integer is allowed as passed parameter", getOutput()); + + } + + @Test + void CaseDouble_error() { + setInput("0.1"); + + new PyramidPrinter().run(); + + removeFromOutput("Enter the pyramid height as a single integer: "); + assertEquals("Only 1 non-negative integer is allowed as passed parameter", getOutput()); + } + + @Test + void CaseStandard_pass() { + setInput("4"); + + new PyramidPrinter().run(); + + printOut(); + removeFromOutput("Enter the pyramid height as a single integer: "); + assertEquals("x", getOutputLines()[0]); + assertEquals("xx", getOutputLines()[1]); + assertEquals("xxx", getOutputLines()[2]); + assertEquals("xxxx", getOutputLines()[3]); + } + + @Test + void CaseZero_pass() { + setInput("0"); + + new PyramidPrinter().run(); + + removeFromOutput("Enter the pyramid height as a single integer: "); + assertEquals("", getOutput()); + } + + @Test + void CaseNegative_error() { + setInput("-5"); + + new PyramidPrinter().run(); + + removeFromOutput("Enter the pyramid height as a single integer: "); + assertEquals("Only 1 non-negative integer is allowed as passed parameter", getOutput()); + } + + @Test + void CaseLong_error() { + setInput("2147483648"); + + new PyramidPrinter().run(); + + removeFromOutput("Enter the pyramid height as a single integer: "); + assertEquals("Only 1 non-negative integer is allowed as passed parameter", getOutput()); + } + + @Test + void CaseOutOfMemory_error() { + setInput("100500"); + + new PyramidPrinter().run(); + + removeFromOutput("Enter the pyramid height as a single integer: "); + assertEquals("Heap space is out of memory, please input a smaller integer", getOutput()); + } +} diff --git a/src/test/java/Homework_2/RandomCharsTest/RandomCharsTest.java b/src/test/java/Homework_2/RandomCharsTest/RandomCharsTest.java new file mode 100644 index 00000000..ca0450e8 --- /dev/null +++ b/src/test/java/Homework_2/RandomCharsTest/RandomCharsTest.java @@ -0,0 +1,29 @@ +package Homework_2.RandomCharsTest; + +import Homework_2.RandomCharsTable.RandomCharsTable; +import base.UnitBase; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class RandomCharsTest extends UnitBase { + + @Test + void CaseStandard1_pass() { + setInput("2 2 even"); + + new RandomCharsTable().run(); + + printOut(); + removeFromOutput("Enter the sizes of a table and a strategy: "); + assertEquals("x", getOutputLines()[0]); + assertEquals("xx", getOutputLines()[1]); + assertEquals("Even Letters -", getOutputLines()[2]); + + } + +// |L|O| +// |Y|Z| + + +} diff --git a/src/test/java/Homework_2/TrafficLightTest/TrafficLightTest.java b/src/test/java/Homework_2/TrafficLightTest/TrafficLightTest.java new file mode 100644 index 00000000..4cd8b026 --- /dev/null +++ b/src/test/java/Homework_2/TrafficLightTest/TrafficLightTest.java @@ -0,0 +1,121 @@ +package Homework_2.TrafficLightTest; + +import Homework_2.TrafficLight.TrafficLight; +import base.UnitBase; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class TrafficLightTest extends UnitBase { + + @Test + void Case30_Green() { + setInput("30"); + + new TrafficLight().run(); + + printOut(); + removeFromOutput("Please enter the amount of seconds as integer within 0 - 86399 range: "); + assertEquals("GREEN", getOutput()); + } + + @Test + void Case36_Yellow() { + setInput("36"); + + new TrafficLight().run(); + + printOut(); + removeFromOutput("Please enter the amount of seconds as integer within 0 - 86399 range: "); + assertEquals("YELLOW", getOutput()); + } + + @Test + void Case55_Yellow() { + setInput("55"); + + new TrafficLight().run(); + + printOut(); + removeFromOutput("Please enter the amount of seconds as integer within 0 - 86399 range: "); + assertEquals("YELLOW", getOutput()); + } + + @Test + void Case48_Red() { + setInput("48"); + + new TrafficLight().run(); + + printOut(); + removeFromOutput("Please enter the amount of seconds as integer within 0 - 86399 range: "); + assertEquals("RED", getOutput()); + } + + @Test + void CaseNegative_Error() { + setInput("-2"); + + new TrafficLight().run(); + + printOut(); + removeFromOutput("Please enter the amount of seconds as integer within 0 - 86399 range: "); + assertEquals("Only 1 non-negative integer is allowed as passed parameter", getOutput()); + } + + @Test + void CaseOutOfRange_Error() { + setInput("86400"); + + new TrafficLight().run(); + + printOut(); + removeFromOutput("Please enter the amount of seconds as integer within 0 - 86399 range: "); + assertEquals("Only 1 non-negative integer is allowed as passed parameter", getOutput()); + } + + @Test + void CaseLong_Error() { + setInput("2147483648"); + + new TrafficLight().run(); + + printOut(); + removeFromOutput("Please enter the amount of seconds as integer within 0 - 86399 range: "); + assertEquals("Only 1 non-negative integer is allowed as passed parameter", getOutput()); + } + + @Test + void CaseSymbol_Error() { + setInput("test"); + + new TrafficLight().run(); + + printOut(); + removeFromOutput("Please enter the amount of seconds as integer within 0 - 86399 range: "); + assertEquals("Only 1 non-negative integer is allowed as passed parameter", getOutput()); + } + + @Test + void CaseTwoInt_Error() { + setInput("5 65"); + + new TrafficLight().run(); + + printOut(); + removeFromOutput("Please enter the amount of seconds as integer within 0 - 86399 range: "); + assertEquals("Only 1 non-negative integer is allowed as passed parameter", getOutput()); + } + + @Test + void CaseDouble_Error() { + setInput("5.65"); + + new TrafficLight().run(); + + printOut(); + removeFromOutput("Please enter the amount of seconds as integer within 0 - 86399 range: "); + assertEquals("Only 1 non-negative integer is allowed as passed parameter", getOutput()); + } + +}