diff --git a/01_funktsioon/calc.class b/01_funktsioon/calc.class new file mode 100644 index 00000000..0c7b400d Binary files /dev/null and b/01_funktsioon/calc.class differ diff --git a/01_funktsioon/calc.java b/01_funktsioon/calc.java new file mode 100644 index 00000000..07a266c1 --- /dev/null +++ b/01_funktsioon/calc.java @@ -0,0 +1,45 @@ +public class calc{ + public static void main(String args[]){ + int length = args.length; + double[] valueArray = new double [length]; + + for (int i = 1; i < length; i++) + { + System.out.println(args[i]); + valueArray[i] = Double.parseDouble(args[i]); + } + + System.out.println(args[0].getClass().getSimpleName()); + System.out.println("test"); + + if(args[0].equals("plus")){ + System.out.println("test plus"); + System.out.println(plus(valueArray[1], valueArray[2])); + } + else if (args[0].equals("minus")) + { + System.out.println(minus(valueArray[1], valueArray[2])); + } + else if (args[0].equals("multiply")) + { + System.out.println(multiply(valueArray[1], valueArray[2])); + } + else if (args[0].equals("divide")) + { + System.out.println(divide(valueArray[1], valueArray[2])); + } + } + + public static double plus(double a, double b){ + return a + b; + } + public static double minus(double a, double b){ + return a - b; + } + public static double multiply(double a, double b){ + return a * b; + } + public static double divide(double a, double b){ + return a / b; + } +} diff --git a/02_klass/Apple.java b/02_klass/Apple.java new file mode 100644 index 00000000..b5a66877 --- /dev/null +++ b/02_klass/Apple.java @@ -0,0 +1,9 @@ +public class Apple extends Product{ + public Apple(){} + public Apple(String _name, String _description, double _price, Integer _quantity){ + setName(_name); + setDescription(_description); + setPrice(_price); + setQuantity(_quantity); + } +} diff --git a/02_klass/Banana.java b/02_klass/Banana.java new file mode 100644 index 00000000..9478620a --- /dev/null +++ b/02_klass/Banana.java @@ -0,0 +1,9 @@ +public class Banana extends Product{ + public Banana() {} + public Banana(String _name, String _description, double _price, Integer _quantity) { + setName(_name); + setDescription(_description); + setPrice(_price); + setQuantity(_quantity); + } +} diff --git a/02_klass/Cart.java b/02_klass/Cart.java new file mode 100644 index 00000000..08e8349d --- /dev/null +++ b/02_klass/Cart.java @@ -0,0 +1,49 @@ +import java.util.ArrayList; +import java.util.List; + +public class Cart extends Product{ + private String status = "unpaid"; + private List boughtProducts; + + public Cart(){} + public Cart (List products){ + if (getStatus() == "paid") { + System.out.println("The transactions is already completed! Please make a new cart!"); + } + boughtProducts = new ArrayList<>(products); + } + + public void pay(){ + setStatus("paid"); + System.out.println("You have successfully bought your goods! Please have a nice day!"); + Double sum = 0.0; + + for(Integer i = 0; i < getBoughtProducts().size(); i++){ + List array = getBoughtProducts(); + Double quantity = Double.valueOf(array.get(i).getQuantity()); + if(quantity == 0){ + continue; + } else{ + System.out.println(array.get(i).toString()); + sum += quantity*array.get(i).getPrice(); + } + } + System.out.println(String.format("Total sum is: %.2f$", sum)); + } + + public String getStatus() { + return status; + } + + public List getBoughtProducts() { + return boughtProducts; + } + + public void setBoughtProducts(List boughtProducts) { + this.boughtProducts = boughtProducts; + } + + public void setStatus(String status) { + this.status = status; + } +} diff --git a/02_klass/Orange.java b/02_klass/Orange.java new file mode 100644 index 00000000..dd6d5325 --- /dev/null +++ b/02_klass/Orange.java @@ -0,0 +1,9 @@ +public class Orange extends Product{ + public Orange() {} + public Orange(String _name, String _description, double _price, Integer _quantity) { + setName(_name); + setDescription(_description); + setPrice(_price); + setQuantity(_quantity); + } +} diff --git a/02_klass/Product.java b/02_klass/Product.java new file mode 100644 index 00000000..7c0f862b --- /dev/null +++ b/02_klass/Product.java @@ -0,0 +1,42 @@ +public abstract class Product { + private String name; + private String description; + private double price; + private Integer quantity; + + public Integer getQuantity() { + return quantity; + } + + public void setQuantity(Integer quantity) { + this.quantity = quantity; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public double getPrice() { + return price; + } + + public void setPrice(double price) { + this.price = price; + } + + public String toString(){ + return String.format("%s %s %.2f$ %d pcs TOTAL: %.2f$", getName(), getDescription(), getPrice(), getQuantity(), getPrice()*Double.valueOf(getQuantity())); + } +} diff --git a/02_klass/Program.java b/02_klass/Program.java new file mode 100644 index 00000000..3a9e5827 --- /dev/null +++ b/02_klass/Program.java @@ -0,0 +1,16 @@ +import java.sql.Array; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class Program { + public static void main(String[] args) { + + Apple apple = new Apple("Apple Brazilia", "Very very delicious apple!", 1.2, 5); + Orange orange = new Orange("Orange Brazilia", "Very tasy orange", 1.5, 10); + Banana banana = new Banana("Banana", "Very very delicious and tasty banana", 1.3, 7); + + Cart cart = new Cart(Arrays.asList(apple, orange, banana)); + cart.pay(); + } +} \ No newline at end of file diff --git a/03_klassikomplekt/Admin.java b/03_klassikomplekt/Admin.java new file mode 100644 index 00000000..970d0015 --- /dev/null +++ b/03_klassikomplekt/Admin.java @@ -0,0 +1,31 @@ +package com.company; + +public class Admin extends Staff{ + Boolean userBlock; + Boolean deleteUser; + Boolean suspendUser; + + public Boolean getUserBlock() { + return userBlock; + } + + public void setUserBlock(Boolean userBlock) { + this.userBlock = userBlock; + } + + public Boolean getDeleteUser() { + return deleteUser; + } + + public void setDeleteUser(Boolean deleteUser) { + this.deleteUser = deleteUser; + } + + public Boolean getSuspendUser() { + return suspendUser; + } + + public void setSuspendUser(Boolean suspendUser) { + this.suspendUser = suspendUser; + } +} diff --git a/03_klassikomplekt/Chief.java b/03_klassikomplekt/Chief.java new file mode 100644 index 00000000..13149523 --- /dev/null +++ b/03_klassikomplekt/Chief.java @@ -0,0 +1,8 @@ +package com.company; + +public class Chief extends Staff{ + + public void setBonus(Employee e, Double bns){ + e.setBonus(bns); + } +} diff --git a/03_klassikomplekt/Employee.java b/03_klassikomplekt/Employee.java new file mode 100644 index 00000000..1a6ae135 --- /dev/null +++ b/03_klassikomplekt/Employee.java @@ -0,0 +1,17 @@ +package com.company; + +public class Employee extends Staff{ + Person person; + Integer dataAccess; + Integer roomAccess; + Integer breakRoomAccessTimes = 0; + + public Employee(Person person, Integer dataAccess, Integer roomAccess) { + this.person = person; + this.dataAccess = dataAccess; + this.roomAccess = roomAccess; + } + public void breakRoomAccessTimes(){ + breakRoomAccessTimes += 1; + } +} diff --git a/03_klassikomplekt/Main.java b/03_klassikomplekt/Main.java new file mode 100644 index 00000000..0d7cf939 --- /dev/null +++ b/03_klassikomplekt/Main.java @@ -0,0 +1,13 @@ +package com.company; +import java.util.*; +public class Main { + + public static void main(String[] args) { + Person p1 = new Person("Andres", "Sikka", "", "06.12.1998"); + Employee e1 = new Employee(p1, 1, 1); + Chief c1 = new Chief(); + c1.setBonus(e1, 500.0); + e1.breakRoomAccessTimes(); + System.out.println(e1.getBonus()); + } +} diff --git a/03_klassikomplekt/Person.java b/03_klassikomplekt/Person.java new file mode 100644 index 00000000..2d606c68 --- /dev/null +++ b/03_klassikomplekt/Person.java @@ -0,0 +1,48 @@ +package com.company; +import java.util.*; + +public class Person { + String fName; + String lName; + String mName = ""; + String birthDay; + + public Person(String fName, String lName, String mName, String birthDay) { + this.fName = fName; + this.lName = lName; + this.mName = mName; + this.birthDay = birthDay; + } + + public String getfName() { + return fName; + } + + public void setfName(String fName) { + this.fName = fName; + } + + public String getlName() { + return lName; + } + + public void setlName(String lName) { + this.lName = lName; + } + + public String getmName() { + return mName; + } + + public void setmName(String mName) { + this.mName = mName; + } + + public String getBirthDay() { + return birthDay; + } + + public void setBirthDay(String birthDay) { + this.birthDay = birthDay; + } +} diff --git a/03_klassikomplekt/Staff.java b/03_klassikomplekt/Staff.java new file mode 100644 index 00000000..70054864 --- /dev/null +++ b/03_klassikomplekt/Staff.java @@ -0,0 +1,51 @@ +package com.company; + +public abstract class Staff { + Person person; + Boolean viewProfile; + Double bonus = 0.0; + Double salary; + Double vacation; + + + public Double getBonus() { + return bonus; + } + + public void setBonus(Double bonus) { + this.bonus = bonus; + } + + public Person getPerson() { + return person; + } + + public void setPerson(Person person) { + this.person = person; + } + + public Boolean getViewProfile() { + return viewProfile; + } + + public void setViewProfile(Boolean viewProfile) { + this.viewProfile = viewProfile; + } + + public Double getSalary() { + return salary; + } + + public void setSalary(Double salary) { + this.salary = salary; + } + + + public Double getVacation() { + return vacation; + } + + public void setVacation(Double vacation) { + this.vacation = vacation; + } +} diff --git a/04_proovikontrolltoo1/Program.java b/04_proovikontrolltoo1/Program.java new file mode 100644 index 00000000..c5569f1e --- /dev/null +++ b/04_proovikontrolltoo1/Program.java @@ -0,0 +1,12 @@ +public class Program { + public static void main(String[] args) { + Veekeedukann v1 = new Veekeedukann(); + v1.lylitameSisse(300, 18.0); + System.out.println(v1.veekeedukanniTemperatuur()); + v1.lisameVettJuurde(1000, 0); + System.out.println(v1.veekeedukanniTemperatuur()); + v1.lylitameSisse(20, v1.temperatuur); + + System.out.println("Peale valamist" + v1.veekeedukanniTemperatuur()); + } +} diff --git a/04_proovikontrolltoo1/Veekeedukann.java b/04_proovikontrolltoo1/Veekeedukann.java new file mode 100644 index 00000000..e31c4986 --- /dev/null +++ b/04_proovikontrolltoo1/Veekeedukann.java @@ -0,0 +1,36 @@ +public class Veekeedukann { + double temperatuur = 0.0; + double veekeedukanniMahus = 2000.0; + double valatudVeeMahus = 1000.0; + double v6imsus = 1200.0; + double mahusMisMeSaameSuurendadaKraadiV6rra = v6imsus / 4.19; + double terveTeeKannuMuutmisAegKraadiV6rra = valatudVeeMahus / mahusMisMeSaameSuurendadaKraadiV6rra; + + public Veekeedukann() { + + } + + public String veekeedukanniTemperatuur(){ + if(this.temperatuur >= 80){ + return "Vee temperatuur ületab 80 kraadi -> " + temperatuur +"°C"; + } else{ + return "Vee temperatuur on alla 80 kraadi -> " + temperatuur +"°C"; + } + } + + public void lylitameSisse(double sek, double veeAlgTemperatuur){ + if((sek /terveTeeKannuMuutmisAegKraadiV6rra) + veeAlgTemperatuur > 100.0){ + this.temperatuur = 100.0; + } else{ + this.temperatuur = (sek /terveTeeKannuMuutmisAegKraadiV6rra) + veeAlgTemperatuur; + } + } + public void lisameVettJuurde(double lisaVett, double lisatudVeeTemperatuur){ + if(lisaVett <= (veekeedukanniMahus-valatudVeeMahus)){ + this.temperatuur = (valatudVeeMahus*this.temperatuur + lisaVett*lisatudVeeTemperatuur)/(valatudVeeMahus+lisaVett); + } else { + System.out.println("Te ületasite veetekanni mahut!"); + } + } + +} diff --git a/05_kontrolltoo1/Program.java b/05_kontrolltoo1/Program.java new file mode 100644 index 00000000..c5569f1e --- /dev/null +++ b/05_kontrolltoo1/Program.java @@ -0,0 +1,12 @@ +public class Program { + public static void main(String[] args) { + Veekeedukann v1 = new Veekeedukann(); + v1.lylitameSisse(300, 18.0); + System.out.println(v1.veekeedukanniTemperatuur()); + v1.lisameVettJuurde(1000, 0); + System.out.println(v1.veekeedukanniTemperatuur()); + v1.lylitameSisse(20, v1.temperatuur); + + System.out.println("Peale valamist" + v1.veekeedukanniTemperatuur()); + } +} diff --git a/05_kontrolltoo1/Veekeedukann.java b/05_kontrolltoo1/Veekeedukann.java new file mode 100644 index 00000000..e31c4986 --- /dev/null +++ b/05_kontrolltoo1/Veekeedukann.java @@ -0,0 +1,36 @@ +public class Veekeedukann { + double temperatuur = 0.0; + double veekeedukanniMahus = 2000.0; + double valatudVeeMahus = 1000.0; + double v6imsus = 1200.0; + double mahusMisMeSaameSuurendadaKraadiV6rra = v6imsus / 4.19; + double terveTeeKannuMuutmisAegKraadiV6rra = valatudVeeMahus / mahusMisMeSaameSuurendadaKraadiV6rra; + + public Veekeedukann() { + + } + + public String veekeedukanniTemperatuur(){ + if(this.temperatuur >= 80){ + return "Vee temperatuur ületab 80 kraadi -> " + temperatuur +"°C"; + } else{ + return "Vee temperatuur on alla 80 kraadi -> " + temperatuur +"°C"; + } + } + + public void lylitameSisse(double sek, double veeAlgTemperatuur){ + if((sek /terveTeeKannuMuutmisAegKraadiV6rra) + veeAlgTemperatuur > 100.0){ + this.temperatuur = 100.0; + } else{ + this.temperatuur = (sek /terveTeeKannuMuutmisAegKraadiV6rra) + veeAlgTemperatuur; + } + } + public void lisameVettJuurde(double lisaVett, double lisatudVeeTemperatuur){ + if(lisaVett <= (veekeedukanniMahus-valatudVeeMahus)){ + this.temperatuur = (valatudVeeMahus*this.temperatuur + lisaVett*lisatudVeeTemperatuur)/(valatudVeeMahus+lisaVett); + } else { + System.out.println("Te ületasite veetekanni mahut!"); + } + } + +} diff --git a/06_liides/IKodutoodeYlevaade.java b/06_liides/IKodutoodeYlevaade.java new file mode 100644 index 00000000..b58a2865 --- /dev/null +++ b/06_liides/IKodutoodeYlevaade.java @@ -0,0 +1,5 @@ +import java.util.List; + +public interface IKodutoodeYlevaade { + void kodutoodeYlevaade(); +} diff --git a/06_liides/Opetaja.java b/06_liides/Opetaja.java new file mode 100644 index 00000000..d4388b86 --- /dev/null +++ b/06_liides/Opetaja.java @@ -0,0 +1,25 @@ +import java.util.ArrayList; +import java.util.List; + +public class Opetaja implements IKodutoodeYlevaade{ + public String nimi; + public String pNimi; + public String iK; + + List koodutoodeYlevaade = new ArrayList<>(); + + public Opetaja(String nimi, String pNimi, String iK){ + this.nimi = nimi; + this.pNimi = pNimi; + this.iK = iK; + } + + @Override + public void kodutoodeYlevaade() { + System.out.println("Õpetaja pandud hinned: "); + for(Integer i = 0; i<= koodutoodeYlevaade.size()-1; i++){ + System.out.println(koodutoodeYlevaade.get(i)); + System.out.println("-------------------------------------------\n"); + } + } +} diff --git a/06_liides/Oppija.java b/06_liides/Oppija.java new file mode 100644 index 00000000..29cbcefd --- /dev/null +++ b/06_liides/Oppija.java @@ -0,0 +1,36 @@ +import java.util.ArrayList; +import java.util.List; + +public class Oppija{ + public String nimi; + public String pNimi; + public String iK; + + public String kodutoo; + public String kodutooYlesanne; + public Integer hinne = null; + + public Opetaja hindaja; + + + public Oppija(String nimi, String pNimi, String iK){ + this.nimi = nimi; + this.pNimi = pNimi; + this.iK = iK; + } + + public void lisaKodutoo(String kodutoo, String kodutooYlesanne){ + this.kodutoo = kodutoo; + this.kodutooYlesanne = kodutooYlesanne; + } + + public void hindaKodutoo(Opetaja ope, Integer hinne){ + this.hinne = hinne; + this.hindaja = ope; + ope.koodutoodeYlevaade.add(this.toString()); + } + @Override + public String toString(){ + return "Õppija nimi: " + this.nimi + "\n" + "Õppija perenimi: " + this.pNimi + "\n" + "Õppija isikukood: " + this.iK + "\n" + "Kodutoo ülesanne: " + this.kodutooYlesanne + "\n" + "Kodutöö vastus: " + this.kodutoo + "\n" + "Hinne: " + this.hinne + "\n" + "Hindaja: " + this.hindaja.nimi + " " + this.hindaja.pNimi; + } +} \ No newline at end of file diff --git a/06_liides/OppijateKodutooHunnik.java b/06_liides/OppijateKodutooHunnik.java new file mode 100644 index 00000000..c4cf7589 --- /dev/null +++ b/06_liides/OppijateKodutooHunnik.java @@ -0,0 +1,23 @@ +import java.util.ArrayList; +import java.util.List; + +public class OppijateKodutooHunnik implements IKodutoodeYlevaade{ + public List oppija = new ArrayList<>(); + public List oppijaInfo = new ArrayList<>(); + + public String kedaOtsin; + public void lisaOppijat(Oppija o){ + oppija.add(o); + oppijaInfo.add(o.toString()); + } + + @Override + public void kodutoodeYlevaade() { + for (Integer i = 0; i <= oppija.size()-1; i++) { + if(oppija.get(i).iK == kedaOtsin){ + System.out.println(oppijaInfo.get(i)); + System.out.println("-------------------------------------------\n"); + } + } + } +} diff --git a/06_liides/program.java b/06_liides/program.java new file mode 100644 index 00000000..83b5d7ed --- /dev/null +++ b/06_liides/program.java @@ -0,0 +1,34 @@ +public class program { + public static void main(String[] args) { + OppijateKodutooHunnik okh = new OppijateKodutooHunnik(); + + Opetaja Jaagup = new Opetaja("Jaagup", "Kippar", "374684651324"); + Oppija Andres = new Oppija("Andres", "Sikka", "398348725873"); + Oppija Mari = new Oppija("Mari", "Maasikas", "49812312839024"); + + + Andres.lisaKodutoo("5 + 5 = 10", "Liida 5 + 5"); + Andres.hindaKodutoo(Jaagup, 5); + okh.lisaOppijat(Andres); + + Andres.lisaKodutoo("154 + 123 = ei tea", "Liida 154 + 123"); + Andres.hindaKodutoo(Jaagup, 2); + okh.lisaOppijat(Andres); + + Andres.lisaKodutoo("1 + 1 = ei oska", "Liida 154 + 123"); + Andres.hindaKodutoo(Jaagup, 0); + okh.lisaOppijat(Andres); + + Mari.lisaKodutoo("123 + 123 = 246", "Liida 123 + 123"); + Mari.hindaKodutoo(Jaagup, 5); + okh.lisaOppijat(Mari); + + Mari.lisaKodutoo("50 + 50 = 100", "Liida 50 + 50"); + Mari.hindaKodutoo(Jaagup, 5); + okh.lisaOppijat(Mari); + +// okh.kedaOtsin = "398348725873"; +// okh.kodutoodeYlevaade(); + Jaagup.kodutoodeYlevaade(); + } +} diff --git a/07_junit/build/classes/java/main/kodutoo/App.class b/07_junit/build/classes/java/main/kodutoo/App.class new file mode 100644 index 00000000..472aa3c2 Binary files /dev/null and b/07_junit/build/classes/java/main/kodutoo/App.class differ diff --git a/07_junit/build/classes/java/test/kodutoo/AppTest.class b/07_junit/build/classes/java/test/kodutoo/AppTest.class new file mode 100644 index 00000000..91fe74c1 Binary files /dev/null and b/07_junit/build/classes/java/test/kodutoo/AppTest.class differ diff --git a/07_junit/build/reports/tests/test/classes/kodutoo.AppTest.html b/07_junit/build/reports/tests/test/classes/kodutoo.AppTest.html new file mode 100644 index 00000000..2d0798a9 --- /dev/null +++ b/07_junit/build/reports/tests/test/classes/kodutoo.AppTest.html @@ -0,0 +1,162 @@ + + + + + +Test results - Class kodutoo.AppTest + + + + + +
+

Class kodutoo.AppTest

+ +
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
1
+

failures

+
+
+
+
0
+

ignored

+
+
+
+
0.021s
+

duration

+
+
+
+
+
+
0%
+

successful

+
+
+
+
+ +
+

Failed tests

+
+ +

testMultiply

+ +
java.lang.AssertionError: expected:<8.0> but was:<7.0>
+	at org.junit.Assert.fail(Assert.java:88)
+	at org.junit.Assert.failNotEquals(Assert.java:834)
+	at org.junit.Assert.assertEquals(Assert.java:553)
+	at org.junit.Assert.assertEquals(Assert.java:683)
+	at kodutoo.AppTest.testMultiply(AppTest.java:18)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
+	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
+	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
+	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
+	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
+	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
+	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+	at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.runTestClass(JUnitTestClassExecutor.java:110)
+	at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:58)
+	at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:38)
+	at org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestClassProcessor.processTestClass(AbstractJUnitTestClassProcessor.java:66)
+	at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:51)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
+	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
+	at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:32)
+	at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93)
+	at com.sun.proxy.$Proxy2.processTestClass(Unknown Source)
+	at org.gradle.api.internal.tasks.testing.worker.TestWorker.processTestClass(TestWorker.java:118)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
+	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
+	at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:175)
+	at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:157)
+	at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:404)
+	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
+	at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
+	at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
+	at java.lang.Thread.run(Thread.java:748)
+
+
+
+
+
+

Tests

+ + + + + + + + + + + + + +
TestDurationResult
testMultiply0.021sfailed
+
+
+ +
+ + diff --git a/07_junit/build/reports/tests/test/css/base-style.css b/07_junit/build/reports/tests/test/css/base-style.css new file mode 100644 index 00000000..4afa73e3 --- /dev/null +++ b/07_junit/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/07_junit/build/reports/tests/test/css/style.css b/07_junit/build/reports/tests/test/css/style.css new file mode 100644 index 00000000..3dc4913e --- /dev/null +++ b/07_junit/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/07_junit/build/reports/tests/test/index.html b/07_junit/build/reports/tests/test/index.html new file mode 100644 index 00000000..e1654654 --- /dev/null +++ b/07_junit/build/reports/tests/test/index.html @@ -0,0 +1,145 @@ + + + + + +Test results - Test Summary + + + + + +
+

Test Summary

+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
1
+

failures

+
+
+
+
0
+

ignored

+
+
+
+
0.021s
+

duration

+
+
+
+
+
+
0%
+

successful

+
+
+
+
+ +
+

Failed tests

+ +
+
+

Packages

+ + + + + + + + + + + + + + + + + + + + + +
PackageTestsFailuresIgnoredDurationSuccess rate
+kodutoo +1100.021s0%
+
+
+

Classes

+ + + + + + + + + + + + + + + + + + + + + +
ClassTestsFailuresIgnoredDurationSuccess rate
+kodutoo.AppTest +1100.021s0%
+
+
+ +
+ + diff --git a/07_junit/build/reports/tests/test/js/report.js b/07_junit/build/reports/tests/test/js/report.js new file mode 100644 index 00000000..83bab4a1 --- /dev/null +++ b/07_junit/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/07_junit/build/reports/tests/test/packages/kodutoo.html b/07_junit/build/reports/tests/test/packages/kodutoo.html new file mode 100644 index 00000000..1d3c233b --- /dev/null +++ b/07_junit/build/reports/tests/test/packages/kodutoo.html @@ -0,0 +1,115 @@ + + + + + +Test results - Package kodutoo + + + + + +
+

Package kodutoo

+ +
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
1
+

failures

+
+
+
+
0
+

ignored

+
+
+
+
0.021s
+

duration

+
+
+
+
+
+
0%
+

successful

+
+
+
+
+ +
+

Failed tests

+ +
+
+

Classes

+ + + + + + + + + + + + + + + + + + + +
ClassTestsFailuresIgnoredDurationSuccess rate
+AppTest +1100.021s0%
+
+
+ +
+ + diff --git a/08_alamklassid/Admin.java b/08_alamklassid/Admin.java new file mode 100644 index 00000000..d6b30ecd --- /dev/null +++ b/08_alamklassid/Admin.java @@ -0,0 +1,29 @@ +public class Admin extends Staff{ + Boolean userBlock; + Boolean deleteUser; + Boolean suspendUser; + + public Boolean getUserBlock() { + return userBlock; + } + + public void setUserBlock(Boolean userBlock) { + this.userBlock = userBlock; + } + + public Boolean getDeleteUser() { + return deleteUser; + } + + public void setDeleteUser(Boolean deleteUser) { + this.deleteUser = deleteUser; + } + + public Boolean getSuspendUser() { + return suspendUser; + } + + public void setSuspendUser(Boolean suspendUser) { + this.suspendUser = suspendUser; + } +} diff --git a/08_alamklassid/Chief.java b/08_alamklassid/Chief.java new file mode 100644 index 00000000..a9d9035d --- /dev/null +++ b/08_alamklassid/Chief.java @@ -0,0 +1,6 @@ +public class Chief extends Staff{ + + public void setBonus(Employee e, Double bns){ + e.setBonus(bns); + } +} diff --git a/08_alamklassid/Employee.java b/08_alamklassid/Employee.java new file mode 100644 index 00000000..1c014497 --- /dev/null +++ b/08_alamklassid/Employee.java @@ -0,0 +1,15 @@ +public class Employee extends Staff{ + Person person; + Integer dataAccess; + Integer roomAccess; + Integer breakRoomAccessTimes = 0; + + public Employee(Person person, Integer dataAccess, Integer roomAccess) { + this.person = person; + this.dataAccess = dataAccess; + this.roomAccess = roomAccess; + } + public void breakRoomAccessTimes(){ + breakRoomAccessTimes += 1; + } +} diff --git a/08_alamklassid/Main.java b/08_alamklassid/Main.java new file mode 100644 index 00000000..1e0b0c0e --- /dev/null +++ b/08_alamklassid/Main.java @@ -0,0 +1,13 @@ +import java.util.*; +public class Main { + + public static void main(String[] args) { + Person p1 = new Person("Andres", "Sikka", "", "06.12.1998"); + Employee e1 = new Employee(p1, 1, 1); + Chief c1 = new Chief(); + c1.setBonus(e1, 500.0); + e1.breakRoomAccessTimes(); + System.out.println(e1.getBonus()); + System.out.println(e1.roomAccess()); + } +} diff --git a/08_alamklassid/Person.java b/08_alamklassid/Person.java new file mode 100644 index 00000000..d8826759 --- /dev/null +++ b/08_alamklassid/Person.java @@ -0,0 +1,47 @@ +import java.util.*; + +public class Person { + String fName; + String lName; + String mName = ""; + String birthDay; + + public Person(String fName, String lName, String mName, String birthDay) { + this.fName = fName; + this.lName = lName; + this.mName = mName; + this.birthDay = birthDay; + } + + public String getfName() { + return fName; + } + + public void setfName(String fName) { + this.fName = fName; + } + + public String getlName() { + return lName; + } + + public void setlName(String lName) { + this.lName = lName; + } + + public String getmName() { + return mName; + } + + public void setmName(String mName) { + this.mName = mName; + } + + public String getBirthDay() { + return birthDay; + } + + public void setBirthDay(String birthDay) { + this.birthDay = birthDay; + } +} diff --git a/08_alamklassid/Staff.java b/08_alamklassid/Staff.java new file mode 100644 index 00000000..ee35669c --- /dev/null +++ b/08_alamklassid/Staff.java @@ -0,0 +1,49 @@ +public abstract class Staff { + Person person; + Boolean viewProfile; + Double bonus = 0.0; + Double salary; + Double vacation; + + + public Double getBonus() { + return bonus; + } + + public void setBonus(Double bonus) { + this.bonus = bonus; + } + + public Person getPerson() { + return person; + } + + public void setPerson(Person person) { + this.person = person; + } + + public Boolean getViewProfile() { + return viewProfile; + } + + public void setViewProfile(Boolean viewProfile) { + this.viewProfile = viewProfile; + } + + public Double getSalary() { + return salary; + } + + public void setSalary(Double salary) { + this.salary = salary; + } + + + public Double getVacation() { + return vacation; + } + + public void setVacation(Double vacation) { + this.vacation = vacation; + } +} diff --git a/09_tunnirakenduse_lahendus/java-ui-variants-defaultpkg_non_working/lib/lanterna-3.1.1.jar b/09_tunnirakenduse_lahendus/java-ui-variants-defaultpkg_non_working/lib/lanterna-3.1.1.jar new file mode 100644 index 00000000..35363c4b Binary files /dev/null and b/09_tunnirakenduse_lahendus/java-ui-variants-defaultpkg_non_working/lib/lanterna-3.1.1.jar differ diff --git a/09_tunnirakenduse_lahendus/java-ui-variants-defaultpkg_non_working/src/AWTCalculator.java b/09_tunnirakenduse_lahendus/java-ui-variants-defaultpkg_non_working/src/AWTCalculator.java new file mode 100644 index 00000000..a4f754ef --- /dev/null +++ b/09_tunnirakenduse_lahendus/java-ui-variants-defaultpkg_non_working/src/AWTCalculator.java @@ -0,0 +1,72 @@ +import java.awt.*; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; + +public class AWTCalculator extends Frame { + + public static final String OP_ADD = "+"; + public static final String OP_SUB = "-"; + public static final String OP_MUL = "*"; + public static final String OP_DIV = "/"; + + public static void main(String[] args) { + AWTCalculator c = new AWTCalculator(); + } + + public AWTCalculator() { + Font f = new Font("SansSerif", Font.BOLD, 20); + + TextField aField = new TextField("2"); + aField.setFont(f); + + TextField bField = new TextField("3"); + bField.setFont(f); + + TextField ansField = new TextField(); + ansField.setFont(f); + + Choice opChoice = new Choice(); + opChoice.add(OP_ADD); + opChoice.add(OP_SUB); + opChoice.add(OP_MUL); + opChoice.add(OP_DIV); + opChoice.setFont(f); + + Button calcButton = new Button("Calculate"); + calcButton.setFont(f); + calcButton.addActionListener(e -> { + int a = Integer.parseInt(aField.getText()); + int b = Integer.parseInt(bField.getText()); + + String opVal = opChoice.getSelectedItem(); + if (OP_ADD.equals(opVal)) { + ansField.setText("" + (a + b)); + } else if (OP_SUB.equals(opVal)) { + ansField.setText("" + (a - b)); + } else if (OP_MUL.equals(opVal)) { + ansField.setText("" + (a * b)); + } else if (OP_DIV.equals(opVal)) { + ansField.setText("" + (a / b)); + } + }); + + add(aField); + add(bField); + add(opChoice); + add(calcButton); + add(ansField); + + setLayout(new GridLayout(0, 1)); + + setSize(400, 400); + + setVisible(true); + + addWindowListener(new WindowAdapter() { + @Override + public void windowClosing(WindowEvent e) { + dispose(); + } + }); + } +} diff --git a/09_tunnirakenduse_lahendus/java-ui-variants-defaultpkg_non_working/src/LanternaCalculator$1.class b/09_tunnirakenduse_lahendus/java-ui-variants-defaultpkg_non_working/src/LanternaCalculator$1.class new file mode 100644 index 00000000..b46212e2 Binary files /dev/null and b/09_tunnirakenduse_lahendus/java-ui-variants-defaultpkg_non_working/src/LanternaCalculator$1.class differ diff --git a/09_tunnirakenduse_lahendus/java-ui-variants-defaultpkg_non_working/src/LanternaCalculator.class b/09_tunnirakenduse_lahendus/java-ui-variants-defaultpkg_non_working/src/LanternaCalculator.class new file mode 100644 index 00000000..04d6506e Binary files /dev/null and b/09_tunnirakenduse_lahendus/java-ui-variants-defaultpkg_non_working/src/LanternaCalculator.class differ diff --git a/09_tunnirakenduse_lahendus/java-ui-variants-defaultpkg_non_working/src/LanternaCalculator.java b/09_tunnirakenduse_lahendus/java-ui-variants-defaultpkg_non_working/src/LanternaCalculator.java new file mode 100644 index 00000000..e2e5000c --- /dev/null +++ b/09_tunnirakenduse_lahendus/java-ui-variants-defaultpkg_non_working/src/LanternaCalculator.java @@ -0,0 +1,66 @@ +import com.googlecode.lanterna.TerminalSize; +import com.googlecode.lanterna.TextColor; +import com.googlecode.lanterna.gui2.*; +import com.googlecode.lanterna.screen.Screen; +import com.googlecode.lanterna.screen.TerminalScreen; +import com.googlecode.lanterna.terminal.DefaultTerminalFactory; +import com.googlecode.lanterna.terminal.Terminal; + +import java.io.IOException; +import java.util.regex.Pattern; + +/** + * https://github.com/mabe02/lanterna/blob/master/docs/examples/gui/basic_form_submission.md + */ +public class LanternaCalculator { + public static void main(String[] args) throws IOException { + // Setup terminal and screen layers + Terminal terminal = new DefaultTerminalFactory().createTerminal(); + Screen screen = new TerminalScreen(terminal); + screen.startScreen(); + + // Create panel to hold components + Panel panel = new Panel(); + panel.setLayoutManager(new GridLayout(2)); + + final Label lblOutput = new Label(""); + + panel.addComponent(new Label("Num 1")); + final TextBox txtNum1 = new TextBox().setValidationPattern(Pattern.compile("[0-9]*")).addTo(panel); + + panel.addComponent(new Label("Num 2")); + final TextBox txtNum2 = new TextBox().setValidationPattern(Pattern.compile("[0-9]*")).addTo(panel); + + panel.addComponent(new Label("Operation")); + final ComboBox operations = new ComboBox(); + operations.addItem("Add"); + operations.addItem("Subtract"); + panel.addComponent(operations); + + panel.addComponent(new EmptySpace(new TerminalSize(0, 0))); + new Button("Calculate!", new Runnable() { + @Override + public void run() { + int num1 = Integer.parseInt(txtNum1.getText()); + int num2 = Integer.parseInt(txtNum2.getText()); + if(operations.getSelectedIndex() == 0) { + lblOutput.setText(Integer.toString(num1 + num2)); + } else if(operations.getSelectedIndex() == 1) { + lblOutput.setText(Integer.toString(num1 - num2)); + } + } + }).addTo(panel); + + panel.addComponent(new EmptySpace(new TerminalSize(0, 0))); + panel.addComponent(lblOutput); + + // Create window to hold the panel + BasicWindow window = new BasicWindow(); + window.setComponent(panel); + + // Create gui and start gui + MultiWindowTextGUI gui = new MultiWindowTextGUI(screen, new DefaultWindowManager(), new EmptySpace(TextColor.ANSI.BLUE)); + gui.addWindowAndWait(window); + } +} + diff --git a/09_tunnirakenduse_lahendus/java-ui-variants-defaultpkg_non_working/src/SWINGCalculator.java b/09_tunnirakenduse_lahendus/java-ui-variants-defaultpkg_non_working/src/SWINGCalculator.java new file mode 100644 index 00000000..9e42c38c --- /dev/null +++ b/09_tunnirakenduse_lahendus/java-ui-variants-defaultpkg_non_working/src/SWINGCalculator.java @@ -0,0 +1,101 @@ +import javax.swing.*; +import java.awt.*; + +public class SWINGCalculator { + public static void main(String[] args) { + SwingUtilities.invokeLater(SWINGCalculator::createAndShowGUI); + } + + private static void createAndShowGUI() { + Font f = new Font("SansSerif", Font.BOLD, 20); + + JTextField aField = new JTextField("2"); + aField.setHorizontalAlignment(SwingConstants.RIGHT); + aField.setFont(f); + + JTextField bField = new JTextField("3"); + bField.setHorizontalAlignment(SwingConstants.RIGHT); + bField.setFont(f); + + JTextField ansField = new JTextField(); + ansField.setHorizontalAlignment(SwingConstants.RIGHT); + ansField.setFont(f); + + JComboBox opCombo = new JComboBox<>(); + opCombo.setFont(f); + opCombo.addItem(new OpAdd()); + opCombo.addItem(new OpSub()); + opCombo.addItem(new OpMul()); + opCombo.addItem(new OpDiv()); + + JButton calcButton = new JButton("Calculate"); + calcButton.setFont(f); + calcButton.addActionListener(e -> { + int a = Integer.parseInt(aField.getText()); + int b = Integer.parseInt(bField.getText()); + ansField.setText("" + ((Operation) opCombo.getSelectedItem()).operate(a, b)); + }); + + JFrame frame = new JFrame("SWINGCalculator"); + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + + Container pane = frame.getContentPane(); + BoxLayout boxLayout = new BoxLayout(pane, BoxLayout.Y_AXIS); + pane.setLayout(boxLayout); + + pane.add(aField); + pane.add(bField); + pane.add(opCombo); + pane.add(calcButton); + pane.add(ansField); + + frame.pack(); + frame.setVisible(true); + } + + static abstract class Operation { + private final String title; + Operation(String title) { + this.title = title; + } + + @Override + public String toString() { + return title; + } + + abstract int operate(int a, int b); + } + static class OpAdd extends Operation { + OpAdd() { + super("+"); + } + int operate(int a, int b) { + return a + b; + } + } + static class OpSub extends Operation { + OpSub() { + super("-"); + } + int operate(int a, int b) { + return a - b; + } + } + static class OpMul extends Operation { + OpMul() { + super("*"); + } + int operate(int a, int b) { + return a * b; + } + } + static class OpDiv extends Operation { + OpDiv() { + super("-"); + } + int operate(int a, int b) { + return a / b; + } + } +} diff --git a/10_tunnirakenduse_lahendus/Listid.iml b/10_tunnirakenduse_lahendus/Listid.iml new file mode 100644 index 00000000..9465dd86 --- /dev/null +++ b/10_tunnirakenduse_lahendus/Listid.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/10_tunnirakenduse_lahendus/out/production/Listid/Loomine/Arvutamine/Arvutaja.class b/10_tunnirakenduse_lahendus/out/production/Listid/Loomine/Arvutamine/Arvutaja.class new file mode 100644 index 00000000..0d51a77e Binary files /dev/null and b/10_tunnirakenduse_lahendus/out/production/Listid/Loomine/Arvutamine/Arvutaja.class differ diff --git a/10_tunnirakenduse_lahendus/out/production/Listid/Loomine/Arvutamine/Esitaheleidja.class b/10_tunnirakenduse_lahendus/out/production/Listid/Loomine/Arvutamine/Esitaheleidja.class new file mode 100644 index 00000000..da5cd160 Binary files /dev/null and b/10_tunnirakenduse_lahendus/out/production/Listid/Loomine/Arvutamine/Esitaheleidja.class differ diff --git a/10_tunnirakenduse_lahendus/out/production/Listid/Loomine/Arvutamine/Proov1.class b/10_tunnirakenduse_lahendus/out/production/Listid/Loomine/Arvutamine/Proov1.class new file mode 100644 index 00000000..6a303f4c Binary files /dev/null and b/10_tunnirakenduse_lahendus/out/production/Listid/Loomine/Arvutamine/Proov1.class differ diff --git a/10_tunnirakenduse_lahendus/out/production/Listid/Loomine/Arvutamine/Proov2.class b/10_tunnirakenduse_lahendus/out/production/Listid/Loomine/Arvutamine/Proov2.class new file mode 100644 index 00000000..c01d48a1 Binary files /dev/null and b/10_tunnirakenduse_lahendus/out/production/Listid/Loomine/Arvutamine/Proov2.class differ diff --git a/10_tunnirakenduse_lahendus/out/production/Listid/Loomine/Arvutamine/Puhverdaja.class b/10_tunnirakenduse_lahendus/out/production/Listid/Loomine/Arvutamine/Puhverdaja.class new file mode 100644 index 00000000..2aa443ab Binary files /dev/null and b/10_tunnirakenduse_lahendus/out/production/Listid/Loomine/Arvutamine/Puhverdaja.class differ diff --git a/10_tunnirakenduse_lahendus/out/production/Listid/Loomine/EPnimi.class b/10_tunnirakenduse_lahendus/out/production/Listid/Loomine/EPnimi.class new file mode 100644 index 00000000..87745324 Binary files /dev/null and b/10_tunnirakenduse_lahendus/out/production/Listid/Loomine/EPnimi.class differ diff --git a/10_tunnirakenduse_lahendus/out/production/Listid/Loomine/PaarideLoendur1$1.class b/10_tunnirakenduse_lahendus/out/production/Listid/Loomine/PaarideLoendur1$1.class new file mode 100644 index 00000000..3da75a92 Binary files /dev/null and b/10_tunnirakenduse_lahendus/out/production/Listid/Loomine/PaarideLoendur1$1.class differ diff --git a/10_tunnirakenduse_lahendus/out/production/Listid/Loomine/PaarideLoendur1.class b/10_tunnirakenduse_lahendus/out/production/Listid/Loomine/PaarideLoendur1.class new file mode 100644 index 00000000..467e5284 Binary files /dev/null and b/10_tunnirakenduse_lahendus/out/production/Listid/Loomine/PaarideLoendur1.class differ diff --git a/10_tunnirakenduse_lahendus/out/production/Listid/Loomine/Proov1.class b/10_tunnirakenduse_lahendus/out/production/Listid/Loomine/Proov1.class new file mode 100644 index 00000000..3a6adf0a Binary files /dev/null and b/10_tunnirakenduse_lahendus/out/production/Listid/Loomine/Proov1.class differ diff --git a/10_tunnirakenduse_lahendus/out/production/Listid/Loomine/Proov2.class b/10_tunnirakenduse_lahendus/out/production/Listid/Loomine/Proov2.class new file mode 100644 index 00000000..59f492f1 Binary files /dev/null and b/10_tunnirakenduse_lahendus/out/production/Listid/Loomine/Proov2.class differ diff --git a/10_tunnirakenduse_lahendus/out/production/Listid/Loomine/Proov3.class b/10_tunnirakenduse_lahendus/out/production/Listid/Loomine/Proov3.class new file mode 100644 index 00000000..51330d11 Binary files /dev/null and b/10_tunnirakenduse_lahendus/out/production/Listid/Loomine/Proov3.class differ diff --git a/10_tunnirakenduse_lahendus/out/production/Listid/Loomine/SamaTyypiPaar.class b/10_tunnirakenduse_lahendus/out/production/Listid/Loomine/SamaTyypiPaar.class new file mode 100644 index 00000000..2193884c Binary files /dev/null and b/10_tunnirakenduse_lahendus/out/production/Listid/Loomine/SamaTyypiPaar.class differ diff --git a/10_tunnirakenduse_lahendus/out/production/Listid/Program.class b/10_tunnirakenduse_lahendus/out/production/Listid/Program.class new file mode 100644 index 00000000..a991fdab Binary files /dev/null and b/10_tunnirakenduse_lahendus/out/production/Listid/Program.class differ diff --git a/10_tunnirakenduse_lahendus/out/production/Listid/Proov2.class b/10_tunnirakenduse_lahendus/out/production/Listid/Proov2.class new file mode 100644 index 00000000..e19db392 Binary files /dev/null and b/10_tunnirakenduse_lahendus/out/production/Listid/Proov2.class differ diff --git a/10_tunnirakenduse_lahendus/src/Loomine/Arvutamine/Arvutaja.java b/10_tunnirakenduse_lahendus/src/Loomine/Arvutamine/Arvutaja.java new file mode 100644 index 00000000..8b03548f --- /dev/null +++ b/10_tunnirakenduse_lahendus/src/Loomine/Arvutamine/Arvutaja.java @@ -0,0 +1,5 @@ +package Loomine.Arvutamine; + +interface Arvutaja { + V f(S sisend); +} diff --git a/10_tunnirakenduse_lahendus/src/Loomine/Arvutamine/Esitaheleidja.java b/10_tunnirakenduse_lahendus/src/Loomine/Arvutamine/Esitaheleidja.java new file mode 100644 index 00000000..ea8564e9 --- /dev/null +++ b/10_tunnirakenduse_lahendus/src/Loomine/Arvutamine/Esitaheleidja.java @@ -0,0 +1,5 @@ +package Loomine.Arvutamine; + +public class Esitaheleidja implements Arvutaja{ + public String f(String sisend){return sisend.substring(0,1);}; +} diff --git a/10_tunnirakenduse_lahendus/src/Loomine/Arvutamine/Proov1.java b/10_tunnirakenduse_lahendus/src/Loomine/Arvutamine/Proov1.java new file mode 100644 index 00000000..d7f0b916 --- /dev/null +++ b/10_tunnirakenduse_lahendus/src/Loomine/Arvutamine/Proov1.java @@ -0,0 +1,9 @@ +package Loomine.Arvutamine; + +public class Proov1 { + public static void main(String[] args) { + Arvutaja a = new Esitaheleidja(); + System.out.println(a.f("Tere")); + + } +} diff --git a/10_tunnirakenduse_lahendus/src/Loomine/Arvutamine/Proov2.java b/10_tunnirakenduse_lahendus/src/Loomine/Arvutamine/Proov2.java new file mode 100644 index 00000000..be94d386 --- /dev/null +++ b/10_tunnirakenduse_lahendus/src/Loomine/Arvutamine/Proov2.java @@ -0,0 +1,11 @@ +package Loomine.Arvutamine; + +public class Proov2 { + public static void main(String[] args) { + Arvutaja a = new Puhverdaja(new Esitaheleidja()); + System.out.println(a.f("Tere")); + System.out.println(a.f("Tere")); + System.out.println(a.f("Kere")); + System.out.println(((Puhverdaja)a).puhver); + } +} diff --git a/10_tunnirakenduse_lahendus/src/Loomine/Arvutamine/Puhverdaja.java b/10_tunnirakenduse_lahendus/src/Loomine/Arvutamine/Puhverdaja.java new file mode 100644 index 00000000..6355a43b --- /dev/null +++ b/10_tunnirakenduse_lahendus/src/Loomine/Arvutamine/Puhverdaja.java @@ -0,0 +1,17 @@ +package Loomine.Arvutamine; + +import java.util.*; + +public class Puhverdaja implements Arvutaja { + Arvutaja abiline; + Map puhver = new HashMap(); + public Puhverdaja(Arvutaja a){ + abiline=a; + } + public V f(S sisend){ + if(!puhver.containsKey(sisend)){ + puhver.put(sisend, abiline.f(sisend)); + } + return puhver.get(sisend); + } +} diff --git a/10_tunnirakenduse_lahendus/src/Loomine/EPnimi.java b/10_tunnirakenduse_lahendus/src/Loomine/EPnimi.java new file mode 100644 index 00000000..eae4753f --- /dev/null +++ b/10_tunnirakenduse_lahendus/src/Loomine/EPnimi.java @@ -0,0 +1,12 @@ +package Loomine; + +public class EPnimi { + TypppiNimi eNimi; + TypppiNimi pNimi; + + @Override + public String toString() { + return "Eesnimi= " + eNimi + + ", Perenimi= " + pNimi; + } +} diff --git a/10_tunnirakenduse_lahendus/src/Loomine/PaarideLoendur1.java b/10_tunnirakenduse_lahendus/src/Loomine/PaarideLoendur1.java new file mode 100644 index 00000000..2116049e --- /dev/null +++ b/10_tunnirakenduse_lahendus/src/Loomine/PaarideLoendur1.java @@ -0,0 +1,29 @@ +package Loomine; +import java.util.*; +public class PaarideLoendur1 >{ + Map, Integer> loendur=new TreeMap<>(); + T eelmine=null; + void lisa(T element){ + if(eelmine!=null){ + SamaTyypiPaar uus=new SamaTyypiPaar<>(); + uus.esimene=eelmine; + uus.teine=element; + if(loendur.containsKey(uus)){ + loendur.put(uus, loendur.get(uus)+1); + } else { + loendur.put(uus, 1); + } + } + eelmine=element; + } + + List, Integer>> jarjastatud(){ + List, Integer>> abi = new ArrayList<>(loendur.entrySet()); + Collections.sort(abi, new Comparator, Integer>>(){ + public int compare(Map.Entry, Integer> vorreldav1, Map.Entry, Integer> vorreldav2){ + return vorreldav2.getValue()-vorreldav1.getValue(); + } + }); + return abi; + } +} \ No newline at end of file diff --git a/10_tunnirakenduse_lahendus/src/Loomine/Proov1.java b/10_tunnirakenduse_lahendus/src/Loomine/Proov1.java new file mode 100644 index 00000000..0f43856f --- /dev/null +++ b/10_tunnirakenduse_lahendus/src/Loomine/Proov1.java @@ -0,0 +1,17 @@ +package Loomine; + +public class Proov1 { + public static void main(String[] args) { +// SamaTyypiPaar asukoht=new SamaTyypiPaar<>(); +// asukoht.esimene=7; +// asukoht.teine = 4; +// System.out.println(asukoht.esimene); +// System.out.println(asukoht); //tostring + + // Looge objekt inimese ees- ja perekonnanime tarbeks. Käivitage ja katsetage + EPnimi nimed = new EPnimi<>(); + nimed.eNimi = "Andres"; + nimed.pNimi = "Sikka"; + System.out.println(nimed); + } +} diff --git a/10_tunnirakenduse_lahendus/src/Loomine/Proov2.java b/10_tunnirakenduse_lahendus/src/Loomine/Proov2.java new file mode 100644 index 00000000..2382253e --- /dev/null +++ b/10_tunnirakenduse_lahendus/src/Loomine/Proov2.java @@ -0,0 +1,12 @@ +package Loomine; + +public class Proov2 { + public static void main(String[] args) { + PaarideLoendur1 p1=new PaarideLoendur1<>(); + p1.lisa(2); + p1.lisa(3); + p1.lisa(2); + p1.lisa(3); + System.out.println(p1.loendur); + } +} diff --git a/10_tunnirakenduse_lahendus/src/Loomine/Proov3.java b/10_tunnirakenduse_lahendus/src/Loomine/Proov3.java new file mode 100644 index 00000000..e4ca1513 --- /dev/null +++ b/10_tunnirakenduse_lahendus/src/Loomine/Proov3.java @@ -0,0 +1,13 @@ +package Loomine; + +public class Proov3 { + public static void main(String[] args) { + PaarideLoendur1 p1 = new PaarideLoendur1<>(); + String lause = "Kaval ants ja vanapagana saapad vanapagana laekas"; + for (int i = 0; i < lause.length(); i++) { + p1.lisa(lause.charAt(i)); + } + System.out.println(p1.loendur); + + } +} diff --git a/10_tunnirakenduse_lahendus/src/Loomine/SamaTyypiPaar.java b/10_tunnirakenduse_lahendus/src/Loomine/SamaTyypiPaar.java new file mode 100644 index 00000000..f3f22335 --- /dev/null +++ b/10_tunnirakenduse_lahendus/src/Loomine/SamaTyypiPaar.java @@ -0,0 +1,19 @@ +package Loomine; +import java.util.*; +public class SamaTyypiPaar > + implements Comparable< SamaTyypiPaar >{ + public Tyybinimi esimene; + public Tyybinimi teine; + + @Override + public int compareTo(SamaTyypiPaar vorreldav){ + int vahe1=esimene.compareTo(vorreldav.esimene); + if(vahe1!=0){return vahe1;} + return teine.compareTo(vorreldav.teine); + } + + @Override + public String toString(){ + return "("+esimene+"; "+teine+")"; + } +} \ No newline at end of file diff --git a/10_tunnirakenduse_lahendus/src/Program.java b/10_tunnirakenduse_lahendus/src/Program.java new file mode 100644 index 00000000..a26077bc --- /dev/null +++ b/10_tunnirakenduse_lahendus/src/Program.java @@ -0,0 +1,32 @@ +import java.util.*; + +public class Program { + public static void main(String[] args) { + List eesnimed = new LinkedList<>(); + eesnimed.add("Juku"); + eesnimed.add("Kati"); + eesnimed.add("Mati"); + eesnimed.add("Peeter"); + System.out.println(eesnimed); + eesnimed.add(1, "Juhan"); + System.out.println(eesnimed); + System.out.println(eesnimed.get(0)); + for(String eesnimi: eesnimed){ + System.out.println(eesnimi); + } + Iterator it = eesnimed.iterator(); + while (it.hasNext()){ + String eesnimi=it.next(); + System.out.println(eesnimi); + } + Set nimehulk = new HashSet<>(eesnimed); + System.out.println(nimehulk); + String[] eesnimemassiiv=nimehulk.toArray(new String[]{}); + System.out.println(eesnimemassiiv[0]); + System.out.println(eesnimemassiiv); + int jukuKoht=eesnimed.indexOf("Juku"); + if(jukuKoht>=0){System.out.println("Juku kohal " + jukuKoht);} + else{System.out.println("Juku puudub");} + } +} + diff --git a/10_tunnirakenduse_lahendus/src/Proov2.java b/10_tunnirakenduse_lahendus/src/Proov2.java new file mode 100644 index 00000000..25148481 --- /dev/null +++ b/10_tunnirakenduse_lahendus/src/Proov2.java @@ -0,0 +1,27 @@ +import java.util.HashMap; + +public class Proov2 { + public static void main(String[] args) { + HashMap valvajad=new HashMap<>(); + valvajad.put(1, "Juku"); + valvajad.put(2, "Kati"); + valvajad.put(1, "Mati"); + System.out.println(valvajad); + + // Koostage map, kus võtmeks on eesnimi ning väärtuseks veerandihinne + // Lisage paar väärtust + // Trükkinge tulemused + // Saage muutujasse kätte vaid eesnimed, kuvage need + + HashMap skoorid=new HashMap<>(); + skoorid.put("Kati", 5); + skoorid.put("Hanna", 5); + skoorid.put("Priit", 4); +// System.out.println(skoorid.get("Kati")); + for (String skoor:skoorid.keySet()) { + System.out.println(skoor); + } + + + } +} diff --git a/11_proovikontrolltoo2/README.md b/11_proovikontrolltoo2/README.md new file mode 100644 index 00000000..7c03a532 --- /dev/null +++ b/11_proovikontrolltoo2/README.md @@ -0,0 +1,18 @@ +## Getting Started + +Welcome to the VS Code Java world. Here is a guideline to help you get started to write Java code in Visual Studio Code. + +## Folder Structure + +The workspace contains two folders by default, where: + +- `src`: the folder to maintain sources +- `lib`: the folder to maintain dependencies + +Meanwhile, the compiled output files will be generated in the `bin` folder by default. + +> If you want to customize the folder structure, open `.vscode/settings.json` and update the related settings there. + +## Dependency Management + +The `JAVA PROJECTS` view allows you to manage your dependencies. More details can be found [here](https://github.com/microsoft/vscode-java-dependency#manage-dependencies). diff --git a/11_proovikontrolltoo2/bin/App.class b/11_proovikontrolltoo2/bin/App.class new file mode 100644 index 00000000..f3af279a Binary files /dev/null and b/11_proovikontrolltoo2/bin/App.class differ diff --git a/11_proovikontrolltoo2/bin/Joogipudel.class b/11_proovikontrolltoo2/bin/Joogipudel.class new file mode 100644 index 00000000..18d5d553 Binary files /dev/null and b/11_proovikontrolltoo2/bin/Joogipudel.class differ diff --git a/11_proovikontrolltoo2/bin/Joogivaat.class b/11_proovikontrolltoo2/bin/Joogivaat.class new file mode 100644 index 00000000..9dee457b Binary files /dev/null and b/11_proovikontrolltoo2/bin/Joogivaat.class differ diff --git a/11_proovikontrolltoo2/bin/Jook.class b/11_proovikontrolltoo2/bin/Jook.class new file mode 100644 index 00000000..1d373ebe Binary files /dev/null and b/11_proovikontrolltoo2/bin/Jook.class differ diff --git a/11_proovikontrolltoo2/bin/Kast.class b/11_proovikontrolltoo2/bin/Kast.class new file mode 100644 index 00000000..2e5c7a7f Binary files /dev/null and b/11_proovikontrolltoo2/bin/Kast.class differ diff --git a/11_proovikontrolltoo2/src/App.java b/11_proovikontrolltoo2/src/App.java new file mode 100644 index 00000000..28f283f6 --- /dev/null +++ b/11_proovikontrolltoo2/src/App.java @@ -0,0 +1,19 @@ +public class App { + public static void main(String[] args) throws Exception { + System.out.println("Hello, World!"); + Jook jook1 = new Jook("Coca cola", 1.30, 949.0); + Jook jook2 = new Jook("Viin", 15.99, 949.0); + Jook jook3 = new Jook("Vesi", 0.50, 997.0); + + Joogipudel joogipudel1 = new Joogipudel(1.0, "Plastik", 0.10, null); + Joogipudel joogipudel2 = new Joogipudel(1.0, "Plastik", 0.10, jook1); + // System.out.println(joogipudel2.joogiMassJoogiPudel()); + Joogivaat joogivaat1 = new Joogivaat(512.0, joogipudel1); + + System.out.println(joogivaat1.getRuumala()); + for (int i = 0; i < 512; i++){ + joogivaat1.taidaPudel(); + System.out.println(joogivaat1.getRuumala()); + } + } +} diff --git a/11_proovikontrolltoo2/src/Joogipudel.java b/11_proovikontrolltoo2/src/Joogipudel.java new file mode 100644 index 00000000..da13ea4d --- /dev/null +++ b/11_proovikontrolltoo2/src/Joogipudel.java @@ -0,0 +1,29 @@ +public class Joogipudel { + Double maht; + String pudeliTyyp; + Double pudeliMass; + Double taaraMaksumus; + Jook jook; + + // 1,4 г/см³ == 1400 кг/м³ - пластик + // 2,7 г/см³ == 2700 кг/м³ - алюминий + + public Joogipudel(Double maht, String pudeliTyyp, Double taaraMaksumus, Jook jook){ + this.maht = maht; + this.pudeliTyyp = pudeliTyyp; + this.pudeliMass = maht/1000; + this.taaraMaksumus = taaraMaksumus; + this.jook = jook; + } + + public String joogiMassJoogiPudel(){ + Double joogiMass = Math.round((pudeliMass * jook.tihedus)*100.0)/100.00; + + return "Pudeli ja joogi Mass kokku: " + joogiMass + "kg"; + } + + public Double getMaht(){ + return this.maht; + } + +} \ No newline at end of file diff --git a/11_proovikontrolltoo2/src/Joogivaat.java b/11_proovikontrolltoo2/src/Joogivaat.java new file mode 100644 index 00000000..93da87f1 --- /dev/null +++ b/11_proovikontrolltoo2/src/Joogivaat.java @@ -0,0 +1,41 @@ +public class Joogivaat { + Double ruumala; + Joogipudel joogipudel; + + + public Joogivaat(Double ruumala, Joogipudel joogipudel) { + this.ruumala = ruumala; + this.joogipudel = joogipudel; + } + + + public void taidaPudel(){ + if(this.ruumala == 0.0){ + this.ruumala = 0.0; + } else if(this.ruumala < joogipudel.getMaht()){ + this.ruumala-=this.ruumala; + } else{ + this.ruumala-= joogipudel.maht; + } + } + + public Double getRuumala() { + return Math.round(this.ruumala*100.00)/100.0; + } + + public void setRuumala(Double ruumala) { + this.ruumala = ruumala; + } + + public Joogipudel getJoogipudel() { + return this.joogipudel; + } + + public void setJoogipudel(Joogipudel joogipudel) { + this.joogipudel = joogipudel; + } + + + +} + diff --git a/11_proovikontrolltoo2/src/Jook.java b/11_proovikontrolltoo2/src/Jook.java new file mode 100644 index 00000000..594927f2 --- /dev/null +++ b/11_proovikontrolltoo2/src/Jook.java @@ -0,0 +1,19 @@ +import java.lang.reflect.Constructor; + +public class Jook { + String nimetus; + Double liitriHind; + Double tihedus; + + public Jook(String nimetus, Double liitriHind, Double tihedus){ + this.nimetus = nimetus; + this.liitriHind = liitriHind; + this.tihedus = tihedus; + } + + + + // 997 кг/м³ - вода + // 1030 кг/м3. - кока кола + // 949 кг/м3 - водка +} diff --git a/11_proovikontrolltoo2/src/Kast.java b/11_proovikontrolltoo2/src/Kast.java new file mode 100644 index 00000000..42115721 --- /dev/null +++ b/11_proovikontrolltoo2/src/Kast.java @@ -0,0 +1,11 @@ +public class Kast { + String kastityyp; + Double kastihind; + Double kastimass; + Integer pesadeArv; + + public Kast(String kastityyp, Integer pesadeArv){ + this.kastityyp = kastityyp; + this.pesadeArv = pesadeArv; + } +} diff --git a/12_kontrolltoo2/Reptseptid.txt b/12_kontrolltoo2/Reptseptid.txt new file mode 100644 index 00000000..d16ae186 --- /dev/null +++ b/12_kontrolltoo2/Reptseptid.txt @@ -0,0 +1,198 @@ +Retsepti nimetus: Olivie +Ingridiendid: +Nimetus: Kartul +Toiduaines kogus: 5000.0g +Rasvade kogus: 800.0g +Valgude kogus: 750.0g +Sysivesikute kogus: 1600.0g + +-------------------------------------------------------------------------------------------------- +Nimetus: Hernes +Toiduaines kogus: 300.0g +Rasvade kogus: 45.0g +Valgude kogus: 36.0g +Sysivesikute kogus: 45.0g + +-------------------------------------------------------------------------------------------------- +Nimetus: Sing +Toiduaines kogus: 150.0g +Rasvade kogus: 18.0g +Valgude kogus: 19.5g +Sysivesikute kogus: 45.0g + +-------------------------------------------------------------------------------------------------- +Nimetus: Majonees +Toiduaines kogus: 150.0g +Rasvade kogus: 16.5g +Valgude kogus: 25.5g +Sysivesikute kogus: 60.0g + +-------------------------------------------------------------------------------------------------- +Retsepti nimetus: Olivie +Ingridiendid: +Nimetus: Kartul +Toiduaines kogus: 100.0g +Rasvade kogus: 16.0g +Valgude kogus: 15.0g +Sysivesikute kogus: 32.0g + +-------------------------------------------------------------------------------------------------- +Nimetus: Hernes +Toiduaines kogus: 300.0g +Rasvade kogus: 45.0g +Valgude kogus: 36.0g +Sysivesikute kogus: 45.0g + +-------------------------------------------------------------------------------------------------- +Nimetus: Sing +Toiduaines kogus: 150.0g +Rasvade kogus: 18.0g +Valgude kogus: 19.5g +Sysivesikute kogus: 45.0g + +-------------------------------------------------------------------------------------------------- +Nimetus: Majonees +Toiduaines kogus: 150.0g +Rasvade kogus: 16.5g +Valgude kogus: 25.5g +Sysivesikute kogus: 60.0g + +-------------------------------------------------------------------------------------------------- +Retsepti nimetus: Olivie +Ingridiendid: +Nimetus: Kartul +Toiduaines kogus: 100.0g +Rasvade kogus: 16.0g +Valgude kogus: 15.0g +Sysivesikute kogus: 32.0g + +-------------------------------------------------------------------------------------------------- +Nimetus: Hernes +Toiduaines kogus: 300.0g +Rasvade kogus: 45.0g +Valgude kogus: 36.0g +Sysivesikute kogus: 45.0g + +-------------------------------------------------------------------------------------------------- +Nimetus: Sing +Toiduaines kogus: 150.0g +Rasvade kogus: 18.0g +Valgude kogus: 19.5g +Sysivesikute kogus: 45.0g + +-------------------------------------------------------------------------------------------------- +Nimetus: Majonees +Toiduaines kogus: 150.0g +Rasvade kogus: 16.5g +Valgude kogus: 25.5g +Sysivesikute kogus: 60.0g + +-------------------------------------------------------------------------------------------------- +Retsepti nimetus: Olivie +Ingridiendid: +Nimetus: Kartul +Toiduaines kogus: 100.0g +Rasvade kogus: 16.0g +Valgude kogus: 15.0g +Sysivesikute kogus: 32.0g + +-------------------------------------------------------------------------------------------------- +Nimetus: Hernes +Toiduaines kogus: 300.0g +Rasvade kogus: 45.0g +Valgude kogus: 36.0g +Sysivesikute kogus: 45.0g + +-------------------------------------------------------------------------------------------------- +Nimetus: Sing +Toiduaines kogus: 150.0g +Rasvade kogus: 18.0g +Valgude kogus: 19.5g +Sysivesikute kogus: 45.0g + +-------------------------------------------------------------------------------------------------- +Nimetus: Majonees +Toiduaines kogus: 150.0g +Rasvade kogus: 16.5g +Valgude kogus: 25.5g +Sysivesikute kogus: 60.0g + +-------------------------------------------------------------------------------------------------- +Retsepti nimetus: Olivie +Ingridiendid: +Nimetus: Kartul +Toiduaines kogus: 100.0g +Rasvade kogus: 16.0g +Valgude kogus: 15.0g +Sysivesikute kogus: 32.0g + +Nimetus: Hernes +Toiduaines kogus: 300.0g +Rasvade kogus: 45.0g +Valgude kogus: 36.0g +Sysivesikute kogus: 45.0g + +Nimetus: Sing +Toiduaines kogus: 150.0g +Rasvade kogus: 18.0g +Valgude kogus: 19.5g +Sysivesikute kogus: 45.0g + +Nimetus: Majonees +Toiduaines kogus: 150.0g +Rasvade kogus: 16.5g +Valgude kogus: 25.5g +Sysivesikute kogus: 60.0g + +Retsepti nimetus: Olivie +Ingridiendid: +Nimetus: Kartul +Toiduaines kogus: 100.0g +Rasvade kogus: 16.0g +Valgude kogus: 15.0g +Sysivesikute kogus: 32.0g + +Nimetus: Hernes +Toiduaines kogus: 300.0g +Rasvade kogus: 45.0g +Valgude kogus: 36.0g +Sysivesikute kogus: 45.0g + +Nimetus: Sing +Toiduaines kogus: 150.0g +Rasvade kogus: 18.0g +Valgude kogus: 19.5g +Sysivesikute kogus: 45.0g + +Nimetus: Majonees +Toiduaines kogus: 150.0g +Rasvade kogus: 16.5g +Valgude kogus: 25.5g +Sysivesikute kogus: 60.0g + +Retsepti nimetus: Olivie +Ingridiendid: +Nimetus: Kartul +Toiduaines kogus: 5000.0g +Rasvade kogus: 800.0g +Valgude kogus: 750.0g +Sysivesikute kogus: 1600.0g + +Nimetus: Hernes +Toiduaines kogus: 300.0g +Rasvade kogus: 45.0g +Valgude kogus: 36.0g +Sysivesikute kogus: 45.0g + +Nimetus: Sing +Toiduaines kogus: 150.0g +Rasvade kogus: 18.0g +Valgude kogus: 19.5g +Sysivesikute kogus: 45.0g + +Nimetus: Majonees +Toiduaines kogus: 150.0g +Rasvade kogus: 16.5g +Valgude kogus: 25.5g +Sysivesikute kogus: 60.0g + diff --git a/12_kontrolltoo2/build.gradle b/12_kontrolltoo2/build.gradle new file mode 100644 index 00000000..841bd8ed --- /dev/null +++ b/12_kontrolltoo2/build.gradle @@ -0,0 +1,20 @@ +plugins { + id 'java' +} + +group 'org.example' +version '1.0-SNAPSHOT' + +repositories { + mavenCentral() +} + +dependencies { + testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1' + testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1' +} + +test { + useJUnitPlatform() + ignoreFailures = true +} \ No newline at end of file diff --git a/12_kontrolltoo2/build/classes/java/main/Kartul.class b/12_kontrolltoo2/build/classes/java/main/Kartul.class new file mode 100644 index 00000000..4cd5da7f Binary files /dev/null and b/12_kontrolltoo2/build/classes/java/main/Kartul.class differ diff --git a/12_kontrolltoo2/build/classes/java/main/Program.class b/12_kontrolltoo2/build/classes/java/main/Program.class new file mode 100644 index 00000000..f6d3a08e Binary files /dev/null and b/12_kontrolltoo2/build/classes/java/main/Program.class differ diff --git a/12_kontrolltoo2/build/classes/java/main/Retsept.class b/12_kontrolltoo2/build/classes/java/main/Retsept.class new file mode 100644 index 00000000..c319fdf6 Binary files /dev/null and b/12_kontrolltoo2/build/classes/java/main/Retsept.class differ diff --git a/12_kontrolltoo2/build/classes/java/main/Toiduaine.class b/12_kontrolltoo2/build/classes/java/main/Toiduaine.class new file mode 100644 index 00000000..37f553ba Binary files /dev/null and b/12_kontrolltoo2/build/classes/java/main/Toiduaine.class differ diff --git a/12_kontrolltoo2/build/classes/java/main/ToidudeStat.class b/12_kontrolltoo2/build/classes/java/main/ToidudeStat.class new file mode 100644 index 00000000..9d29047c Binary files /dev/null and b/12_kontrolltoo2/build/classes/java/main/ToidudeStat.class differ diff --git a/12_kontrolltoo2/build/classes/java/main/Toidukomponendid.class b/12_kontrolltoo2/build/classes/java/main/Toidukomponendid.class new file mode 100644 index 00000000..71adc11f Binary files /dev/null and b/12_kontrolltoo2/build/classes/java/main/Toidukomponendid.class differ diff --git a/12_kontrolltoo2/build/classes/java/test/AppTest.class b/12_kontrolltoo2/build/classes/java/test/AppTest.class new file mode 100644 index 00000000..de64e088 Binary files /dev/null and b/12_kontrolltoo2/build/classes/java/test/AppTest.class differ diff --git a/12_kontrolltoo2/build/reports/tests/test/classes/AppTest.html b/12_kontrolltoo2/build/reports/tests/test/classes/AppTest.html new file mode 100644 index 00000000..f98274b1 --- /dev/null +++ b/12_kontrolltoo2/build/reports/tests/test/classes/AppTest.html @@ -0,0 +1,199 @@ + + + + + +Test results - Class AppTest + + + + + +
+

Class AppTest

+ +
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
1
+

failures

+
+
+
+
0
+

ignored

+
+
+
+
0.020s
+

duration

+
+
+
+
+
+
0%
+

successful

+
+
+
+
+ +
+

Failed tests

+
+ +

andmeteTest()

+ +
org.opentest4j.AssertionFailedError: expected: <17.0> but was: <10.0>
+	at app//org.junit.jupiter.api.AssertionUtils.fail(AssertionUtils.java:55)
+	at app//org.junit.jupiter.api.AssertionUtils.failNotEqual(AssertionUtils.java:62)
+	at app//org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:182)
+	at app//org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:177)
+	at app//org.junit.jupiter.api.Assertions.assertEquals(Assertions.java:894)
+	at app//AppTest.andmeteTest(AppTest.java:12)
+	at java.base@17.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at java.base@17.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
+	at java.base@17.0.2/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.base@17.0.2/java.lang.reflect.Method.invoke(Method.java:568)
+	at app//org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:725)
+	at app//org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
+	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
+	at app//org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:149)
+	at app//org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:140)
+	at app//org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:84)
+	at app//org.junit.jupiter.engine.execution.ExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(ExecutableInvoker.java:115)
+	at app//org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105)
+	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
+	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
+	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
+	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
+	at app//org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104)
+	at app//org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:98)
+	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7(TestMethodTestDescriptor.java:214)
+	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
+	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:210)
+	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:135)
+	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:66)
+	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151)
+	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
+	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
+	at app//org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
+	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
+	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
+	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
+	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
+	at java.base@17.0.2/java.util.ArrayList.forEach(ArrayList.java:1511)
+	at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
+	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
+	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
+	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
+	at app//org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
+	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
+	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
+	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
+	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
+	at java.base@17.0.2/java.util.ArrayList.forEach(ArrayList.java:1511)
+	at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
+	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
+	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
+	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
+	at app//org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
+	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
+	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
+	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
+	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
+	at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)
+	at app//org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
+	at app//org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)
+	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:108)
+	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88)
+	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54)
+	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67)
+	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52)
+	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:96)
+	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:75)
+	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:99)
+	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:79)
+	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:75)
+	at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:61)
+	at java.base@17.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at java.base@17.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
+	at java.base@17.0.2/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.base@17.0.2/java.lang.reflect.Method.invoke(Method.java:568)
+	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
+	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
+	at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
+	at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
+	at jdk.proxy1/jdk.proxy1.$Proxy2.stop(Unknown Source)
+	at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:193)
+	at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129)
+	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100)
+	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60)
+	at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)
+	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:133)
+	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:71)
+	at app//worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)
+	at app//worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)
+
+
+
+
+
+

Tests

+ + + + + + + + + + + + + +
TestDurationResult
andmeteTest()0.020sfailed
+
+
+ +
+ + diff --git a/12_kontrolltoo2/build/reports/tests/test/css/base-style.css b/12_kontrolltoo2/build/reports/tests/test/css/base-style.css new file mode 100644 index 00000000..4afa73e3 --- /dev/null +++ b/12_kontrolltoo2/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/12_kontrolltoo2/build/reports/tests/test/css/style.css b/12_kontrolltoo2/build/reports/tests/test/css/style.css new file mode 100644 index 00000000..3dc4913e --- /dev/null +++ b/12_kontrolltoo2/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/12_kontrolltoo2/build/reports/tests/test/index.html b/12_kontrolltoo2/build/reports/tests/test/index.html new file mode 100644 index 00000000..91b5d3e2 --- /dev/null +++ b/12_kontrolltoo2/build/reports/tests/test/index.html @@ -0,0 +1,145 @@ + + + + + +Test results - Test Summary + + + + + +
+

Test Summary

+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
1
+

failures

+
+
+
+
0
+

ignored

+
+
+
+
0.020s
+

duration

+
+
+
+
+
+
0%
+

successful

+
+
+
+
+ +
+

Failed tests

+ +
+
+

Packages

+ + + + + + + + + + + + + + + + + + + + + +
PackageTestsFailuresIgnoredDurationSuccess rate
+default-package +1100.020s0%
+
+
+

Classes

+ + + + + + + + + + + + + + + + + + + + + +
ClassTestsFailuresIgnoredDurationSuccess rate
+AppTest +1100.020s0%
+
+
+ +
+ + diff --git a/12_kontrolltoo2/build/reports/tests/test/js/report.js b/12_kontrolltoo2/build/reports/tests/test/js/report.js new file mode 100644 index 00000000..83bab4a1 --- /dev/null +++ b/12_kontrolltoo2/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/12_kontrolltoo2/build/reports/tests/test/packages/default-package.html b/12_kontrolltoo2/build/reports/tests/test/packages/default-package.html new file mode 100644 index 00000000..b9217a89 --- /dev/null +++ b/12_kontrolltoo2/build/reports/tests/test/packages/default-package.html @@ -0,0 +1,115 @@ + + + + + +Test results - Default package + + + + + +
+

Default package

+ +
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
1
+

failures

+
+
+
+
0
+

ignored

+
+
+
+
0.020s
+

duration

+
+
+
+
+
+
0%
+

successful

+
+
+
+
+ +
+

Failed tests

+ +
+
+

Classes

+ + + + + + + + + + + + + + + + + + + +
ClassTestsFailuresIgnoredDurationSuccess rate
+AppTest +1100.020s0%
+
+
+ +
+ + diff --git a/12_kontrolltoo2/build/test-results/test/TEST-AppTest.xml b/12_kontrolltoo2/build/test-results/test/TEST-AppTest.xml new file mode 100644 index 00000000..25079909 --- /dev/null +++ b/12_kontrolltoo2/build/test-results/test/TEST-AppTest.xml @@ -0,0 +1,99 @@ + + + + + org.opentest4j.AssertionFailedError: expected: <17.0> but was: <10.0> + at app//org.junit.jupiter.api.AssertionUtils.fail(AssertionUtils.java:55) + at app//org.junit.jupiter.api.AssertionUtils.failNotEqual(AssertionUtils.java:62) + at app//org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:182) + at app//org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:177) + at app//org.junit.jupiter.api.Assertions.assertEquals(Assertions.java:894) + at app//AppTest.andmeteTest(AppTest.java:12) + at java.base@17.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at java.base@17.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) + at java.base@17.0.2/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base@17.0.2/java.lang.reflect.Method.invoke(Method.java:568) + at app//org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:725) + at app//org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60) + at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131) + at app//org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:149) + at app//org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:140) + at app//org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:84) + at app//org.junit.jupiter.engine.execution.ExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(ExecutableInvoker.java:115) + at app//org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105) + at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106) + at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64) + at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45) + at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37) + at app//org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104) + at app//org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:98) + at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7(TestMethodTestDescriptor.java:214) + at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:210) + at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:135) + at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:66) + at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151) + at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) + at app//org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) + at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) + at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) + at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) + at java.base@17.0.2/java.util.ArrayList.forEach(ArrayList.java:1511) + at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) + at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) + at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) + at app//org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) + at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) + at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) + at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) + at java.base@17.0.2/java.util.ArrayList.forEach(ArrayList.java:1511) + at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) + at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) + at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) + at app//org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) + at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) + at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) + at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) + at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) + at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) + at app//org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) + at app//org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:108) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67) + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52) + at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:96) + at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:75) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:99) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:79) + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:75) + at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:61) + at java.base@17.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at java.base@17.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) + at java.base@17.0.2/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base@17.0.2/java.lang.reflect.Method.invoke(Method.java:568) + at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) + at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) + at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33) + at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94) + at jdk.proxy1/jdk.proxy1.$Proxy2.stop(Unknown Source) + at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:193) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100) + at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60) + at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56) + at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:133) + at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:71) + at app//worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69) + at app//worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74) + + + + + diff --git a/12_kontrolltoo2/build/test-results/test/binary/output.bin b/12_kontrolltoo2/build/test-results/test/binary/output.bin new file mode 100644 index 00000000..e69de29b diff --git a/12_kontrolltoo2/build/test-results/test/binary/output.bin.idx b/12_kontrolltoo2/build/test-results/test/binary/output.bin.idx new file mode 100644 index 00000000..f76dd238 Binary files /dev/null and b/12_kontrolltoo2/build/test-results/test/binary/output.bin.idx differ diff --git a/12_kontrolltoo2/build/test-results/test/binary/results.bin b/12_kontrolltoo2/build/test-results/test/binary/results.bin new file mode 100644 index 00000000..067a692e Binary files /dev/null and b/12_kontrolltoo2/build/test-results/test/binary/results.bin differ diff --git a/12_kontrolltoo2/build/tmp/compileJava/previous-compilation-data.bin b/12_kontrolltoo2/build/tmp/compileJava/previous-compilation-data.bin new file mode 100644 index 00000000..8d875ea2 Binary files /dev/null and b/12_kontrolltoo2/build/tmp/compileJava/previous-compilation-data.bin differ diff --git a/12_kontrolltoo2/build/tmp/compileTestJava/previous-compilation-data.bin b/12_kontrolltoo2/build/tmp/compileTestJava/previous-compilation-data.bin new file mode 100644 index 00000000..843edc28 Binary files /dev/null and b/12_kontrolltoo2/build/tmp/compileTestJava/previous-compilation-data.bin differ diff --git a/12_kontrolltoo2/gradle/wrapper/gradle-wrapper.jar b/12_kontrolltoo2/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 00000000..41d9927a Binary files /dev/null and b/12_kontrolltoo2/gradle/wrapper/gradle-wrapper.jar differ diff --git a/12_kontrolltoo2/gradle/wrapper/gradle-wrapper.properties b/12_kontrolltoo2/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 00000000..41dfb879 --- /dev/null +++ b/12_kontrolltoo2/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/12_kontrolltoo2/gradlew b/12_kontrolltoo2/gradlew new file mode 100644 index 00000000..1b6c7873 --- /dev/null +++ b/12_kontrolltoo2/gradlew @@ -0,0 +1,234 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit + +APP_NAME="Gradle" +APP_BASE_NAME=${0##*/} + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + +# Collect all arguments for the java command; +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of +# shell script including quotes and variable substitutions, so put them in +# double quotes to make sure that they get re-expanded; and +# * put everything else in single quotes, so that it's not re-expanded. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/12_kontrolltoo2/gradlew.bat b/12_kontrolltoo2/gradlew.bat new file mode 100644 index 00000000..ac1b06f9 --- /dev/null +++ b/12_kontrolltoo2/gradlew.bat @@ -0,0 +1,89 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/12_kontrolltoo2/settings.gradle b/12_kontrolltoo2/settings.gradle new file mode 100644 index 00000000..f9d7ef3d --- /dev/null +++ b/12_kontrolltoo2/settings.gradle @@ -0,0 +1,2 @@ +rootProject.name = 'Salat_gradle_kt2' + diff --git a/12_kontrolltoo2/src/main/java/Kartul.java b/12_kontrolltoo2/src/main/java/Kartul.java new file mode 100644 index 00000000..d25ca19b --- /dev/null +++ b/12_kontrolltoo2/src/main/java/Kartul.java @@ -0,0 +1,6 @@ +public class Kartul extends Toiduaine{ + // Rasvade p on 0.1 alati + public Kartul(String nimetus, Double valgudP, Double rasvadP, Double sysivesikudP) { + super(nimetus, valgudP, rasvadP, sysivesikudP); + } +} diff --git a/12_kontrolltoo2/src/main/java/Program.java b/12_kontrolltoo2/src/main/java/Program.java new file mode 100644 index 00000000..720b3783 --- /dev/null +++ b/12_kontrolltoo2/src/main/java/Program.java @@ -0,0 +1,39 @@ +import java.io.IOException; +import java.util.ArrayList; + +public class Program { + public static void main(String[] args) throws IOException { + Toiduaine ta1 = new Toiduaine("Kartul", 0.15, 0.16, 0.32); + Toiduaine ta2 = new Toiduaine("Porgand", 0.12, 0.15, 0.15); + Toiduaine ta3 = new Toiduaine("Sing", 0.13, 0.12, 0.3); + Toiduaine ta4 = new Toiduaine("Majonees", 0.17, 0.11, 0.4); + Toiduaine ta5 = new Toiduaine("Hernes", 0.12, 0.15, 0.15); + Toiduaine ta6 = new Toiduaine("Munad", 0.12, 0.15, 0.15); + Toiduaine ta7 = new Toiduaine("Soolased kurgid", 0.12, 0.15, 0.15); + Toiduaine ta8 = new Toiduaine("Sool", 0.12, 0.15, 0.15); + Toiduaine ta9 = new Toiduaine("Pipar", 0.12, 0.15, 0.15); + Toiduaine ta10 = new Toiduaine("Sibul", 0.12, 0.15, 0.15); + + ArrayList tka = new ArrayList<>(); + + + tka.add(new Toidukomponendid(ta1, 120.0)); + tka.add(new Toidukomponendid(ta2, 300.0)); + tka.add(new Toidukomponendid(ta3, 290.0)); + tka.add(new Toidukomponendid(ta4, 140.0)); + tka.add(new Toidukomponendid(ta5, 120.0)); + tka.add(new Toidukomponendid(ta6, 100.0)); + tka.add(new Toidukomponendid(ta7, 100.0)); + tka.add(new Toidukomponendid(ta8, 5.0)); + tka.add(new Toidukomponendid(ta9, 1.0)); + tka.add(new Toidukomponendid(ta10, 10.0)); + + +// ToidudeStat ts1 = new ToidudeStat("Olivie", tka); + +// ArrayList tka1 = new ArrayList<>(); + + Retsept re = new Retsept("Olivje", tka); + System.out.println(re.toiduaineteVajadus(5000.0)); + } +} diff --git a/12_kontrolltoo2/src/main/java/Retsept.java b/12_kontrolltoo2/src/main/java/Retsept.java new file mode 100644 index 00000000..a60c8a94 --- /dev/null +++ b/12_kontrolltoo2/src/main/java/Retsept.java @@ -0,0 +1,31 @@ +import java.util.ArrayList; + +public class Retsept { + // Lähtume 1000g + String nimetus; + ArrayList toidukomponendidStandartList; + Double kaal = 0.0; + + public Retsept(String nimetus, ArrayList toidukomponendidStandartList) { + this.nimetus = nimetus; + this.toidukomponendidStandartList = toidukomponendidStandartList; + for (int i = 0; i < toidukomponendidStandartList.size(); i++){ + kaal += toidukomponendidStandartList.get(i).getKogus(); + } + System.out.println("Alg kaal - "+kaal+"g"); + } + + public String toiduaineteVajadus(Double omaKaal) { + String uusToiduaineteKogus = ""; + Double koef = 0.0; + koef = omaKaal / kaal; + Double kokkuKaalProov = 0.0; + for (int i = 0; i < toidukomponendidStandartList.size(); i++){ + Double uusKaal = koef*toidukomponendidStandartList.get(i).kogus; + uusToiduaineteKogus += "Ingridient: " + toidukomponendidStandartList.get(i).td.getNimetus()+" " + Math.round(uusKaal *100.00)/100.00 + "g" + "\n"; + kokkuKaalProov += uusKaal; + } + uusToiduaineteKogus += "Uuuskaal: " + Math.round(kokkuKaalProov *100.00)/100.00 + "g"; + return uusToiduaineteKogus; + } +} diff --git a/12_kontrolltoo2/src/main/java/Toiduaine.java b/12_kontrolltoo2/src/main/java/Toiduaine.java new file mode 100644 index 00000000..19a2f567 --- /dev/null +++ b/12_kontrolltoo2/src/main/java/Toiduaine.java @@ -0,0 +1,59 @@ +public class Toiduaine{ + String nimetus; + Double valgudP; + Double rasvadP; + Double sysivesikudP; + + public Toiduaine(String nimetus, Double valgudP, Double rasvadP, Double sysivesikudP) { + this.nimetus = nimetus; + if(valgudP > 100.0 ){ + System.out.println("Valgud rotsentuaalselt ei saa ületada 100%"); + } else { + this.valgudP = valgudP; + } + + if(rasvadP > 100.0){ + System.out.println("Rasvad protsentuaalselt ei saa ületada 100%"); + } else { + this.rasvadP = rasvadP; + } + + if(sysivesikudP > 100.0){ + System.out.println("Süsivesikud protsentuaalselt ei saa ületada 100%"); + } else { + this.sysivesikudP = sysivesikudP; + } + } + + public String getNimetus() { + return nimetus; + } + + public void setNimetus(String nimetus) { + this.nimetus = nimetus; + } + + public Double getValgudP() { + return valgudP; + } + + public void setValgudP(Double valgudP) { + this.valgudP = valgudP; + } + + public Double getRasvadP() { + return rasvadP; + } + + public void setRasvadP(Double rasvadP) { + this.rasvadP = rasvadP; + } + + public Double getSysivesikudP() { + return sysivesikudP; + } + + public void setSysivesikudP(Double sysivesikudP) { + this.sysivesikudP = sysivesikudP; + } +} diff --git a/12_kontrolltoo2/src/main/java/ToidudeStat.java b/12_kontrolltoo2/src/main/java/ToidudeStat.java new file mode 100644 index 00000000..d024efff --- /dev/null +++ b/12_kontrolltoo2/src/main/java/ToidudeStat.java @@ -0,0 +1,47 @@ +import java.io.BufferedWriter; +import java.io.FileWriter; +import java.io.IOException; +import java.io.PrintWriter; +import java.util.ArrayList; + +public class ToidudeStat { + String nimetus; + Toidukomponendid tk; + ArrayList tka = new ArrayList<>(); + + + FileWriter fw = null; + BufferedWriter bw = null; + PrintWriter pw = null; + + + public ToidudeStat(String nimetus, ArrayList alTk) throws IOException { + this.nimetus = nimetus; + this.tka = alTk; + + fw = new FileWriter("Reptseptid.txt", true); + bw = new BufferedWriter(fw); + pw = new PrintWriter(bw); + + System.out.println("Retsepti nimetus: " + nimetus); + pw.println("Retsepti nimetus: " + nimetus); + System.out.println("Ingridiendid:"); + pw.println("Ingridiendid: "); + + for (int i = 0; i < alTk.size(); i++){ + System.out.println("Nimetus: " + alTk.get(i).td.getNimetus()); + pw.println("Nimetus: " + alTk.get(i).td.getNimetus()); + System.out.println("Toiduaines kogus: " + alTk.get(i).kogus + "g"); + pw.println("Toiduaines kogus: " + alTk.get(i).kogus + "g" ); + System.out.println("Rasvade kogus: " + alTk.get(i).rasvuKoguseArvutamine() + "g"); + pw.println("Rasvade kogus: " + alTk.get(i).rasvuKoguseArvutamine() + "g"); + System.out.println("Valgude kogus: " + alTk.get(i).valkudeKoguseArvutamine() + "g"); + pw.println("Valgude kogus: " + alTk.get(i).valkudeKoguseArvutamine() + "g"); + System.out.println("Sysivesikute kogus: " + alTk.get(i).sysivesikuteKoguseArvutamine() + "g" + "\n"); + pw.println("Sysivesikute kogus: " + alTk.get(i).sysivesikuteKoguseArvutamine() + "g" + "\n"); +// pw.println("--------------------------------------------------------------------------------------------------"); + } + + pw.flush(); + } +} diff --git a/12_kontrolltoo2/src/main/java/Toidukomponendid.java b/12_kontrolltoo2/src/main/java/Toidukomponendid.java new file mode 100644 index 00000000..afd0310a --- /dev/null +++ b/12_kontrolltoo2/src/main/java/Toidukomponendid.java @@ -0,0 +1,27 @@ +public class Toidukomponendid{//; { + Toiduaine td; + Double kogus; // grammides + + public Toidukomponendid(Toiduaine td, Double kogus) { + this.td = td; + this.kogus = kogus; + } + + public Double rasvuKoguseArvutamine(){ + return Math.round((td.getRasvadP() * kogus) * 100.0)/ 100.0; + } + public Double valkudeKoguseArvutamine(){ + return Math.round((td.getValgudP() * kogus) * 100.0)/ 100.0; + } + public Double sysivesikuteKoguseArvutamine(){ + return Math.round((td.getSysivesikudP() * kogus) * 100.0)/ 100.0; + } + + public Double getKogus() { + return kogus; + } + + public void setKogus(Double kogus) { + this.kogus = kogus; + } +} diff --git a/12_kontrolltoo2/src/main/java/ylesanne.txt b/12_kontrolltoo2/src/main/java/ylesanne.txt new file mode 100644 index 00000000..dc4ae04c --- /dev/null +++ b/12_kontrolltoo2/src/main/java/ylesanne.txt @@ -0,0 +1,6 @@ +Salat + +* Koosta klass toiduaine tarbeks (nimetus, valkude, rasvade ja süsivesikute protsent). Protsent kokku ei saa ületada 100 - muidu antakse veateade. Loo mõni toiduaine (nt. kartul, hapukoor, vorst). Andmed saab nt (https://tka.nutridata.ee/et/). Sealt kartul (https://tka.nutridata.ee/et/toidud/280). +Koosta klass toidukomponendi tarbeks (kogus, viit toiduainele). Loo mõned toidukomponendid (nt. 100 g kartuleid, 30 g hapukoort, 50 g vorsti). Lisa toidukomponendile käsklus selle sees leiduva rasvakoguse arvutamiseks. +* Koosta klass toidu jaoks (nimetus, toidukomponendid). Toidule käsklused küsimaks sisalduvate valkude, rasvade ja süsivesikute kogust. Loo retsepti järgi toit (nt. kartulisalat), küsi salatis leiduvate toitainete kogused. Koosta rakendus, kus näidatakse valitud toidu etteantud koguse (nt. 5 kg kartulisalati) jaoks vajalikud toiduained. +* Võimalda toidu andmeid kirjutada tekstifaili(desse) ja lugeda tagasi. Võib eeldada, et toiduaine, toidukomponendi ning toidu nimetus on unikaalne. Kontrolli töö õigsust automaattestidega. \ No newline at end of file diff --git a/12_kontrolltoo2/src/test/java/AppTest.java b/12_kontrolltoo2/src/test/java/AppTest.java new file mode 100644 index 00000000..f12e5fa3 --- /dev/null +++ b/12_kontrolltoo2/src/test/java/AppTest.java @@ -0,0 +1,16 @@ +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.Assertions; + +import static org.junit.jupiter.api.Assertions.assertEquals; + + +public class AppTest { + + @Test public void andmeteTest(){ + Assertions.assertEquals(0.0, new Toidukomponendid(new Toiduaine("Kartul", 0.15, 0.1, 0.3), 0.0).rasvuKoguseArvutamine()); + Assertions.assertEquals(10.0, new Toidukomponendid(new Toiduaine("Kartul", 0.15, 0.1, 0.3), 100.0).rasvuKoguseArvutamine()); + Assertions.assertEquals(17.0, new Toidukomponendid(new Toiduaine("Kartul", 0.15, 0.1, 0.3), 100.0).rasvuKoguseArvutamine()); +// Assertions.assertEquals(10.0, new Toidukomponendid(new Toiduaine("Kartul", 0.12, 0.15, 0.57), 100.0).sysivesikuteKoguseArvutamine()); + + } +}