Advertisement
DPELED

Maman14Tester

Jan 19th, 2017
340
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.31 KB | None | 0 0
  1.  
  2. import static org.junit.Assert.*;
  3. import org.junit.After;
  4. import org.junit.Before;
  5. import org.junit.Test;
  6. import java.util.Random;
  7.  
  8. /**
  9.  * The test class Maman14Tester.
  10.  *
  11.  * @author  Dan Peled
  12.  * @version 2017a
  13.  */
  14. public class Maman14Tester
  15. {
  16.     /**
  17.      * Default constructor for test class Maman14Tester
  18.      */
  19.     public Maman14Tester()
  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.     @Test
  34.     public void whatTest()
  35.     {
  36.         final String changedArray = "Your 'what()' method changes the original array. Change your method!";
  37.         int[] a1 = {1, 2, 3, 8, 3, 20, 12};
  38.         int[] a2 = {8, 5, 7, 20, 100, 15};
  39.         int[] a3 = {78, 100, 200, 50, 70, 607};
  40.         final int[] originalA1 = copyArray(a1);
  41.         final int[] originalA2 = copyArray(a2);
  42.         final int[] originalA3 = copyArray(a3);
  43.         assertEquals("what()", originalWhat(a1), Ex14.what(a1));
  44.         assertTrue(changedArray, arrayEquals(a1, originalA1));
  45.         assertEquals("what()", originalWhat(a2), Ex14.what(a2));
  46.         assertTrue(changedArray, arrayEquals(a2, originalA2));
  47.         assertEquals("what()", originalWhat(a3), Ex14.what(a3));
  48.         assertTrue(changedArray, arrayEquals(a3, originalA3));
  49.         Random rand = new Random();
  50.         int[] a4 = new int[rand.nextInt(100)];
  51.         for(int i = 0; i < a4.length; i++)
  52.             a4[i] = rand.nextInt(100) - rand.nextInt(100);
  53.         final int[] originalA4 = copyArray(a4);
  54.         assertEquals("what()", originalWhat(a4), Ex14.what(a4));
  55.         assertTrue(changedArray, arrayEquals(a4, originalA4));
  56.     }
  57.  
  58.     private static int[] copyArray(int[] arr)
  59.     {
  60.         int[] copy = new int[arr.length];
  61.         for(int i = 0; i < copy.length; i++)
  62.             copy[i] = arr[i];
  63.         return copy;
  64.     }
  65.  
  66.     @Test
  67.     public void zeroDistanceTest()
  68.     {
  69.         int[] array1 = {1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0};
  70.         int[] result1 = {2, 1, 0, 1, 0, 1, 2, 3, 2, 1, 0, 0, 1, 2, 3, 3, 2, 1, 0};
  71.         Ex14.zeroDistance(array1);
  72.         assertTrue("zeroDistance()", arrayEquals(result1, array1));
  73.         int[] array2 = {0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1};
  74.         int[] result2 = {0, 1, 2, 3, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2};
  75.         Ex14.zeroDistance(array2);
  76.         assertTrue("zeroDistance()", arrayEquals(result2, array2));
  77.         int[] array3 = {1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0};
  78.         int[] result3 = {6, 5, 4, 3, 2, 1, 0, 1, 2, 2, 1, 0, 1, 1, 0};
  79.         Ex14.zeroDistance(array3);
  80.         assertTrue("zeroDistance()", arrayEquals(result3, array3));
  81.         int[] array4 = {1,1,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,0,1,1,1,1,1,1,1};
  82.         int[] result4 = {8,7,6,5,4,3,2,1,0,1,1,0,1,2,3,2,1,0,1,2,3,2,1,0,0,1,2,3,4,5,6,7};
  83.         Ex14.zeroDistance(array4);
  84.         assertTrue("zeroDistance()", arrayEquals(result4, array4));
  85.     }
  86.  
  87.     private boolean arrayEquals(int[] a1, int[] a2)
  88.     {
  89.         if(a1.length != a2.length)
  90.             return false;
  91.         for(int i = 0; i < a1.length; i++)
  92.             if(a1[i] != a2[i])
  93.                 return false;
  94.         return true;
  95.     }
  96.  
  97.     @Test
  98.     public void isTransTest()
  99.     {
  100.         final String s = "aabccd";
  101.         String trans = "aaabbccccddd";
  102.         assertTrue("isTrans()", Ex14.isTrans(s,trans));
  103.         trans = "abbbbccccddddddd";
  104.         assertFalse("isTrans()", Ex14.isTrans(s,trans));
  105.         assertTrue("isTrans()", Ex14.isTrans(s,s));
  106.         trans = "aaaaaabbbbbdddddd";
  107.         assertFalse("isTrans()", Ex14.isTrans(s, trans));
  108.         trans = "aaaaaaabbbdcccc";
  109.         assertFalse("isTrans()", Ex14.isTrans(s, trans));
  110.         assertFalse("isTrans()", Ex14.isTrans(s, ""));
  111.     }
  112.  
  113.     @Test
  114.     public void matchTest()
  115.     {
  116.         int[] patt1 = {1, 0, 2, 0};
  117.         int[] arr1 = {30, 2, 1, 2, 1, 22, 33};
  118.         assertTrue("match()", Ex14.match(arr1, patt1));
  119.         int[] arr2 = {30, 2, 1, 2, 1, 22, 333};
  120.         assertFalse("match()", Ex14.match(arr2, patt1));
  121.         int[] arr3 = {0, 0, 0, 0, 22};
  122.         int[] patt2 = {0, 1, 2};
  123.         assertTrue("match()", Ex14.match(arr3, patt2));
  124.         int[] patt3 = {};
  125.         assertTrue("match()", Ex14.match(arr3, patt3));
  126.         int[] patt4 = {2, 2, 2};
  127.         assertFalse("match()", Ex14.match(arr3, patt4));
  128.     }
  129.  
  130.     /**
  131.      * Tears down the test fixture.
  132.      *
  133.      * Called after every test case method.
  134.      */
  135.     @After
  136.     public void tearDown()
  137.     {
  138.     }
  139.  
  140.     private int originalWhat(int[] a)
  141.     {
  142.         int temp = 0;
  143.         for (int i=0; i<a.length; i++)  
  144.         {        
  145.             for (int j=i; j<a.length; j++)    
  146.             {              
  147.                 int c = f(a, i, j);        
  148.                 if (c%3 == 0)            
  149.                 {                  
  150.                     if (j-i+1 > temp)          
  151.                         temp = j-i+1;          
  152.                 }  
  153.             }        
  154.         }      
  155.         return temp;  
  156.     }
  157.  
  158.     private static int f (int[]a, int low, int high)    
  159.     {    
  160.         int res = 0;    
  161.         for (int i=low; i<=high; i++)      
  162.             res += a[i];    
  163.         return res;  
  164.     }  
  165. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement