Skip to content

Instantly share code, notes, and snippets.

@yusufaytas
Created May 15, 2015 09:33
Show Gist options
  • Save yusufaytas/91789c267f0195085edc to your computer and use it in GitHub Desktop.
Save yusufaytas/91789c267f0195085edc to your computer and use it in GitHub Desktop.
package com.yusufaytas.test.intercom;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import org.junit.Test;
public class TopNNumbersTest {
@Test
public void testAddSizeBeforeReachingCapacity(){
int size = 3;
TopNNumbers topNNumbers = new TopNNumbers("", 2);
randomlyAdd(topNNumbers, size);
List<Integer> topN = topNNumbers.getNumbers();
assertEquals(2, topN.size());
}
@Test
public void testAddSizeUntilReachingCapacity(){
int size = 3;
TopNNumbers topNNumbers = new TopNNumbers("", size);
randomlyAdd(topNNumbers, size);
List<Integer> topN = topNNumbers.getNumbers();
assertEquals(size, topN.size());
}
@Test
public void testAddSizeAfterReachingCapacity(){
int size = 3;
TopNNumbers topNNumbers = new TopNNumbers("", size);
randomlyAdd(topNNumbers, size * 10);
List<Integer> topN = topNNumbers.getNumbers();
assertEquals(size, topN.size());
}
@Test
public void testAdd(){
int size = 3;
TopNNumbers topNNumbers = new TopNNumbers("", size);
List<Integer> numbers = randomlyAdd(topNNumbers, size * 10);
List<Integer> topN = topNNumbers.getNumbers();
for (int i = 0; i < size; i++) {
assertTrue(topN.contains(numbers.get(i)));
}
}
@Test
public void testGetNumbers(){
int size = 3;
TopNNumbers topNNumbers = new TopNNumbers("", size);
List<Integer> numbers = randomlyAdd(topNNumbers, size * 10);
List<Integer> topN = topNNumbers.getNumbers();
for (int i = 0; i < size; i++) {
assertTrue(topN.get(i) == numbers.get(i));
}
}
public List<Integer> randomlyAdd(TopNNumbers topNNumbers, int size){
List<Integer> numbers = new ArrayList<Integer>();
for (int i = 0; i < size; i++) {
int randomNumber = (int) (Math.random()*100);
topNNumbers.add(randomNumber);
numbers.add(randomNumber);
}
Collections.sort(numbers, Collections.reverseOrder());
return numbers;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment