From f22b6724fbeaa09de595053c5a2faafdb11d11d1 Mon Sep 17 00:00:00 2001 From: Yusuprozimemet Date: Thu, 21 May 2026 16:59:01 +0200 Subject: [PATCH] OK --- task-1/com/pizzacompany/Main.java | 11 +++++- task-1/com/pizzacompany/Order.java | 30 +++++++++++++++ task-1/com/pizzacompany/Pizza.java | 32 ++++++++++++++++ task-1/com/pizzacompany/Size.java | 15 ++++++++ task-1/com/pizzacompany/Topping.java | 15 ++++++++ task-2/src/main/java/org/my/cache/Cache.java | 17 ++++++--- task-2/src/main/java/org/my/cache/Main.java | 12 +++++- .../test/java/org/my/cache/CacheTests.java | 38 ++++++++++++++++++- 8 files changed, 160 insertions(+), 10 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..db5af6c 100644 --- a/task-1/com/pizzacompany/Main.java +++ b/task-1/com/pizzacompany/Main.java @@ -1,7 +1,16 @@ package com.pizzacompany; +import java.util.Arrays; + public class Main { public static void main(String[] args) { - System.out.println("Hello Pizza!"); + Order order = new Order(); + + order.addPizza(new Pizza(Size.MEDIUM, Arrays.asList(Topping.CHEESE, Topping.MUSHROOMS))); + order.addPizza(new Pizza(Size.LARGE, Arrays.asList(Topping.PEPPERONI, Topping.OLIVES, Topping.CHEESE))); + order.addPizza(new Pizza(Size.SMALL, Arrays.asList(Topping.PINEAPPLE))); + + order.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..5334fed --- /dev/null +++ b/task-1/com/pizzacompany/Order.java @@ -0,0 +1,30 @@ +package com.pizzacompany; + +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; + +public class Order { + private final List pizzas = new ArrayList(); + + public void addPizza(Pizza pizza) { + pizzas.add(pizza); + } + + public double getTotalPrice() { + double total = 0.0; + for (Pizza pizza : pizzas) { + total += pizza.getTotalPrice(); + } + return total; + } + + public void printReceipt() { + System.out.println("=== Receipt ==="); + for (Pizza pizza : pizzas) { + System.out.println(pizza); + } + System.out.println("---------------"); + System.out.println("Total: €" + String.format(Locale.US, "%.2f", getTotalPrice())); + } +} \ No newline at end of file diff --git a/task-1/com/pizzacompany/Pizza.java b/task-1/com/pizzacompany/Pizza.java new file mode 100644 index 0000000..626884e --- /dev/null +++ b/task-1/com/pizzacompany/Pizza.java @@ -0,0 +1,32 @@ +package com.pizzacompany; + +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; + +public class Pizza { + private final Size size; + private final List toppings; + + public Pizza(Size size, List toppings) { + this.size = size; + this.toppings = new ArrayList<>(toppings); + } + + public double getTotalPrice() { + double total = size.getBasePrice(); + for (Topping topping : toppings) { + total += topping.getPrice(); + } + return total; + } + + @Override + public String toString() { + return size + " pizza with " + toppings + " - €" + formatPrice(getTotalPrice()); + } + + private static String formatPrice(double value) { + return String.format(Locale.US, "%.2f", value); + } +} \ No newline at end of file diff --git a/task-1/com/pizzacompany/Size.java b/task-1/com/pizzacompany/Size.java new file mode 100644 index 0000000..c363ff5 --- /dev/null +++ b/task-1/com/pizzacompany/Size.java @@ -0,0 +1,15 @@ +package com.pizzacompany; + +public enum Size { + SMALL(6.00), MEDIUM(9.00), LARGE(12.00); + + private final double basePrice; + + Size(double basePrice) { + this.basePrice = basePrice; + } + + public double getBasePrice() { + return basePrice; + } +} \ No newline at end of file diff --git a/task-1/com/pizzacompany/Topping.java b/task-1/com/pizzacompany/Topping.java new file mode 100644 index 0000000..7bdeb33 --- /dev/null +++ b/task-1/com/pizzacompany/Topping.java @@ -0,0 +1,15 @@ +package com.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; + } +} \ No newline at end of file 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..79da5d9 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,29 @@ package org.my.cache; -class Cache { +import java.util.HashMap; +import java.util.Map; + +public class Cache { + private final Map store = new HashMap<>(); + public void put(String key, T value) { - throw new UnsupportedOperationException("Not implemented yet"); + store.put(key, value); } public T get(String key) { - throw new UnsupportedOperationException("Not implemented yet"); + return store.get(key); } public T remove(String key) { - throw new UnsupportedOperationException("Not implemented yet"); + return store.remove(key); } public int size() { - throw new UnsupportedOperationException("Not implemented yet"); + return store.size(); } public void clear() { - throw new UnsupportedOperationException("Not implemented yet"); + store.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..4f28451 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,16 @@ public class Main { public static void main(String[] args) { - System.out.println("Hello Cache!"); + Cache cache = new Cache<>(); + cache.put("name", "HackYourFuture"); + System.out.println(cache.get("name")); + System.out.println(cache.get("city")); + + Cache numberCache = new Cache<>(); + numberCache.put("c1", 12345.0); + numberCache.put("c2", 54321.0); + System.out.println(numberCache.size()); + numberCache.remove("c1"); + System.out.println(numberCache.get("c1")); } } \ No newline at end of file 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..a1afc80 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,41 @@ class CacheTests { @Test - void simpleTest() { - assertEquals(2, 1 + 1); + void putAndGetRetunsValue(){ + Cache cache = new Cache<>(); + cache.put("name", "HackYourFuture"); + assertEquals("HackYourFuture", cache.get("name")); + } + + @Test + void getMIssingReturnsNull(){ + Cache cache = new Cache<>(); + assertNull(cache.get("missing")); + } + + @Test + void removeReturnValueAndRemoves(){ + Cache cache = new Cache<>(); + cache.put("name", "HackYourFuture"); + assertEquals("HackYourFuture", cache.remove("name")); + assertNull(cache.get("name")); + } + + @Test + void sizeCountsEntries(){ + Cache cache = new Cache<>(); + cache.put("c1", "1"); + cache.put("c2", "2"); + assertEquals(2, cache.size()); + + } + + @Test + void clearEmptiesCache(){ + Cache cache = new Cache<>(); + cache.put("c1", "1.0"); + cache.put("c2", "2.0"); + cache.clear(); + assertEquals(0, cache.size()); } }