Advertisement
DPELED

Maman15Tester

Jan 22nd, 2017
370
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.46 KB | None | 0 0
  1.  
  2. import java.util.Random;
  3. import static org.junit.Assert.*;
  4. import org.junit.After;
  5. import org.junit.Before;
  6. import org.junit.Test;
  7.  
  8. /**
  9.  * The test class Maman15Tester.
  10.  *
  11.  * @author  Dan Peled
  12.  * @version 2017a
  13.  */
  14. public class Maman15Tester
  15. {
  16.     /**
  17.      * Default constructor for test class Maman15Tester
  18.      */
  19.     public Maman15Tester()
  20.     {
  21.     }
  22.  
  23.     /**
  24.      * Sets up the test fixture.
  25.      *
  26.      * Called before every test case method.
  27.      */
  28.     @Before
  29.     public void setUp()
  30.     {
  31.     }
  32.  
  33.     /**
  34.      * Tears down the test fixture.
  35.      *
  36.      * Called after every test case method.
  37.      */
  38.     @After
  39.     public void tearDown()
  40.     {
  41.     }
  42.  
  43.     @Test
  44.     public void addToSetTest()
  45.     {
  46.         Set set1 = new Set();
  47.         set1.addToSet(2);
  48.         assertEquals(0, set1.numOfElements());
  49.         set1.addToSet(1);
  50.         set1.addToSet(3);
  51.         set1.addToSet(5);
  52.         set1.addToSet(5);
  53.         set1.addToSet(5);
  54.         set1.addToSet(5);
  55.         set1.addToSet(5);
  56.         set1.addToSet(5);
  57.         assertEquals(3, set1.numOfElements());
  58.         for(int i = 0; i < 101; i +=2)
  59.             set1.addToSet(i);
  60.         assertEquals(3, set1.numOfElements());
  61.     }
  62.  
  63.     @Test
  64.     public void equalsTest()
  65.     {
  66.         Set set2 = new Set();
  67.         Set set3 = new Set();
  68.         assertFalse(set3.equals(null));
  69.         assertEquals(true, set3.equals(set2));
  70.         set2.addToSet(1);
  71.         set3.addToSet(3);
  72.         assertEquals(false, set3.equals(set2));
  73.         set2.addToSet(3);
  74.         set3.addToSet(1);
  75.         assertEquals(true, set3.equals(set2));
  76.     }
  77.  
  78.     @Test
  79.     public void subSetTest()
  80.     {
  81.         Set set1 = new Set();
  82.         Set set2 = new Set();
  83.         set2.addToSet(1);
  84.         set2.addToSet(3);
  85.         set2.addToSet(55);
  86.         assertFalse(set1.subSet(null));
  87.         assertEquals(true, set2.subSet(set1));
  88.         set1.addToSet(87);
  89.         assertEquals(false, set2.subSet(set1));
  90.     }
  91.  
  92.     @Test
  93.     public void isMemberTest()
  94.     {
  95.         Set set1 = new Set();
  96.         set1.addToSet(87);
  97.         set1.addToSet(65);
  98.         set1.addToSet(2);
  99.         set1.addToSet(47);
  100.         assertEquals(true, set1.isMember(47));
  101.         assertEquals(false, set1.isMember(2));
  102.         for(int i=0; i<100; i++)
  103.             set1.addToSet(i);
  104.         Random rand = new Random();
  105.         int num = rand.nextInt(100);
  106.         assertEquals(num % 2 != 0, set1.isMember(num));
  107.     }
  108.  
  109.     @Test
  110.     public void removeFromSetTest()
  111.     {
  112.         Set set1 = new Set();
  113.         for(int i=0; i<100; i++)
  114.             set1.addToSet(i);
  115.         set1.removeFromSet(5);
  116.         set1.removeFromSet(85);
  117.         set1.removeFromSet(85);
  118.         assertEquals(48, set1.numOfElements());
  119.         set1.removeFromSet(8);
  120.         assertEquals(48, set1.numOfElements());
  121.     }
  122.  
  123.     @Test
  124.     public void isEmptyTest()
  125.     {
  126.         Set set1 = new Set();
  127.         assertEquals(true, set1.isEmpty());
  128.         set1.addToSet(1);
  129.         assertEquals(false, set1.isEmpty());
  130.         set1.removeFromSet(1);
  131.         assertEquals(true, set1.isEmpty());
  132.     }
  133.  
  134.     @Test
  135.     public void unionTest()
  136.     {
  137.         Set set1 = new Set();
  138.         Set set2 = new Set();
  139.         Set res = new Set();
  140.         set1.addToSet(1);
  141.         set1.addToSet(3);
  142.         set1.addToSet(5);
  143.         set2.addToSet(7);
  144.         set2.addToSet(9);
  145.         set2.addToSet(11);
  146.         res.addToSet(1);
  147.         res.addToSet(3);
  148.         res.addToSet(5);
  149.         res.addToSet(7);
  150.         res.addToSet(11);
  151.         res.addToSet(9);
  152.         assertEquals(null, set1.union(null));
  153.         assertTrue(res.equals(set2.union(set1)));
  154.         assertEquals(6, set2.union(set1).numOfElements());
  155.         set2.addToSet(1);
  156.         assertTrue(res.equals(set2.union(set1)));
  157.         assertEquals(6, set2.union(set1).numOfElements());
  158.     }
  159.  
  160.     @Test
  161.     public void intersectionTest()
  162.     {
  163.         Set set1 = new Set();
  164.         Set set2 = new Set();
  165.         Set res = new Set();
  166.         Set inter = set1.intersection(set2);
  167.         assertEquals(true, res.equals(inter));
  168.         assertEquals(0, inter.numOfElements());
  169.         set1.addToSet(1);
  170.         set1.addToSet(3);
  171.         set1.addToSet(5);
  172.         set1.addToSet(11);
  173.         set1.addToSet(9);
  174.         set1.addToSet(101);
  175.         set2.addToSet(5);
  176.         set2.addToSet(101);
  177.         set2.addToSet(37);
  178.         res.addToSet(5);
  179.         res.addToSet(101);
  180.         assertEquals(null, set1.intersection(null));
  181.         inter = set1.intersection(set2);
  182.         assertEquals(true, res.equals(inter));
  183.         assertEquals(2, inter.numOfElements());
  184.         set1.addToSet(7);
  185.         set2.addToSet(7);
  186.         res.addToSet(7);
  187.         inter = set2.intersection(set1);
  188.         assertEquals(true, res.equals(inter));
  189.         assertEquals(3, inter.numOfElements());
  190.     }
  191.  
  192.     @Test
  193.     public void differenceTest()
  194.     {
  195.         Set set1 = new Set();
  196.         Set set2 = new Set();
  197.         Set res = new Set();
  198.         set1.addToSet(1);
  199.         set1.addToSet(3);
  200.         set1.addToSet(5);
  201.         set1.addToSet(11);
  202.         set1.addToSet(9);
  203.         set1.addToSet(101);
  204.         set2.addToSet(5);
  205.         set2.addToSet(101);
  206.         set2.addToSet(37);
  207.         res.addToSet(3);
  208.         res.addToSet(11);
  209.         res.addToSet(9);
  210.         res.addToSet(1);
  211.         assertEquals(null, set1.difference(null));
  212.         assertTrue(res.equals(set1.difference(set2)));
  213.         assertEquals(4, set1.difference(set2).numOfElements());
  214.         Set res2 = new Set();
  215.         res2.addToSet(37);
  216.         assertTrue(res2.equals(set2.difference(set1)));
  217.         assertEquals(1, set2.difference(set1).numOfElements());
  218.     }
  219.  
  220.     @Test
  221.     public void numOfElemntsTest()
  222.     {
  223.         Set set1 = new Set();
  224.         assertEquals(0, set1.numOfElements());
  225.         set1.addToSet(1);
  226.         set1.addToSet(1);
  227.         assertEquals(1, set1.numOfElements());
  228.         set1.addToSet(57);
  229.         set1.addToSet(65);
  230.         assertEquals(3, set1.numOfElements());
  231.         for(int i=0; i<100; i++)
  232.             set1.addToSet(i);
  233.         assertEquals(50, set1.numOfElements());
  234.     }
  235.  
  236.     @Test
  237.     public void toStringTest()
  238.     {
  239.         Set set1 = new Set();
  240.         assertEquals("{}", set1.toString());
  241.         IntNode p = null;
  242.         for(int i = 1; i < 100; i += 2){
  243.             set1.addToSet(i);
  244.             p = new IntNode(i, p);
  245.         }
  246.         String toString = set1.toString();
  247.         assertEquals('{', toString.charAt(0));
  248.         assertEquals('}', toString.charAt(toString.length() - 1));
  249.         toString = toString.substring(1, toString.length() - 1);
  250.         String[] numbers = toString.split(",");
  251.         for(String number : numbers){
  252.             assertTrue(isLegal(number));
  253.             int num = buildNum(number);
  254.             assertTrue(isInList(p, num));
  255.             if(p.getValue() == num)
  256.                 p = p.getNext();
  257.             else{
  258.                 IntNode q = p;
  259.                 while(q.getNext() != null){
  260.                     if(q.getNext().getValue() == num){
  261.                         q.setNext(q.getNext().getNext());
  262.                         break;
  263.                     }
  264.                     q = q.getNext();
  265.                 }
  266.             }
  267.         }
  268.         assertEquals(null, p);
  269.     }
  270.  
  271.     private static boolean isInList(IntNode list, int x)
  272.     {
  273.         IntNode p = list;
  274.         while(p != null){
  275.             if(p.getValue() == x)
  276.                 return true;
  277.             p = p.getNext();
  278.         }
  279.         return false;
  280.     }
  281.  
  282.     private static int getNumber(char c)
  283.     {
  284.         return (int)c - (int)'0';
  285.     }
  286.  
  287.     private static boolean isLegal(String number)
  288.     {
  289.         if(hasSpace(number))
  290.             return false;
  291.         for(int i = 0; i < number.length(); i++)
  292.             if(!isDigit(number.charAt(i)))
  293.                 return false;
  294.         return true;
  295.     }
  296.  
  297.     private static boolean hasSpace(String s)
  298.     {
  299.         for(int i=0; i<s.length(); i++){
  300.             char c = s.charAt(i);
  301.             if(c==' ')
  302.                 return true;
  303.         }
  304.         return false;
  305.     }
  306.  
  307.     private static boolean isDigit(char c)
  308.     {
  309.         return c >= '0' && c <= '9';
  310.     }
  311.  
  312.     private static int buildNum(String number)
  313.     {
  314.         int num = 0;
  315.         for(int i = 0; i < number.length(); i++){
  316.             num *= 10;
  317.             num += getNumber(number.charAt(i));
  318.         }
  319.         return num;
  320.     }
  321. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement