Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2018
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.90 KB | None | 0 0
  1. import static org.junit.Assert.*;
  2. import org.junit.After;
  3. import org.junit.Before;
  4. import org.junit.Test;
  5. import java.util.Arrays;
  6.  
  7. /**
  8. * The test class ArrayExperimenteTest.
  9. *
  10. * @author Urs Lautebach
  11. * @version 2017-10
  12. */
  13. public class ArrayExperimenteTest
  14. {
  15. /**
  16. * Sets up the test fixture.
  17. *
  18. * Called before every test case method.
  19. */
  20. @Before
  21. public void setUp()
  22. {
  23. }
  24.  
  25. /**
  26. * Tears down the test fixture.
  27. *
  28. * Called after every test case method.
  29. */
  30. @After
  31. public void tearDown()
  32. {
  33. }
  34.  
  35. @Test
  36. public void testistEnthalten()
  37. {
  38. int[] testArray = new int[] {1, -43, 1000, 1000, 3, 4, 13, 1000, 70, -41};
  39. assertTrue(ArrayExperimente.istEnthalten(1000, testArray));
  40. assertTrue(ArrayExperimente.istEnthalten(-41, testArray));
  41. assertTrue(ArrayExperimente.istEnthalten(1, testArray));
  42. assertFalse(ArrayExperimente.istEnthalten(77, testArray));
  43.  
  44. testArray = new int[] {66};
  45. assertTrue(ArrayExperimente.istEnthalten(66, testArray));
  46. assertFalse(ArrayExperimente.istEnthalten(77, testArray));
  47.  
  48. testArray = new int[] {};
  49. assertFalse(ArrayExperimente.istEnthalten(77, testArray));
  50. }
  51.  
  52. @Test
  53. public void testindexVon()
  54. {
  55. int[] testArray = new int[] {1, -43, 1000, 1000, 3, 4, 13, 1000, 70, -41};
  56. assertEquals(0, ArrayExperimente.indexVon(1, testArray));
  57. assertEquals(1, ArrayExperimente.indexVon(-43, testArray));
  58. assertEquals(9, ArrayExperimente.indexVon(-41, testArray));
  59. assertEquals(-1, ArrayExperimente.indexVon(1231, testArray));
  60.  
  61. testArray = new int[] {66};
  62. assertEquals(-1, ArrayExperimente.indexVon(1231, testArray));
  63. assertEquals(0, ArrayExperimente.indexVon(66, testArray));
  64.  
  65. testArray = new int[] {};
  66. assertEquals(-1, ArrayExperimente.indexVon(1231, testArray));
  67. }
  68.  
  69. @Test
  70. public void testindexVonBinaer()
  71. {
  72. assertEquals(-1, ArrayExperimente.indexVonBinaer(4, null));
  73. int[] testArray = new int[] {};
  74. assertEquals(-1, ArrayExperimente.indexVonBinaer(4, testArray));
  75.  
  76. testArray = new int[] {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
  77. for(int i : testArray) {
  78. assertEquals(i, ArrayExperimente.indexVonBinaer(i, testArray));
  79. }
  80. assertEquals(-1, ArrayExperimente.indexVonBinaer(17, testArray));
  81.  
  82. }
  83.  
  84. @Test
  85. public void testmaxWert()
  86. {
  87. int[] testArray = new int[] {1, -43, 1000, 1000, 3, 4, 13, 1000, 70, -41};
  88. assertEquals(1000, ArrayExperimente.maxWert(testArray));
  89.  
  90. testArray = new int[] {0, -43, -41};
  91. assertEquals(0, ArrayExperimente.maxWert(testArray));
  92.  
  93. testArray = new int[] {-43, -41};
  94. assertEquals(-41, ArrayExperimente.maxWert(testArray));
  95.  
  96. testArray = new int[] {66};
  97. assertEquals(66, ArrayExperimente.maxWert(testArray));
  98. }
  99.  
  100. @Test
  101. public void testmaxIndex()
  102. {
  103. int[] testArray = new int[] {1, -43, 1000, 3, 4, 13, 70, -41};
  104. assertEquals(2, ArrayExperimente.maxIndex(testArray));
  105.  
  106. testArray = new int[] {1, -43, 1000, 3, 4, 13, 70, -41, 5367};
  107. assertEquals(8, ArrayExperimente.maxIndex(testArray));
  108.  
  109. testArray = new int[] {0, -43, -41};
  110. assertEquals(0, ArrayExperimente.maxIndex(testArray));
  111.  
  112. testArray = new int[] {-43, -41};
  113. assertEquals(1, ArrayExperimente.maxIndex(testArray));
  114.  
  115. testArray = new int[] {-41};
  116. assertEquals(0, ArrayExperimente.maxIndex(testArray));
  117. }
  118.  
  119. @Test
  120. public void testquersumme()
  121. {
  122. int[] testArray = new int[] {1, -43, 3, 4, 13, 70, -41};
  123. assertEquals(7, ArrayExperimente.querSumme(testArray));
  124.  
  125. testArray = new int[] {0, -43, -41};
  126. assertEquals(-84, ArrayExperimente.querSumme(testArray));
  127.  
  128. // einelementiges Array:
  129. testArray = new int[] {51};
  130. assertEquals(51, ArrayExperimente.querSumme(testArray));
  131. }
  132.  
  133. @Test
  134. public void testaddiereJeweilsD()
  135. {
  136. int[] arrayVorher = new int[] {1, -43, 3, 4, 13, 70, -41};
  137. int[] testArray = new int[] {1, -43, 3, 4, 13, 70, -41};
  138.  
  139. int dazu = 1;
  140. ArrayExperimente.addiereJeweilsD(testArray, dazu);
  141.  
  142. int idx = 0;
  143. while(idx < testArray.length)
  144. {
  145. if( testArray[idx] != arrayVorher[idx] + dazu )
  146. {
  147. fail("Arrays unterscheiden sich an der Position " + idx + "!");
  148. }
  149. idx ++ ;
  150. }
  151. }
  152.  
  153. @Test
  154. public void testvektorsumme()
  155. {
  156. int[] a = new int[] { 1, -43, 3, 4, 13, 70, -41 };
  157. int[] b = new int[] { 5, -4, 8, 4, 11, 7, 5 };
  158. int[] summe = ArrayExperimente.vektorsumme(a, b);
  159. assertNotNull(summe);
  160.  
  161. int idx = 0;
  162. while(idx < a.length)
  163. {
  164. if( summe[idx] != a[idx] + b[idx] )
  165. {
  166. fail("Summe falsch an der Position " + idx + "!");
  167. }
  168. idx ++ ;
  169. }
  170. }
  171.  
  172. @Test
  173. public void testarrayUmdrehen()
  174. {
  175. // Array mit ungerader Laenge:
  176. int[] drehmich = new int[] { 1, -43, 3, 4, 13, 70, -41 };
  177. int[] rumgedreht = ArrayExperimente.arrayUmdrehen(drehmich);
  178. assertEquals(drehmich.length, rumgedreht.length);
  179.  
  180. int idx = 0;
  181. while(idx < drehmich.length) {
  182. if( rumgedreht[idx] != drehmich[ rumgedreht.length - 1 - idx ] ) {
  183. fail("Ergebnisarray falsch bei Index " + idx + "!");
  184. }
  185. idx ++ ;
  186. }
  187.  
  188. // Array mit gerader Laenge:
  189. drehmich = new int[] { 1, -43, 3, 4, 70, -41 };
  190. rumgedreht = ArrayExperimente.arrayUmdrehen(drehmich);
  191. assertEquals(drehmich.length, rumgedreht.length);
  192.  
  193. idx = 0;
  194. while(idx < drehmich.length) {
  195. if( rumgedreht[idx] != drehmich[ rumgedreht.length - 1 - idx ] ) {
  196. fail("Ergebnisarray falsch bei Index " + idx + "!");
  197. }
  198. idx ++ ;
  199. }
  200.  
  201. // Array mit Laenge 1:
  202. drehmich = new int[] { 1 };
  203. rumgedreht = ArrayExperimente.arrayUmdrehen(drehmich);
  204. assertEquals(drehmich.length, rumgedreht.length);
  205.  
  206. idx = 0;
  207. while(idx < drehmich.length) {
  208. if( rumgedreht[idx] != drehmich[ rumgedreht.length - 1 - idx ] ) {
  209. fail("Ergebnisarray falsch bei Index " + idx + "!");
  210. }
  211. idx ++ ;
  212. }
  213. }
  214.  
  215. @Test
  216. public void testBubblesort()
  217. {
  218. int[][] zuSortierendeArrays = new int[][]
  219. {
  220. { },
  221. { 1 },
  222. { 1, 2 },
  223. { 2, 1 },
  224. { 2, 1, 0 },
  225. { 1, 2, 3 },
  226. { 66, 66, 66 },
  227. { 34,853,8,3246,324,797434,72374,346,4,2,7,248,33,835,8 },
  228. { 8,3,8,3,9,3,5,2,65,1,6,2,78,27,8,37 },
  229. { -45,0,8,8,0,67,3,7,9,0,9,5,2,65,5,9,0,4,8,7,4,78,689 },
  230. { 4,7,435,87,657,234,6,56,9,347,86,80,5476,5,79,568,9067,53,23, },
  231. { 1,2,3,4,5,6,7,8,9 },
  232. { -1,-2,-3,-4,-5,-6,-7,-8,-9 },
  233. };
  234. for(int[] einArray : zuSortierendeArrays)
  235. {
  236. // mach eine Kopie vom zu sortierenden Array:
  237. int[] kopieVomArray = Arrays.copyOf(einArray, einArray.length);
  238.  
  239. // mach noch Kopie davon...
  240. int[] arrayKorrektSortiert = Arrays.copyOf(einArray, einArray.length);
  241. // ... und sortiere sie mit einem Verfahren, das sicher korrekt ist:
  242. Arrays.sort(arrayKorrektSortiert);
  243. // sortiere die erste Kopie mit der zu testenden Implementierung:
  244. ArrayExperimente.bubbleSort(kopieVomArray);
  245. // stimmen die beiden sortierten genau ueberein?
  246. if(false == Arrays.equals(arrayKorrektSortiert, kopieVomArray))
  247. fail("Sortieren klappt nicht in Array " + Arrays.toString(einArray));
  248. }
  249. }
  250.  
  251. @Test
  252. public void testmysort()
  253. {
  254. int[][] zuSortierendeArrays = new int[][]
  255. {
  256. { },
  257. { 1 },
  258. { 1, 2 },
  259. { 2, 1 },
  260. { 2, 1, 0 },
  261. { 1, 2, 3 },
  262. { 66, 66, 66 },
  263. { 34,853,8,3246,324,797434,72374,346,4,2,7,248,33,835,8 },
  264. { 8,3,8,3,9,3,5,2,65,1,6,2,78,27,8,37 },
  265. { -45,0,8,8,0,67,3,7,9,0,9,5,2,65,5,9,0,4,8,7,4,78,689 },
  266. { 4,7,435,87,657,234,6,56,9,347,86,80,5476,5,79,568,9067,53,23, },
  267. { 1,2,3,4,5,6,7,8,9 },
  268. { -1,-2,-3,-4,-5,-6,-7,-8,-9 },
  269. };
  270. for(int[] einArray : zuSortierendeArrays)
  271. {
  272. // mach eine Kopie vom zu sortierenden Array:
  273. int[] kopieVomArray = Arrays.copyOf(einArray, einArray.length);
  274.  
  275. // mach noch Kopie davon...
  276. int[] arrayKorrektSortiert = Arrays.copyOf(einArray, einArray.length);
  277. // ... und sortiere sie mit einem Verfahren, das sicher korrekt ist:
  278. Arrays.sort(arrayKorrektSortiert);
  279. // sortiere die erste Kopie mit der zu testenden Implementierung:
  280. ArrayExperimente.mySort(kopieVomArray);
  281. // stimmen die beiden sortierten genau ueberein?
  282. if(false == Arrays.equals(arrayKorrektSortiert, kopieVomArray))
  283. fail("Sortieren klappt nicht in Array " + Arrays.toString(einArray));
  284. }
  285. }
  286. private boolean[][] binaer =
  287. {
  288. { false, false, false, false, false, false, false, false } , /* 0 */
  289. { false, true , true , true , true , true , true , true } , /* 127 */
  290. { false, false, false, false, false, true , true , true } , /* 7 */
  291. { false, true , true , false, false, false, false, false } , /* 96 */
  292. { false, false, true , false, false, true , false, false } , /* 36 */
  293. { false, false, false, false, false, true , false, true } , /* 5 */
  294. { false, false, false, false, false, true , false, false } , /* 4 */
  295. { false, false, false, true , false, false, false, true } , /* 17 */
  296. { false, true , false, false, false, false, false, true } , /* 65 */
  297. { false, false, false, false, false, false, false, true } , /* 1 */
  298.  
  299. };
  300.  
  301. private byte[] dezimal = { 0, 127, 7, 96, 36, 5, 4, 17, 65, 1};
  302.  
  303. @Test
  304. public void testbinaerNachDezimal()
  305. {
  306. if(binaer.length != dezimal.length)
  307. fail("Der Test braucht gleich viele Binaer- wie Dezimnaldarstellungen!");
  308. for(int i = 0; i < binaer.length; i ++) {
  309. byte ergebnis = ArrayExperimente.binaerNachDezimal(binaer[i]);
  310.  
  311. if(dezimal[i] != ergebnis)
  312. {
  313. fail("Bei " + Arrays.toString(binaer[i]) + " muesste " + dezimal[i]
  314. + " herauskommen statt " + ergebnis) ;
  315. }
  316.  
  317. }
  318. }
  319.  
  320. @Test
  321. public void testDezimalNachBinaerNull()
  322. {
  323. assertNull(ArrayExperimente.dezimalNachBinaer((byte)-7));
  324.  
  325. }
  326.  
  327. @Test
  328. public void testDezimalNachBinaer()
  329. {
  330. if(binaer.length != dezimal.length)
  331. fail("Der Test braucht gleich viele Binaer- wie Dezimnaldarstellungen!");
  332. for(int i = 0; i < binaer.length; i ++) {
  333. boolean[] ergebnis = ArrayExperimente.dezimalNachBinaer(dezimal[i]);
  334.  
  335. if(false == Arrays.equals(binaer[i], ergebnis))
  336. {
  337. fail("Bei " + dezimal[i] + " muesste " + Arrays.toString(binaer[i])
  338. + " herauskommen statt " + Arrays.toString(ergebnis) );
  339. }
  340. }
  341. }
  342. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement