Advertisement
IvetValcheva

Test #14 - 01. Olympics - Performance

Dec 13th, 2022
641
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.61 KB | None | 0 0
  1. import org.junit.Assert;
  2. import org.junit.Before;
  3. import org.junit.Test;
  4.  
  5. import java.util.ArrayList;
  6. import java.util.List;
  7.  
  8. public class Test3 {
  9.  
  10.     private Olympics olympics;
  11.     private InputGenerator inputGenerator;
  12.  
  13.     class InputGenerator {
  14.  
  15.         private final String[] COMPETITOR_NAMES = {"Ani", "Ani", "Ivo", "Asd", "Georgi", "Ivan", "Stamat", "Georgi", "Galin", "Mariika", "Ani", "Ani", "Ivo", "Asd", "Georgi", "Ivan", "Stamat", "Georgi", "Galin", "Mariika", "Ani", "Ani", "Ivo", "Asd", "Georgi", "Ivan", "Stamat", "Georgi", "Galin", "Mariika"};
  16.         private final String[] COMPETITION_NAMES = {"Java", "VS", "SoftUniada", "CDiez", "Oracle", "JavaScript", "PHP", "Pascal", "C", "Swift", "Java", "VS", "SoftUniada", "CDiez", "Oracle", "JavaScript", "PHP", "Pascal", "C", "Swift", "Java", "VS", "SoftUniada", "CDiez", "Oracle", "JavaScript", "PHP", "Pascal", "C", "Swift", "Java", "VS", "SoftUniada", "CDiez", "Oracle", "JavaScript", "PHP", "Pascal", "C", "SwiftJava", "VS", "SoftUniada", "CDiez", "Oracle", "JavaScript", "PHP", "Pascal", "C", "SwiftJava", "VS", "SoftUniada", "CDiez", "Oracle", "JavaScript", "PHP", "Pascal", "C", "Swift"};
  17.  
  18.  
  19.         List<Competitor> generateCompetitors(int count) {
  20.             List<Competitor> competitors = new ArrayList<>();
  21.             for (int i = 1; i <= count; i++) {
  22.                 competitors.add(new Competitor(i, COMPETITOR_NAMES[i % COMPETITOR_NAMES.length]));
  23.             }
  24.             return competitors;
  25.         }
  26.  
  27.         List<Competition> generateCompetitions(int count) {
  28.             List<Competition> competitions = new ArrayList<>();
  29.             for (int i = 1; i <= count; i++) {
  30.                 competitions.add(new Competition(COMPETITION_NAMES[i % COMPETITION_NAMES.length], i, 5 + i));
  31.             }
  32.             return competitions;
  33.         }
  34.     }
  35.  
  36.     @Before
  37.     public void setUp() {
  38.         this.olympics = new OlympicsImpl();
  39.         this.inputGenerator = new InputGenerator();
  40.     }
  41.  
  42.     @Test
  43.     public void addCompetitor_1_000_000_competitors_memory_usage() {
  44.  
  45.         List<Competitor> competitors = this.inputGenerator.generateCompetitors(500000);
  46.  
  47.         Runtime runtime = Runtime.getRuntime();
  48.         long usedMemoryBefore = runtime.totalMemory() - runtime.freeMemory();
  49.  
  50.         for (Competitor competitor : competitors) {
  51.             this.olympics.addCompetitor(competitor.getId(), competitor.getName());
  52.         }
  53.         long usedMemoryInMB = (Math.abs(runtime.totalMemory() - runtime.freeMemory() - usedMemoryBefore)) / (1024 * 1024);
  54.  
  55.         Assert.assertTrue(usedMemoryInMB > 50 && usedMemoryInMB < 120);
  56.  
  57.     }
  58. }
  59.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement