Guest User

Untitled

a guest
May 27th, 2018
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.52 KB | None | 0 0
  1. import org.junit.*;
  2. import org.junit.runner.*;
  3. import org.junit.Assert.*;
  4.  
  5. public class RlistTest {
  6.  
  7. /**
  8. * Prüft Ringliste auf Konsistenz.
  9. * Liste enthält genau ein Ankerelement und Ringverkettung ist intakt.
  10. * Methode darf nur auf dem Ankerelement aufgerufen werden.
  11. *
  12. * @return Gibt true zurück, wenn Liste konsistent ist.
  13. */
  14. private static boolean check(Rlist<?> list) {
  15. if(list.get() != null) new RuntimeException("not called on anchor.");
  16.  
  17. Rlist cur = list;
  18. do {
  19. cur = cur.next();
  20. // Auf beliebigen Anker gestoßen
  21. if(cur.get() == null) {
  22. if(cur != list) // Anker sind nicht gleich, also gibt es mehrere Anker
  23. return false;
  24. }
  25. } while(cur.get() != null);
  26.  
  27. return true;
  28. }
  29.  
  30.  
  31. @Test
  32. public void testEmptyList() {
  33. /**
  34. * @test
  35. * <b>tag</b>TC001<br>
  36. * <b>event</b>empty list<br>
  37. * <b>expected </b>is empty, has size 0<br> */
  38. Rlist<String> testList = new Rlist<String>();
  39.  
  40.  
  41. Assert.assertTrue("Empty list isEmpty returns true.", testList.isEmpty());
  42. Assert.assertTrue("Empty list is size is 0.", testList.size() == 0);
  43.  
  44. Assert.assertTrue("Consistency check", check(testList));
  45. }
  46.  
  47.  
  48. @Test
  49. public void testAdd() {
  50. /**
  51. * @test
  52. * <b>tag</b>TC002<br>
  53. * <b>event</b>Adding elements to the list<br>
  54. * <b>expected </b>Elements added right of current element.<br> */
  55. String[] expected1String = {"TestString1"};
  56. Rlist expected1 = new Rlist(expected1String);
  57. String[] expected2String = {"TestString2", "TestString1"};
  58. Rlist expected2 = new Rlist(expected2String);
  59.  
  60. Rlist<String> testList = new Rlist<String>();
  61. testList.add("TestString1");
  62.  
  63. Assert.assertTrue("One Element added right of anchor", testList.equals(expected1));
  64. Assert.assertTrue("List size has to be 1.", testList.size() == 1);
  65.  
  66. testList.add(null);
  67. Assert.assertTrue("Test that null is not added", testList.equals(expected1));
  68. Assert.assertTrue("List size still has to be 1.", testList.size() == 1);
  69.  
  70. testList.add("TestString2");
  71. Assert.assertTrue("Test that adding another element pushes others to the right.", testList.equals(expected2));
  72. Assert.assertTrue("List size has to be 2.", testList.size() == 2);
  73.  
  74. Assert.assertTrue("Consistency check", check(testList));
  75. }
  76.  
  77. @Test
  78. public void testInsert() {
  79. /**
  80. * @test
  81. * <b>tag</b>TC003<br>
  82. * <b>event</b>Inserting elements into the list.<br>
  83. * <b>expected </b>Elements added left of current element.<br> */
  84. String[] expected1String = {"TestString1"};
  85. Rlist expected1 = new Rlist(expected1String);
  86. String[] expected2String = {"TestString1", "TestString2", "TestString3"};
  87. Rlist expected2 = new Rlist(expected2String);
  88. String[] expected3String = {"TestString1", "TestString2", "a", "b", "c", "TestString3"};
  89. Rlist expected3 = new Rlist(expected3String);
  90.  
  91. Rlist<String> testList = new Rlist<String>();
  92. Rlist anchor = testList;
  93.  
  94. testList.insert("TestString1");
  95.  
  96. Assert.assertTrue("One Element inserted left of anchor", anchor.equals(expected1));
  97. Assert.assertTrue("List size has to be 1.", anchor.size() == 1);
  98.  
  99. testList.insert("TestString2");
  100. testList.insert("TestString3");
  101. Assert.assertTrue("Three Elements left of anchor", anchor.equals(expected2));
  102. Assert.assertTrue("List size has to be 3.", anchor.size() == 3);
  103.  
  104. testList = testList.next().next().next();
  105. testList.insert("a");
  106. testList.insert("b");
  107. testList.insert("c");
  108.  
  109. Assert.assertTrue("Inserting 3 elements in the middle.", anchor.equals(expected3));
  110. Assert.assertTrue("List size has to be 6.", anchor.size() == 6);
  111.  
  112. Assert.assertTrue("Consistency check", check(anchor));
  113. }
  114.  
  115. @Test
  116. public void testFind() {
  117. /**
  118. * @test
  119. * <b>tag</b>TC004<br>
  120. * <b>event</b>Finding elements on list.<br>
  121. * <b>expected </b>Existing element is found. Non-existing is not found.<br> */
  122. Rlist<String> testList = new Rlist<String>();
  123. Rlist anchor = testList;
  124.  
  125. testList.insert("TestString1");
  126. testList.insert("TestString2");
  127. testList.insert("TestString3");
  128. testList.insert("a");
  129. testList.insert("b");
  130. testList.insert("c");
  131.  
  132.  
  133.  
  134. Assert.assertTrue("Element is found.", anchor.find("a").get() == "a");
  135. Assert.assertTrue("Element is not found.", anchor.find("42") == null);
  136.  
  137. Assert.assertTrue("Consistency check", check(anchor));
  138. }
  139.  
  140. @Test
  141. public void testRemove() {
  142. /**
  143. * @test
  144. * <b>tag</b>TC005<br>
  145. * <b>event</b>Removing elements on list.<br>
  146. * <b>expected </b>Normal element is removed. Anchor is not removed.<br> */
  147. String[] expectedString = {"TestString1", "TestString2", "a", "b", "c"};
  148. Rlist expected = new Rlist(expectedString);
  149.  
  150. Rlist<String> testList = new Rlist<String>();
  151. Rlist anchor = testList;
  152.  
  153. testList.insert("TestString1");
  154. testList.insert("TestString2");
  155. testList.insert("TestString3");
  156. testList.insert("a");
  157. testList.insert("b");
  158. testList.insert("c");
  159.  
  160.  
  161. testList = testList.next().next().next();
  162. testList.remove();
  163. Assert.assertTrue("Element is found.", anchor.equals(expected));
  164.  
  165. anchor.remove();
  166. Assert.assertTrue("Remove on anchor has no effect.", anchor.equals(expected));
  167.  
  168. Assert.assertTrue("Consistency check", check(anchor));
  169. }
  170.  
  171. @Test
  172. public void testIsSorted() {
  173. /**
  174. * @test
  175. * <b>tag</b>TC006<br>
  176. * <b>event</b>Checking of sorted lists.<br>
  177. * <b>expected </b>Sorted list returns true. Unsorted list returns false.<br> */
  178. Rlist<String> testList = new Rlist<String>();
  179. Rlist anchor = testList;
  180.  
  181. testList.insert("1");
  182. testList.insert("2");
  183. testList.insert("3");
  184. testList.insert("4");
  185. testList.insert("5");
  186. testList.insert("6");
  187.  
  188. Assert.assertTrue("Sorted list returns true.", anchor.isSorted());
  189.  
  190. testList.insert("2");
  191. Assert.assertTrue("Unsorted list returns false.", anchor.isSorted() == false);
  192.  
  193. Assert.assertTrue("Consistency check", check(anchor));
  194. }
  195.  
  196. @Test
  197. public void testAddSorted() {
  198. /**
  199. * @test
  200. * <b>tag</b>TC007<br>
  201. * <b>event</b>Adding of sorted list elements.<br>
  202. * <b>expected </b>Inserting an element sorts it into the list.<br> */
  203. Rlist<String> testList = new Rlist<String>();
  204. Rlist anchor = testList;
  205.  
  206. testList.insert("1");
  207. testList.insert("2");
  208. testList.insert("3");
  209. testList.insert("5");
  210. testList.insert("6");
  211.  
  212. Assert.assertTrue("List is sorted.", anchor.isSorted());
  213.  
  214. testList.addSorted("4");
  215. Assert.assertTrue("List is still sorted.", anchor.isSorted());
  216. Assert.assertTrue("Consistency check", check(anchor));
  217.  
  218. }
  219.  
  220. @Test
  221. public void testEquals() {
  222. /**
  223. * @test
  224. * <b>tag</b>TC008<br>
  225. * <b>event</b>equals() compares 2 lists.<br>
  226. * <b>expected </b>2 identical lists are evaluated to true.<br> */
  227. String[] expected1String = {"TestString1", "TestString2", "a", "b", "c"};
  228. Rlist expected1 = new Rlist(expected1String);
  229. String[] expected2String = {"TestString1", "TestString2", "a", "b", "c"};
  230. Rlist expected2 = new Rlist(expected2String);
  231.  
  232. Assert.assertTrue("Lists are equal.", expected1.equals(expected2));
  233. expected1.add("42");
  234. Assert.assertTrue("Lists are not equal anymore.", expected1.equals(expected2) == false);
  235.  
  236. Assert.assertTrue("Consistency check on expected1", check(expected1));
  237. Assert.assertTrue("Consistency check on expected2", check(expected2));
  238. }
  239.  
  240.  
  241. public static void main(String[] args) {
  242. JUnitCore junit = new JUnitCore();
  243. junit.addListener(new PI1TestRunListener());
  244. junit.run(RlistTest.class);
  245. }
  246.  
  247. }
Add Comment
Please, Sign In to add comment