Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,16 @@ sourceSets {
srcDirs = ['src']
}
}
test{
java{
}
}
}

dependencies {
testImplementation platform('org.junit:junit-bom:5.10.0')
testImplementation 'org.junit.jupiter:junit-jupiter'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1'
}

test {
Expand Down
1 change: 1 addition & 0 deletions settings.gradle
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
rootProject.name = 'java-core'
include 'test'

69 changes: 69 additions & 0 deletions src/ru/mentee/power/datatype/Mentee.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
package ru.mentee.power.datatype;

public class Mentee {
private String name;
private String surname;
private int age;
private double avgGrade;
private int level;

public Mentee(String name, String surname, int age, double avgGrade, int level) {
this.name = name;
this.surname = surname;
this.age = age;
this.avgGrade = avgGrade;
this.level = level > 5 || level < 1 ? 1 : level;
}

public void displayInfo() {
System.out.printf("Менти: %s %s\n Возраст: %d\n Средний балл: %f\n Уровень: %d\n"
, this.name, this.surname, this.age, this.avgGrade, this.level);

}

public boolean isExcellent() {
return avgGrade >= 4.5;
}

public boolean advanceToNextLevel() {
if (level < 5) {
level++;
return true;
}
return false;
}

public int calculateScholarship() {
if (avgGrade >= 4.5)
return 2000;
else if (avgGrade >= 4.0)
return 1500;
else return 1000;
}

// Геттеры и сеттеры для доступа к приватным полям
public String getFirstName() {
return name;
}

public String getLastName() {
return surname;
}

public int getAge() {
return age;
}

public double getAverageGrade() {
return avgGrade;
}

public void setAverageGrade(double averageGrade) {
this.avgGrade = averageGrade;
}

public int getLevel() {
return level;
}

}
22 changes: 22 additions & 0 deletions src/ru/mentee/power/datatype/MenteeDemo.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package ru.mentee.power.datatype;

import java.util.ArrayList;
import java.util.List;

public class MenteeDemo {
public static void main(String[] args) {
List<Mentee> menteeList = new ArrayList<>();

menteeList.add( new Mentee("Alexandr", "Poltavets", 25, 4.7, 1));
menteeList.add(new Mentee("Ivan", "Ivanov", 23, 3.5, 2));
menteeList.add( new Mentee("Sveta", "Igoreva", 27, 4.1, 3));

for (Mentee mentee : menteeList){
mentee.displayInfo();
System.out.printf("%s является отличником? %b\n", mentee.getFirstName(), mentee.isExcellent());
mentee.advanceToNextLevel();
}


}
}
72 changes: 72 additions & 0 deletions src/test/java/MenteeTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@

import org.junit.jupiter.api.Test;
import ru.mentee.power.datatype.Mentee;

import static org.junit.jupiter.api.Assertions.*;

public class MenteeTest {

@Test
public void testMenteeCreation() {
Mentee mentee = new Mentee("Иван", "Иванов", 20, 4.2, 2);

assertEquals("Иван", mentee.getFirstName());
assertEquals("Иванов", mentee.getLastName());
assertEquals(20, mentee.getAge());
assertEquals(4.2, mentee.getAverageGrade(), 0.001);
assertEquals(2, mentee.getLevel());
}

@Test
public void testIsExcellent() {
Mentee excellentMentee = new Mentee("Мария", "Петрова", 19, 4.8, 1);
Mentee averageMentee = new Mentee("Петр", "Сидоров", 21, 3.9, 3);

assertTrue(excellentMentee.isExcellent());
assertFalse(averageMentee.isExcellent());
}

@Test
public void testAdvanceToNextLevel() {
Mentee junior = new Mentee("Алексей", "Смирнов", 18, 4.0, 1);
Mentee senior = new Mentee("Ольга", "Козлова", 22, 4.7, 5);

assertTrue(junior.advanceToNextLevel());
assertEquals(2, junior.getLevel());

assertFalse(senior.advanceToNextLevel());
assertEquals(5, senior.getLevel());
}

@Test
public void testInvalidLevelValue() {
Mentee mentee1 = new Mentee("Дмитрий", "Попов", 19, 4.3, 0);
Mentee mentee2 = new Mentee("Анна", "Соколова", 20, 4.5, 6);

// Значения уровня должны быть скорректированы до 1
assertEquals(1, mentee1.getLevel());
assertEquals(1, mentee2.getLevel());
}

@Test
public void testCalculateScholarship() {
// Отличник - высшая стипендия
Mentee excellentMentee = new Mentee("Мария", "Ивановна", 19, 4.8, 1);
assertEquals(2000, excellentMentee.calculateScholarship());

// Хорошист - средняя стипендия
Mentee goodMentee = new Mentee("Алексей", "Смирнов", 18, 4.2, 1);
assertEquals(1500, goodMentee.calculateScholarship());

// Средний балл ниже 4.0 - базовая стипендия
Mentee averageMentee = new Mentee("Петр", "Сидоров", 21, 3.9, 3);
assertEquals(1000, averageMentee.calculateScholarship());

// Граничные значения
Mentee borderlineMentee1 = new Mentee("Ольга", "Козлова", 22, 4.5, 5); // Ровно 4.5
assertEquals(2000, borderlineMentee1.calculateScholarship());

Mentee borderlineMentee2 = new Mentee("Иван", "Иванов", 20, 4.0, 2); // Ровно 4.0
assertEquals(1500, borderlineMentee2.calculateScholarship());
}
}
Loading