Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import static org.junit.Assert.*;
- import org.junit.After;
- import org.junit.Before;
- import org.junit.Test;
- import java.util.Random;
- /**
- * The test class Maman14Tester.
- *
- * @author Dan Peled
- * @version 2017a
- */
- public class Maman14Tester
- {
- /**
- * Default constructor for test class Maman14Tester
- */
- public Maman14Tester()
- {
- }
- /**
- * Sets up the test fixture.
- *
- * Called before every test case method.
- */
- @Before
- public void setUp()
- {
- }
- @Test
- public void whatTest()
- {
- final String changedArray = "Your 'what()' method changes the original array. Change your method!";
- int[] a1 = {1, 2, 3, 8, 3, 20, 12};
- int[] a2 = {8, 5, 7, 20, 100, 15};
- int[] a3 = {78, 100, 200, 50, 70, 607};
- final int[] originalA1 = copyArray(a1);
- final int[] originalA2 = copyArray(a2);
- final int[] originalA3 = copyArray(a3);
- assertEquals("what()", originalWhat(a1), Ex14.what(a1));
- assertTrue(changedArray, arrayEquals(a1, originalA1));
- assertEquals("what()", originalWhat(a2), Ex14.what(a2));
- assertTrue(changedArray, arrayEquals(a2, originalA2));
- assertEquals("what()", originalWhat(a3), Ex14.what(a3));
- assertTrue(changedArray, arrayEquals(a3, originalA3));
- Random rand = new Random();
- int[] a4 = new int[rand.nextInt(100)];
- for(int i = 0; i < a4.length; i++)
- a4[i] = rand.nextInt(100) - rand.nextInt(100);
- final int[] originalA4 = copyArray(a4);
- assertEquals("what()", originalWhat(a4), Ex14.what(a4));
- assertTrue(changedArray, arrayEquals(a4, originalA4));
- }
- private static int[] copyArray(int[] arr)
- {
- int[] copy = new int[arr.length];
- for(int i = 0; i < copy.length; i++)
- copy[i] = arr[i];
- return copy;
- }
- @Test
- public void zeroDistanceTest()
- {
- int[] array1 = {1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0};
- int[] result1 = {2, 1, 0, 1, 0, 1, 2, 3, 2, 1, 0, 0, 1, 2, 3, 3, 2, 1, 0};
- Ex14.zeroDistance(array1);
- assertTrue("zeroDistance()", arrayEquals(result1, array1));
- int[] array2 = {0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1};
- int[] result2 = {0, 1, 2, 3, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0, 1, 2};
- Ex14.zeroDistance(array2);
- assertTrue("zeroDistance()", arrayEquals(result2, array2));
- int[] array3 = {1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0};
- int[] result3 = {6, 5, 4, 3, 2, 1, 0, 1, 2, 2, 1, 0, 1, 1, 0};
- Ex14.zeroDistance(array3);
- assertTrue("zeroDistance()", arrayEquals(result3, array3));
- 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};
- 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};
- Ex14.zeroDistance(array4);
- assertTrue("zeroDistance()", arrayEquals(result4, array4));
- }
- private boolean arrayEquals(int[] a1, int[] a2)
- {
- if(a1.length != a2.length)
- return false;
- for(int i = 0; i < a1.length; i++)
- if(a1[i] != a2[i])
- return false;
- return true;
- }
- @Test
- public void isTransTest()
- {
- final String s = "aabccd";
- String trans = "aaabbccccddd";
- assertTrue("isTrans()", Ex14.isTrans(s,trans));
- trans = "abbbbccccddddddd";
- assertFalse("isTrans()", Ex14.isTrans(s,trans));
- assertTrue("isTrans()", Ex14.isTrans(s,s));
- trans = "aaaaaabbbbbdddddd";
- assertFalse("isTrans()", Ex14.isTrans(s, trans));
- trans = "aaaaaaabbbdcccc";
- assertFalse("isTrans()", Ex14.isTrans(s, trans));
- assertFalse("isTrans()", Ex14.isTrans(s, ""));
- }
- @Test
- public void matchTest()
- {
- int[] patt1 = {1, 0, 2, 0};
- int[] arr1 = {30, 2, 1, 2, 1, 22, 33};
- assertTrue("match()", Ex14.match(arr1, patt1));
- int[] arr2 = {30, 2, 1, 2, 1, 22, 333};
- assertFalse("match()", Ex14.match(arr2, patt1));
- int[] arr3 = {0, 0, 0, 0, 22};
- int[] patt2 = {0, 1, 2};
- assertTrue("match()", Ex14.match(arr3, patt2));
- int[] patt3 = {};
- assertTrue("match()", Ex14.match(arr3, patt3));
- int[] patt4 = {2, 2, 2};
- assertFalse("match()", Ex14.match(arr3, patt4));
- }
- /**
- * Tears down the test fixture.
- *
- * Called after every test case method.
- */
- @After
- public void tearDown()
- {
- }
- private int originalWhat(int[] a)
- {
- int temp = 0;
- for (int i=0; i<a.length; i++)
- {
- for (int j=i; j<a.length; j++)
- {
- int c = f(a, i, j);
- if (c%3 == 0)
- {
- if (j-i+1 > temp)
- temp = j-i+1;
- }
- }
- }
- return temp;
- }
- private static int f (int[]a, int low, int high)
- {
- int res = 0;
- for (int i=low; i<=high; i++)
- res += a[i];
- return res;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment