From c98d0d07986218cac2477186d45141a58273e5a4 Mon Sep 17 00:00:00 2001 From: Yana Pechenenko Date: Tue, 19 May 2026 16:48:18 +0200 Subject: [PATCH 1/3] finish task-1 --- task-1/com/pizzacompany/Main.java | 12 ++++++++++-- task-1/com/pizzacompany/Order.java | 27 ++++++++++++++++++++++++++ task-1/com/pizzacompany/Pizza.java | 29 ++++++++++++++++++++++++++++ task-1/com/pizzacompany/Size.java | 17 ++++++++++++++++ task-1/com/pizzacompany/Topping.java | 19 ++++++++++++++++++ 5 files changed, 102 insertions(+), 2 deletions(-) create mode 100644 task-1/com/pizzacompany/Order.java create mode 100644 task-1/com/pizzacompany/Pizza.java create mode 100644 task-1/com/pizzacompany/Size.java create mode 100644 task-1/com/pizzacompany/Topping.java diff --git a/task-1/com/pizzacompany/Main.java b/task-1/com/pizzacompany/Main.java index 5c380fa..38b6f46 100644 --- a/task-1/com/pizzacompany/Main.java +++ b/task-1/com/pizzacompany/Main.java @@ -1,7 +1,15 @@ -package com.pizzacompany; +package pizzacompany; + +import java.util.List; public class Main { public static void main(String[] args) { - System.out.println("Hello Pizza!"); + Order order1 = new Order(); + + order1.addPizza(new Pizza(Size.SMALL, List.of(Topping.PEPPERONI, Topping.OLIVES))); + order1.addPizza(new Pizza(Size.MEDIUM, List.of(Topping.MUSHROOMS, Topping.CHEESE, Topping.PINEAPPLE))); + order1.addPizza(new Pizza(Size.LARGE, List.of(Topping.MUSHROOMS, Topping.CHEESE, Topping.PEPPERONI, Topping.OLIVES, Topping.PINEAPPLE))); + + order1.printReceipt(); } } \ No newline at end of file diff --git a/task-1/com/pizzacompany/Order.java b/task-1/com/pizzacompany/Order.java new file mode 100644 index 0000000..3526069 --- /dev/null +++ b/task-1/com/pizzacompany/Order.java @@ -0,0 +1,27 @@ +package pizzacompany; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Stream; + +public class Order { + List pizzas = new ArrayList<>(); + + Order(){}; + + public void addPizza(Pizza pizza){ + pizzas.add(pizza); + } + + public double getTotalPrice(){ + return pizzas.stream().filter(pizza -> pizza != null).mapToDouble(Pizza::getTotalPrice).sum(); + } + + public void printReceipt(){ + System.out.println("=== Receipt ==="); + pizzas.stream().filter(pizza -> pizza != null).forEach(pizza -> System.out.println(pizza.toString())); + System.out.println("---------------"); + System.out.println("Total: " +getTotalPrice()); + } + +} diff --git a/task-1/com/pizzacompany/Pizza.java b/task-1/com/pizzacompany/Pizza.java new file mode 100644 index 0000000..e226a81 --- /dev/null +++ b/task-1/com/pizzacompany/Pizza.java @@ -0,0 +1,29 @@ +package pizzacompany; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.stream.Stream; + +public class Pizza { + Size size; + List toppings = new ArrayList<>(); + + Pizza(Size size, List toppings){ + this.size = size; + this.toppings = toppings; + } + + public double getTotalPrice(){ + double toppingsPrice = toppings.stream().filter(topping -> topping != null).mapToDouble(Topping::getPrice).sum(); + + + return size.getBasePrice() + toppingsPrice; + } + + @Override + public String toString(){ + return size + " pizza with " + toppings + "- €" + String.format("%.2f", getTotalPrice()); + } + +} diff --git a/task-1/com/pizzacompany/Size.java b/task-1/com/pizzacompany/Size.java new file mode 100644 index 0000000..c1064ee --- /dev/null +++ b/task-1/com/pizzacompany/Size.java @@ -0,0 +1,17 @@ +package pizzacompany; + +public enum Size { + SMALL(6.00), + MEDIUM(9.00), + LARGE(12.00); + + private final double price; + + Size(double price){ + this.price = price; + } + + public double getBasePrice(){ + return price; + } +} diff --git a/task-1/com/pizzacompany/Topping.java b/task-1/com/pizzacompany/Topping.java new file mode 100644 index 0000000..fa59d24 --- /dev/null +++ b/task-1/com/pizzacompany/Topping.java @@ -0,0 +1,19 @@ +package pizzacompany; + +public enum Topping { + CHEESE(1.00), + MUSHROOMS(1.50), + PEPPERONI(2.00), + OLIVES(1.00), + PINEAPPLE(1.50); + + private final double price; + + Topping(double price){ + this.price = price; + } + + public double getPrice(){ + return price; + } +} From 017a52c12b9494bf7669037b5573b5819045b8f0 Mon Sep 17 00:00:00 2001 From: Yana Pechenenko Date: Tue, 19 May 2026 21:32:00 +0200 Subject: [PATCH 2/3] add cache class and create two different caches in Main --- task-1/com/pizzacompany/Order.java | 6 +++--- task-1/com/pizzacompany/Pizza.java | 2 +- task-2/src/main/java/org/my/cache/Cache.java | 19 +++++++++++++------ task-2/src/main/java/org/my/cache/Main.java | 20 +++++++++++++++++++- 4 files changed, 36 insertions(+), 11 deletions(-) diff --git a/task-1/com/pizzacompany/Order.java b/task-1/com/pizzacompany/Order.java index 3526069..77359f0 100644 --- a/task-1/com/pizzacompany/Order.java +++ b/task-1/com/pizzacompany/Order.java @@ -2,7 +2,7 @@ import java.util.ArrayList; import java.util.List; -import java.util.stream.Stream; +import java.util.Objects; public class Order { List pizzas = new ArrayList<>(); @@ -14,12 +14,12 @@ public void addPizza(Pizza pizza){ } public double getTotalPrice(){ - return pizzas.stream().filter(pizza -> pizza != null).mapToDouble(Pizza::getTotalPrice).sum(); + return pizzas.stream().filter(Objects::nonNull).mapToDouble(Pizza::getTotalPrice).sum(); } public void printReceipt(){ System.out.println("=== Receipt ==="); - pizzas.stream().filter(pizza -> pizza != null).forEach(pizza -> System.out.println(pizza.toString())); + pizzas.stream().filter(Objects::nonNull).forEach(pizza -> System.out.println(pizza.toString())); System.out.println("---------------"); System.out.println("Total: " +getTotalPrice()); } diff --git a/task-1/com/pizzacompany/Pizza.java b/task-1/com/pizzacompany/Pizza.java index e226a81..54d4ead 100644 --- a/task-1/com/pizzacompany/Pizza.java +++ b/task-1/com/pizzacompany/Pizza.java @@ -15,7 +15,7 @@ public class Pizza { } public double getTotalPrice(){ - double toppingsPrice = toppings.stream().filter(topping -> topping != null).mapToDouble(Topping::getPrice).sum(); + double toppingsPrice = toppings.stream().filter(Objects::nonNull).mapToDouble(Topping::getPrice).sum(); return size.getBasePrice() + toppingsPrice; diff --git a/task-2/src/main/java/org/my/cache/Cache.java b/task-2/src/main/java/org/my/cache/Cache.java index 3804372..049f07c 100644 --- a/task-2/src/main/java/org/my/cache/Cache.java +++ b/task-2/src/main/java/org/my/cache/Cache.java @@ -1,24 +1,31 @@ package org.my.cache; -class Cache { +import java.util.HashMap; +import java.util.Map; + +public class Cache { + private final Map casheInfo = new HashMap<>(); + public void put(String key, T value) { - throw new UnsupportedOperationException("Not implemented yet"); + casheInfo.put(key, value); } public T get(String key) { - throw new UnsupportedOperationException("Not implemented yet"); + return casheInfo.get(key); + } public T remove(String key) { - throw new UnsupportedOperationException("Not implemented yet"); + return casheInfo.remove(key); } public int size() { - throw new UnsupportedOperationException("Not implemented yet"); + return casheInfo.size(); } public void clear() { - throw new UnsupportedOperationException("Not implemented yet"); + casheInfo.clear(); } } + diff --git a/task-2/src/main/java/org/my/cache/Main.java b/task-2/src/main/java/org/my/cache/Main.java index 38c023b..7288394 100644 --- a/task-2/src/main/java/org/my/cache/Main.java +++ b/task-2/src/main/java/org/my/cache/Main.java @@ -2,6 +2,24 @@ public class Main { public static void main(String[] args) { - System.out.println("Hello Cache!"); +Cache cacheUsers = new Cache<>(); +cacheUsers.put("user1", "Anna"); +cacheUsers.put("user2", "Alex"); +System.out.println("User 1 is " + cacheUsers.get("user1")); +System.out.println("User 2 is " + cacheUsers.get("user2")); +System.out.println("Cache user size is " + cacheUsers.size()); +System.out.println(cacheUsers.remove("user1") + " is removed"); +cacheUsers.clear(); +System.out.println("Cache user size is " + cacheUsers.size()); + +Cache cacheWeight = new Cache<>(); +cacheWeight.put("Anna", 53.7); +cacheWeight.put("Alex", 68.5); +System.out.println("Alex weight is " + cacheWeight.get("Alex")); +System.out.println("Anna weight is " + cacheWeight.get("Anna")); +System.out.println("Cache weight size is " + cacheWeight.size()); +System.out.println("Anna's weight " + cacheWeight.remove("Anna") + " is removed"); +cacheWeight.clear(); +System.out.println("Cache weight size is " + cacheWeight.size()); } } \ No newline at end of file From c840c04c2e39048f16474b44d1df55cb8c6a8b63 Mon Sep 17 00:00:00 2001 From: Yana Pechenenko Date: Tue, 19 May 2026 23:00:58 +0200 Subject: [PATCH 3/3] finish task 2 --- task-2/src/main/java/org/my/cache/Cache.java | 12 +-- task-2/src/main/java/org/my/cache/Main.java | 1 + .../test/java/org/my/cache/CacheTests.java | 80 ++++++++++++++++++- 3 files changed, 85 insertions(+), 8 deletions(-) diff --git a/task-2/src/main/java/org/my/cache/Cache.java b/task-2/src/main/java/org/my/cache/Cache.java index 049f07c..7578bc4 100644 --- a/task-2/src/main/java/org/my/cache/Cache.java +++ b/task-2/src/main/java/org/my/cache/Cache.java @@ -4,27 +4,27 @@ import java.util.Map; public class Cache { - private final Map casheInfo = new HashMap<>(); + private final Map cacheInfo = new HashMap<>(); public void put(String key, T value) { - casheInfo.put(key, value); + cacheInfo.put(key, value); } public T get(String key) { - return casheInfo.get(key); + return cacheInfo.get(key); } public T remove(String key) { - return casheInfo.remove(key); + return cacheInfo.remove(key); } public int size() { - return casheInfo.size(); + return cacheInfo.size(); } public void clear() { - casheInfo.clear(); + cacheInfo.clear(); } } diff --git a/task-2/src/main/java/org/my/cache/Main.java b/task-2/src/main/java/org/my/cache/Main.java index 7288394..c344abc 100644 --- a/task-2/src/main/java/org/my/cache/Main.java +++ b/task-2/src/main/java/org/my/cache/Main.java @@ -12,6 +12,7 @@ public static void main(String[] args) { cacheUsers.clear(); System.out.println("Cache user size is " + cacheUsers.size()); + Cache cacheWeight = new Cache<>(); cacheWeight.put("Anna", 53.7); cacheWeight.put("Alex", 68.5); diff --git a/task-2/src/test/java/org/my/cache/CacheTests.java b/task-2/src/test/java/org/my/cache/CacheTests.java index 3afbee4..240b951 100644 --- a/task-2/src/test/java/org/my/cache/CacheTests.java +++ b/task-2/src/test/java/org/my/cache/CacheTests.java @@ -6,7 +6,83 @@ class CacheTests { @Test - void simpleTest() { - assertEquals(2, 1 + 1); + void addPairKeyAndStringValueInCache() { + //Arrange + Cache cache = new Cache<>(); + + //Act + cache.put("box1", "yellow"); + String value = cache.get("box1"); + + //Assert + assertEquals("yellow", value); + } + + @Test + void returnNullWhenKeyDoesNotExist(){ + //Arrange + Cache cache = new Cache<>(); + + //Act + String value = cache.get("year"); + + //Assert + assertNull(value); + } + + @Test + void returnDoubleValueOfKeyCache() { + //Arrange + Cache cache = new Cache<>(); + + //Act + cache.put("height", 1.64); + double value = cache.get("height"); + + //Assert + assertEquals(1.64, value); + } + + @Test + void returnRemovedIntegerValueOfCache() { + //Arrange + Cache cache = new Cache<>(); + + //Act + cache.put("year", 23); + int removedValue = cache.remove("year"); + + //Assert + assertEquals(23, removedValue); + } + + @Test + void returnSizeOfCache() { + //Arrange + Cache cache = new Cache<>(); + + //Act + cache.put("user1", "Alex"); + cache.put("user2", "Daniel"); + int size = cache.size(); + + //Assert + assertEquals(2, size); + + } + + @Test + void clearAllCache() { + //Arrange + Cache cache = new Cache<>(); + + //Act + cache.put("followers", 1992); + cache.put("posts", 202); + cache.put("comments", 24); + cache.clear(); + + //Assert + assertEquals(0, cache.size()); } }