From bd8dbd49a427d9bc22757c033a86df366abef246 Mon Sep 17 00:00:00 2001 From: EgorShalak Date: Wed, 2 Mar 2022 18:22:58 +0300 Subject: [PATCH 1/4] Task 1 --- coolName/pom.xml | 19 +++ coolName/src/main/java/GroupOfStudents.java | 137 ++++++++++++++++++ .../src/test/java/GroupOfStudentsTest.java | 92 ++++++++++++ pom.xml | 8 +- 4 files changed, 254 insertions(+), 2 deletions(-) create mode 100644 coolName/pom.xml create mode 100644 coolName/src/main/java/GroupOfStudents.java create mode 100644 coolName/src/test/java/GroupOfStudentsTest.java diff --git a/coolName/pom.xml b/coolName/pom.xml new file mode 100644 index 0000000..507d66a --- /dev/null +++ b/coolName/pom.xml @@ -0,0 +1,19 @@ + + + + programming-lab-example + ru.spbstu.insys + 1.0-SNAPSHOT + + 4.0.0 + + coolName + + + 16 + 16 + + + \ No newline at end of file diff --git a/coolName/src/main/java/GroupOfStudents.java b/coolName/src/main/java/GroupOfStudents.java new file mode 100644 index 0000000..09f8bb0 --- /dev/null +++ b/coolName/src/main/java/GroupOfStudents.java @@ -0,0 +1,137 @@ +import java.util.*; + + +public class GroupOfStudents { + private final Map rating = new HashMap<>(); + + public int size() { + return rating.size(); + } + + void addStudent (String student, String subjects) { + if (student.isBlank() || rating.containsKey(student)) + throw new IllegalArgumentException(); + rating.put(student, subjects); + } + + + void deleteStudent (String student) { + if (student.isBlank() || !rating.containsKey(student)) + throw new IllegalArgumentException(); + rating.remove(student); + } + + void changeMark (String student, String subject, int mark) { + if (student.isBlank() || subject.isBlank() || mark <= 0 || !rating.containsKey(student)) + throw new IllegalArgumentException(); + int i = 0; + String oldItems = rating.get(student); + String[] items = rating.get(student).split(", "); + StringBuilder newItems = new StringBuilder(); + if (items.length == 0) + throw new IllegalArgumentException(); + for (String item : items) { + if (item.isBlank()) + throw new IllegalArgumentException(); + if (item.split(" ").length != 2) + throw new IllegalArgumentException(); + if (item.split(" ")[0].equals(subject)) { + newItems.append(item.split(" ")[0]); + newItems.append(" "); + newItems.append(mark); + } else { + newItems.append(item); + } + if (i != items.length - 1) newItems.append(", "); + i++; + } + if (oldItems.equals(newItems.toString())) + throw new IllegalArgumentException(); + rating.put(student, newItems.toString()); + } + + + void addMark (String student, String subject, int mark) { + if (student.isBlank() || subject.isBlank() || mark <= 0 || !rating.containsKey(student)) + throw new IllegalArgumentException(); + int i = 0; + String[] items = rating.get(student).split(", "); + String oldItems = rating.get(student); + StringBuilder newItems = new StringBuilder(); + if (items.length == 0) + throw new IllegalArgumentException(); + for (String item : items) { + if (item.isBlank()) + throw new IllegalArgumentException(); + if (item.split(" ").length < 1) + throw new IllegalArgumentException(); + else if (item.split(" ").length == 1) { + newItems.append(item.split(" ")[0]); + newItems.append(" "); + newItems.append(mark); + if (i != items.length - 1) newItems.append(", "); + i++; + } else { + newItems.append(item); + if (i != items.length - 1) newItems.append(", "); + i++; + } + } + if (oldItems.equals(newItems.toString())) + throw new IllegalArgumentException(); + rating.put(student, newItems.toString()); + } + + + + void deleteMark (String student, String subject) { + if (student.isBlank() || subject.isBlank() || !rating.containsKey(student)) + throw new IllegalArgumentException(); + int i = 0; + String[] items = rating.get(student).split(", "); + String oldItems = rating.get(student); + StringBuilder newItems = new StringBuilder(); + if (items.length == 0) + throw new IllegalArgumentException(); + for (String item : items) { + if (item.isBlank()) + throw new IllegalArgumentException(); + if (item.split(" ").length < 1) + throw new IllegalArgumentException(); + if (item.split(" ")[0].equals(subject)) { + newItems.append(subject); + } else { + newItems.append(item); + } + if (i != items.length - 1) newItems.append(", "); + i++; + } + if (oldItems.equals(newItems.toString())) + throw new IllegalArgumentException(); + rating.put(student, newItems.toString()); + } + + public String search(String student) { + if (student.isBlank() || !rating.containsKey(student)) + throw new IllegalArgumentException(); + return rating.get(student); + } + + + + void addSubject (String subject) { + if (subject.isBlank()) + throw new IllegalArgumentException(); + for (Map.Entry entry: rating.entrySet()) { + String student = entry.getKey(); + String subjects = entry.getValue(); + String newSubjects; + if (subjects.isBlank()) { + newSubjects = subjects + subject; + } else { + newSubjects = subjects + ", " + subject; + } + rating.put(student, newSubjects); + } + } +} \ No newline at end of file diff --git a/coolName/src/test/java/GroupOfStudentsTest.java b/coolName/src/test/java/GroupOfStudentsTest.java new file mode 100644 index 0000000..e0cafe0 --- /dev/null +++ b/coolName/src/test/java/GroupOfStudentsTest.java @@ -0,0 +1,92 @@ +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +class GroupOfStudentsTest { + + + private GroupOfStudents testGroup() { + GroupOfStudents exampleGroup = new GroupOfStudents(); + exampleGroup.addStudent("Макаров Иван Дмитриевич", "Биология 5, Фармацевтика 3, Политология 1"); + exampleGroup.addStudent("Мартынов Аскольд Никитевич", "Биология 5, Фармацевтика 3"); + exampleGroup.addStudent("Алексеев Юлий Станиславович", "Фармацевтика 3, Политология 1"); + exampleGroup.addStudent("Соловьёв Велор Владленович", "Фармацевтика 3, Философия"); + return exampleGroup; + } + + @Test + void addStudent() { + GroupOfStudents exampleGroup = testGroup(); + exampleGroup.addStudent("Веселов Венедикт Донатович", "Биология 5, Философия 4, Геометрия 2"); + assertEquals("Биология 5, Философия 4, Геометрия 2", + exampleGroup.search("Веселов Венедикт Донатович")); + assertThrows(IllegalArgumentException.class, + () -> exampleGroup.addStudent("Веселов Венедикт Донатович", "Биология 5, Философия 4, Геометрия 2")); + assertThrows(IllegalArgumentException.class, + () -> exampleGroup.addStudent("", "Биология 5, Фармацевтика 3, Политология 1")); + } + + @Test + void deleteStudent() { + GroupOfStudents exampleGroup = testGroup(); + exampleGroup.deleteStudent("Макаров Иван Дмитриевич"); + assertEquals(3, exampleGroup.size()); + assertThrows(IllegalArgumentException.class, () -> exampleGroup.deleteStudent("")); + assertThrows(IllegalArgumentException.class, () -> exampleGroup.deleteStudent("Павлов Сергей Кимович")); + } + + @Test + void addMark() { + GroupOfStudents exampleGroup = testGroup(); + exampleGroup.addStudent("Павлов Сергей Кимович", "Биология 5, Геометрия, Философия 4"); + exampleGroup.addMark("Соловьёв Велор Владленович", "Философия", 4); + exampleGroup.addMark("Павлов Сергей Кимович", "Геометрия", 5); + assertEquals("Биология 5, Геометрия 5, Философия 4", exampleGroup.search("Павлов Сергей Кимович")); + assertEquals("Фармацевтика 3, Философия 4", exampleGroup.search("Соловьёв Велор Владленович")); + assertThrows(IllegalArgumentException.class, () -> exampleGroup.addMark("", "Геометрия", 5)); + assertThrows(IllegalArgumentException.class, () -> exampleGroup.addMark("Павлов Сергей Кимович", "", 5)); + assertThrows(IllegalArgumentException.class, () -> exampleGroup.addMark("Павлов Сергей Кимович", "Геометрия", -1)); + } + + @Test + void deleteMark() { + GroupOfStudents exampleGroup = testGroup(); + exampleGroup.addStudent("Павлов Сергей Кимович", "Биология 5, Геометрия 3, Философия 4"); + exampleGroup.deleteMark("Павлов Сергей Кимович", "Философия"); + exampleGroup.deleteMark("Соловьёв Велор Владленович", "Фармацевтика"); + assertEquals("Биология 5, Геометрия 3, Философия", exampleGroup.search("Павлов Сергей Кимович")); + assertEquals("Фармацевтика, Философия", exampleGroup.search("Соловьёв Велор Владленович")); + assertThrows(IllegalArgumentException.class, () -> exampleGroup.deleteMark("", "Биология")); + assertThrows(IllegalArgumentException.class, () -> exampleGroup.deleteMark("Соловьёв Велор Владленович", "")); + assertThrows(IllegalArgumentException.class, () -> exampleGroup.deleteMark("Соловьёв Велор Владленович", "Политология")); + assertThrows(IllegalArgumentException.class, () -> exampleGroup.deleteMark("Красильников Антон Геннадиевич", "Политология")); + } + + @Test + void changeMark() { + GroupOfStudents exampleGroup = testGroup(); + exampleGroup.changeMark("Макаров Иван Дмитриевич", "Биология", 2); + exampleGroup.changeMark("Мартынов Аскольд Никитевич", "Биология", 3); + exampleGroup.changeMark("Алексеев Юлий Станиславович", "Политология", 5); + assertEquals("Биология 2, Фармацевтика 3, Политология 1", exampleGroup.search("Макаров Иван Дмитриевич")); + assertEquals("Биология 3, Фармацевтика 3", exampleGroup.search("Мартынов Аскольд Никитевич")); + assertEquals("Фармацевтика 3, Политология 5", exampleGroup.search("Алексеев Юлий Станиславович")); + assertThrows(IllegalArgumentException.class, () -> exampleGroup.changeMark("", "Политология", 4)); + assertThrows(IllegalArgumentException.class, () -> exampleGroup.changeMark("Алексеев Юлий Станиславович", "", 4)); + assertThrows(IllegalArgumentException.class, () -> exampleGroup.changeMark("Красильников Антон Геннадиевич", "Фармацевтика", 4)); + assertThrows(IllegalArgumentException.class, () -> exampleGroup.changeMark("Алексеев Юлий Станиславович", "Фармацевтика", -4)); + } + + @Test + void addSubject() { + GroupOfStudents exampleGroup = testGroup(); + exampleGroup.addStudent("Крюков Климент Игоревич", ""); + exampleGroup.addSubject("Астрономия"); + assertEquals("Биология 5, Фармацевтика 3, Политология 1, Астрономия", exampleGroup.search("Макаров Иван Дмитриевич")); + assertEquals("Биология 5, Фармацевтика 3, Астрономия", exampleGroup.search("Мартынов Аскольд Никитевич")); + assertEquals("Фармацевтика 3, Политология 1, Астрономия", exampleGroup.search("Алексеев Юлий Станиславович")); + assertEquals("Фармацевтика 3, Философия, Астрономия", exampleGroup.search("Соловьёв Велор Владленович")); + assertEquals("Астрономия", exampleGroup.search("Крюков Климент Игоревич")); + assertThrows(IllegalArgumentException.class, () -> exampleGroup.addSubject("")); + } +} \ No newline at end of file diff --git a/pom.xml b/pom.xml index 29ae17c..9ad97b7 100644 --- a/pom.xml +++ b/pom.xml @@ -5,9 +5,13 @@ ru.spbstu.insys programming-lab-example - 1.0-SNAPSHOT + pom + 1.0-SNAPSHOT + + coolName + - + 11 5.8.2 ${jvm.version} From c974dfe2f62443aecf6171ee6d07548fec79ae63 Mon Sep 17 00:00:00 2001 From: EgorShalak Date: Tue, 19 Apr 2022 16:40:48 +0300 Subject: [PATCH 2/4] Task 1 --- coolName/src/main/java/GroupOfStudents.java | 129 ++++++------------ .../src/test/java/GroupOfStudentsTest.java | 35 +++-- 2 files changed, 61 insertions(+), 103 deletions(-) diff --git a/coolName/src/main/java/GroupOfStudents.java b/coolName/src/main/java/GroupOfStudents.java index 09f8bb0..9ae78c6 100644 --- a/coolName/src/main/java/GroupOfStudents.java +++ b/coolName/src/main/java/GroupOfStudents.java @@ -2,19 +2,28 @@ public class GroupOfStudents { - private final Map rating = new HashMap<>(); + private final Map rating = new HashMap<>(); public int size() { return rating.size(); } void addStudent (String student, String subjects) { - if (student.isBlank() || rating.containsKey(student)) + if (student.isBlank() || rating.containsKey(student) || subjects.isBlank()) throw new IllegalArgumentException(); - rating.put(student, subjects); + else { + Map allSubjects = new HashMap<>(); + String[] items = subjects.split(", "); + for(String item: items) { + if (item.split(" ").length < 2) + allSubjects.put(item.split(" ")[0], " "); + else + allSubjects.put(item.split(" ")[0], item.split(" ")[1]); + } + rating.put(student, (HashMap) allSubjects); + } } - void deleteStudent (String student) { if (student.isBlank() || !rating.containsKey(student)) throw new IllegalArgumentException(); @@ -24,114 +33,54 @@ void deleteStudent (String student) { void changeMark (String student, String subject, int mark) { if (student.isBlank() || subject.isBlank() || mark <= 0 || !rating.containsKey(student)) throw new IllegalArgumentException(); - int i = 0; - String oldItems = rating.get(student); - String[] items = rating.get(student).split(", "); - StringBuilder newItems = new StringBuilder(); - if (items.length == 0) - throw new IllegalArgumentException(); - for (String item : items) { - if (item.isBlank()) - throw new IllegalArgumentException(); - if (item.split(" ").length != 2) - throw new IllegalArgumentException(); - if (item.split(" ")[0].equals(subject)) { - newItems.append(item.split(" ")[0]); - newItems.append(" "); - newItems.append(mark); - } else { - newItems.append(item); - } - if (i != items.length - 1) newItems.append(", "); - i++; - } - if (oldItems.equals(newItems.toString())) - throw new IllegalArgumentException(); - rating.put(student, newItems.toString()); + Map items = rating.get(student); + items.put(subject, Integer.toString(mark)); + rating.put(student, (HashMap) items); } void addMark (String student, String subject, int mark) { if (student.isBlank() || subject.isBlank() || mark <= 0 || !rating.containsKey(student)) throw new IllegalArgumentException(); - int i = 0; - String[] items = rating.get(student).split(", "); - String oldItems = rating.get(student); - StringBuilder newItems = new StringBuilder(); - if (items.length == 0) - throw new IllegalArgumentException(); - for (String item : items) { - if (item.isBlank()) - throw new IllegalArgumentException(); - if (item.split(" ").length < 1) - throw new IllegalArgumentException(); - else if (item.split(" ").length == 1) { - newItems.append(item.split(" ")[0]); - newItems.append(" "); - newItems.append(mark); - if (i != items.length - 1) newItems.append(", "); - i++; - } else { - newItems.append(item); - if (i != items.length - 1) newItems.append(", "); - i++; - } - } - if (oldItems.equals(newItems.toString())) - throw new IllegalArgumentException(); - rating.put(student, newItems.toString()); + Map items = rating.get(student); + items.put(subject, Integer.toString(mark)); + rating.put(student, (HashMap) items); } - - void deleteMark (String student, String subject) { if (student.isBlank() || subject.isBlank() || !rating.containsKey(student)) throw new IllegalArgumentException(); - int i = 0; - String[] items = rating.get(student).split(", "); - String oldItems = rating.get(student); - StringBuilder newItems = new StringBuilder(); - if (items.length == 0) - throw new IllegalArgumentException(); - for (String item : items) { - if (item.isBlank()) - throw new IllegalArgumentException(); - if (item.split(" ").length < 1) - throw new IllegalArgumentException(); - if (item.split(" ")[0].equals(subject)) { - newItems.append(subject); - } else { - newItems.append(item); - } - if (i != items.length - 1) newItems.append(", "); - i++; - } - if (oldItems.equals(newItems.toString())) - throw new IllegalArgumentException(); - rating.put(student, newItems.toString()); + Map items = rating.get(student); + if (!items.containsKey(subject)) throw new IllegalArgumentException(); + if (!items.get(subject).equals(" ")) items.put(subject, " "); + rating.put(student, (HashMap) items); } public String search(String student) { if (student.isBlank() || !rating.containsKey(student)) throw new IllegalArgumentException(); - return rating.get(student); + return rating.get(student).toString(); } - + void deleteSubject (String subject) { + if (subject.isBlank()) + throw new IllegalArgumentException(); + for (Map.Entry entry : rating.entrySet()) { + String student = entry.getKey(); + Map items = rating.get(student); + items.remove(subject); + rating.put(student, (HashMap) items); + } + } void addSubject (String subject) { if (subject.isBlank()) throw new IllegalArgumentException(); - for (Map.Entry entry: rating.entrySet()) { + for (Map.Entry entry: rating.entrySet()) { String student = entry.getKey(); - String subjects = entry.getValue(); - String newSubjects; - if (subjects.isBlank()) { - newSubjects = subjects + subject; - } else { - newSubjects = subjects + ", " + subject; - } - rating.put(student, newSubjects); + Map items = rating.get(student); + items.put(subject, " "); + rating.put(student, (HashMap) items); } } -} \ No newline at end of file +} diff --git a/coolName/src/test/java/GroupOfStudentsTest.java b/coolName/src/test/java/GroupOfStudentsTest.java index e0cafe0..ead8286 100644 --- a/coolName/src/test/java/GroupOfStudentsTest.java +++ b/coolName/src/test/java/GroupOfStudentsTest.java @@ -18,7 +18,7 @@ private GroupOfStudents testGroup() { void addStudent() { GroupOfStudents exampleGroup = testGroup(); exampleGroup.addStudent("Веселов Венедикт Донатович", "Биология 5, Философия 4, Геометрия 2"); - assertEquals("Биология 5, Философия 4, Геометрия 2", + assertEquals("{Геометрия=2, Биология=5, Философия=4}", exampleGroup.search("Веселов Венедикт Донатович")); assertThrows(IllegalArgumentException.class, () -> exampleGroup.addStudent("Веселов Венедикт Донатович", "Биология 5, Философия 4, Геометрия 2")); @@ -41,8 +41,8 @@ void addMark() { exampleGroup.addStudent("Павлов Сергей Кимович", "Биология 5, Геометрия, Философия 4"); exampleGroup.addMark("Соловьёв Велор Владленович", "Философия", 4); exampleGroup.addMark("Павлов Сергей Кимович", "Геометрия", 5); - assertEquals("Биология 5, Геометрия 5, Философия 4", exampleGroup.search("Павлов Сергей Кимович")); - assertEquals("Фармацевтика 3, Философия 4", exampleGroup.search("Соловьёв Велор Владленович")); + assertEquals("{Геометрия=5, Биология=5, Философия=4}", exampleGroup.search("Павлов Сергей Кимович")); + assertEquals("{Фармацевтика=3, Философия=4}", exampleGroup.search("Соловьёв Велор Владленович")); assertThrows(IllegalArgumentException.class, () -> exampleGroup.addMark("", "Геометрия", 5)); assertThrows(IllegalArgumentException.class, () -> exampleGroup.addMark("Павлов Сергей Кимович", "", 5)); assertThrows(IllegalArgumentException.class, () -> exampleGroup.addMark("Павлов Сергей Кимович", "Геометрия", -1)); @@ -54,8 +54,8 @@ void deleteMark() { exampleGroup.addStudent("Павлов Сергей Кимович", "Биология 5, Геометрия 3, Философия 4"); exampleGroup.deleteMark("Павлов Сергей Кимович", "Философия"); exampleGroup.deleteMark("Соловьёв Велор Владленович", "Фармацевтика"); - assertEquals("Биология 5, Геометрия 3, Философия", exampleGroup.search("Павлов Сергей Кимович")); - assertEquals("Фармацевтика, Философия", exampleGroup.search("Соловьёв Велор Владленович")); + assertEquals("{Геометрия=3, Биология=5, Философия= }", exampleGroup.search("Павлов Сергей Кимович")); + assertEquals("{Фармацевтика= , Философия= }", exampleGroup.search("Соловьёв Велор Владленович")); assertThrows(IllegalArgumentException.class, () -> exampleGroup.deleteMark("", "Биология")); assertThrows(IllegalArgumentException.class, () -> exampleGroup.deleteMark("Соловьёв Велор Владленович", "")); assertThrows(IllegalArgumentException.class, () -> exampleGroup.deleteMark("Соловьёв Велор Владленович", "Политология")); @@ -68,25 +68,34 @@ void changeMark() { exampleGroup.changeMark("Макаров Иван Дмитриевич", "Биология", 2); exampleGroup.changeMark("Мартынов Аскольд Никитевич", "Биология", 3); exampleGroup.changeMark("Алексеев Юлий Станиславович", "Политология", 5); - assertEquals("Биология 2, Фармацевтика 3, Политология 1", exampleGroup.search("Макаров Иван Дмитриевич")); - assertEquals("Биология 3, Фармацевтика 3", exampleGroup.search("Мартынов Аскольд Никитевич")); - assertEquals("Фармацевтика 3, Политология 5", exampleGroup.search("Алексеев Юлий Станиславович")); + assertEquals("{Фармацевтика=3, Биология=2, Политология=1}", exampleGroup.search("Макаров Иван Дмитриевич")); + assertEquals("{Фармацевтика=3, Биология=3}", exampleGroup.search("Мартынов Аскольд Никитевич")); + assertEquals("{Фармацевтика=3, Политология=5}", exampleGroup.search("Алексеев Юлий Станиславович")); assertThrows(IllegalArgumentException.class, () -> exampleGroup.changeMark("", "Политология", 4)); assertThrows(IllegalArgumentException.class, () -> exampleGroup.changeMark("Алексеев Юлий Станиславович", "", 4)); assertThrows(IllegalArgumentException.class, () -> exampleGroup.changeMark("Красильников Антон Геннадиевич", "Фармацевтика", 4)); assertThrows(IllegalArgumentException.class, () -> exampleGroup.changeMark("Алексеев Юлий Станиславович", "Фармацевтика", -4)); } + @Test + void deleteSubject() { + GroupOfStudents exampleGroup = testGroup(); + exampleGroup.deleteSubject("Биология"); + assertEquals("{Фармацевтика=3, Политология=1}", exampleGroup.search("Макаров Иван Дмитриевич")); + assertEquals("{Фармацевтика=3}", exampleGroup.search("Мартынов Аскольд Никитевич")); + assertThrows(IllegalArgumentException.class, () -> exampleGroup.deleteSubject("")); + } + @Test void addSubject() { GroupOfStudents exampleGroup = testGroup(); exampleGroup.addStudent("Крюков Климент Игоревич", ""); exampleGroup.addSubject("Астрономия"); - assertEquals("Биология 5, Фармацевтика 3, Политология 1, Астрономия", exampleGroup.search("Макаров Иван Дмитриевич")); - assertEquals("Биология 5, Фармацевтика 3, Астрономия", exampleGroup.search("Мартынов Аскольд Никитевич")); - assertEquals("Фармацевтика 3, Политология 1, Астрономия", exampleGroup.search("Алексеев Юлий Станиславович")); - assertEquals("Фармацевтика 3, Философия, Астрономия", exampleGroup.search("Соловьёв Велор Владленович")); - assertEquals("Астрономия", exampleGroup.search("Крюков Климент Игоревич")); + assertEquals("{Биология=5, Фармацевтика=3, Политология=1, Астрономия= }", exampleGroup.search("Макаров Иван Дмитриевич")); + assertEquals("{Биология=5, Фармацевтика=3, Астрономия= }", exampleGroup.search("Мартынов Аскольд Никитевич")); + assertEquals("{Фармацевтика=3, Политология=1, Астрономия= }", exampleGroup.search("Алексеев Юлий Станиславович")); + assertEquals("{Фармацевтика=3, Философия= , Астрономия= }", exampleGroup.search("Соловьёв Велор Владленович")); + assertEquals("{Астрономия= }", exampleGroup.search("Крюков Климент Игоревич")); assertThrows(IllegalArgumentException.class, () -> exampleGroup.addSubject("")); } } \ No newline at end of file From 560fc2cd204104d97e25234328b1451eee4e5875 Mon Sep 17 00:00:00 2001 From: EgorShalak Date: Tue, 31 May 2022 11:44:46 +0300 Subject: [PATCH 3/4] Task 1.1 --- coolName/src/main/java/GroupOfStudents.java | 3 ++- coolName/src/test/java/GroupOfStudentsTest.java | 8 ++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/coolName/src/main/java/GroupOfStudents.java b/coolName/src/main/java/GroupOfStudents.java index 9ae78c6..a880dcc 100644 --- a/coolName/src/main/java/GroupOfStudents.java +++ b/coolName/src/main/java/GroupOfStudents.java @@ -9,7 +9,7 @@ public int size() { } void addStudent (String student, String subjects) { - if (student.isBlank() || rating.containsKey(student) || subjects.isBlank()) + if (student.isBlank() || rating.containsKey(student)) throw new IllegalArgumentException(); else { Map allSubjects = new HashMap<>(); @@ -80,6 +80,7 @@ void addSubject (String subject) { String student = entry.getKey(); Map items = rating.get(student); items.put(subject, " "); + items.remove(""); rating.put(student, (HashMap) items); } } diff --git a/coolName/src/test/java/GroupOfStudentsTest.java b/coolName/src/test/java/GroupOfStudentsTest.java index ead8286..be799b3 100644 --- a/coolName/src/test/java/GroupOfStudentsTest.java +++ b/coolName/src/test/java/GroupOfStudentsTest.java @@ -91,11 +91,11 @@ void addSubject() { GroupOfStudents exampleGroup = testGroup(); exampleGroup.addStudent("Крюков Климент Игоревич", ""); exampleGroup.addSubject("Астрономия"); - assertEquals("{Биология=5, Фармацевтика=3, Политология=1, Астрономия= }", exampleGroup.search("Макаров Иван Дмитриевич")); - assertEquals("{Биология=5, Фармацевтика=3, Астрономия= }", exampleGroup.search("Мартынов Аскольд Никитевич")); - assertEquals("{Фармацевтика=3, Политология=1, Астрономия= }", exampleGroup.search("Алексеев Юлий Станиславович")); - assertEquals("{Фармацевтика=3, Философия= , Астрономия= }", exampleGroup.search("Соловьёв Велор Владленович")); assertEquals("{Астрономия= }", exampleGroup.search("Крюков Климент Игоревич")); + assertEquals("{Фармацевтика=3, Астрономия= , Биология=5, Политология=1}", exampleGroup.search("Макаров Иван Дмитриевич")); + assertEquals("{Фармацевтика=3, Астрономия= , Биология=5}", exampleGroup.search("Мартынов Аскольд Никитевич")); + assertEquals("{Фармацевтика=3, Астрономия= , Политология=1}", exampleGroup.search("Алексеев Юлий Станиславович")); + assertEquals("{Фармацевтика=3, Астрономия= , Философия= }", exampleGroup.search("Соловьёв Велор Владленович")); assertThrows(IllegalArgumentException.class, () -> exampleGroup.addSubject("")); } } \ No newline at end of file From 466b0fc262452154116b16499ad96a79728cb2c0 Mon Sep 17 00:00:00 2001 From: EgorShalak Date: Tue, 31 May 2022 11:45:06 +0300 Subject: [PATCH 4/4] Task 1.1 --- coolName/target/classes/GroupOfStudents.class | Bin 0 -> 3779 bytes .../test-classes/GroupOfStudentsTest.class | Bin 0 -> 7242 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 coolName/target/classes/GroupOfStudents.class create mode 100644 coolName/target/test-classes/GroupOfStudentsTest.class diff --git a/coolName/target/classes/GroupOfStudents.class b/coolName/target/classes/GroupOfStudents.class new file mode 100644 index 0000000000000000000000000000000000000000..f81b01bcffe829f2349526f80d4d3566b35457e9 GIT binary patch literal 3779 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