PraktikumHolonsTestClasses.java 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216
  1. package tests;
  2. import classes.*;
  3. import org.junit.Test;
  4. import java.awt.*;
  5. import java.util.ArrayList;
  6. import static org.junit.Assert.assertTrue;
  7. /**
  8. * Test for the Classes.
  9. *
  10. * @author Gruppe14
  11. */
  12. public class PraktikumHolonsTestClasses {
  13. /**
  14. * Test for the Categories.
  15. */
  16. @Test
  17. public void testCategory() {
  18. Category test1 = new Category("Test1");
  19. Category test2 = new Category("Test2");
  20. HolonObject obj1 = new HolonObject("Test Object");
  21. ArrayList<AbstractCpsObject> arr = new ArrayList<>();
  22. assertTrue("Name not correct", test1.getName().equals("Test1"));
  23. assertTrue("Name not correct", test2.getName().equals("Test2"));
  24. assertTrue("Name should not be the same", !test1.getName().equals(test2.getName()));
  25. assertTrue("Should be empty", test1.getObjects().size() == 0);
  26. test1.getObjects().add(obj1);
  27. assertTrue("Should not be empty", test1.getObjects().size() == 1);
  28. assertTrue("Should be empty", test2.getObjects().size() == 0);
  29. test1.setObjects(arr);
  30. assertTrue("Should be empty", test1.getObjects().size() == 0);
  31. arr.add(obj1);
  32. test2.setObjects(arr);
  33. arr = new ArrayList<>();
  34. assertTrue("Shoud be empty", arr.isEmpty());
  35. arr = test2.getObjects();
  36. assertTrue("Shoud not be empty", !arr.isEmpty());
  37. }
  38. /**
  39. * Test for HolonObject.
  40. */
  41. @Test
  42. public void testHolonObject() {
  43. HolonObject test1 = new HolonObject("Test1");
  44. HolonObject test2 = new HolonObject("Test2");
  45. HolonObject test3 = new HolonObject(test1);
  46. HolonElement ele = new HolonElement("Element", 1, 10, IdCounterElem.nextId(),null);
  47. ArrayList<HolonElement> arr = new ArrayList<>();
  48. assertTrue("Should be Empty", test1.getElements().isEmpty());
  49. test1.setElements(arr);
  50. assertTrue("Should be Empty", test1.getElements().isEmpty());
  51. arr.add(ele);
  52. arr.add(ele);
  53. assertTrue("Should be Empty", test2.getElements().isEmpty());
  54. assertTrue("Current Energy not corrent", test2.getMaxActiveEnergy() == 0);
  55. test2.setElements(arr);
  56. assertTrue("Should not be Empty", !test2.getElements().isEmpty());
  57. assertTrue("Current Energy not corrent", test2.getMaxActiveEnergy() == 20);
  58. assertTrue("Current Energy not corrent", test2.getEnergyAtTimeStep(20) == 20);
  59. String str = test2.toStringElements();
  60. assertTrue("String not corrent", str.equals("Element, Element"));
  61. test2.deleteElement(0);
  62. test2.addElement(ele);
  63. assertTrue("Current Energy not corrent", test2.getMaxActiveEnergy() == 20);
  64. assertTrue("Should be Empty", test3.getElements().isEmpty());
  65. test3.setElements(test2.copyElements(test2.getElements()));
  66. assertTrue("Element not Found", test3.searchElement("Element") != null);
  67. test1.setElements(new ArrayList<>());
  68. }
  69. /**
  70. * Test for HolonSwitch.
  71. */
  72. // @Test
  73. // public void testHolonSwitch() {
  74. // HolonSwitch test1 = new HolonSwitch("Test1");
  75. // HolonSwitch test2 = new HolonSwitch(test1);
  76. //
  77. // assertTrue("Manuel Mode is on", !test2.getManualMode());
  78. // test2.switchState();
  79. // assertTrue(test2.isWorking());
  80. // assertTrue(test2.isWorking(1));
  81. // test2.setManualMode(true);
  82. // test2.switchState();
  83. // test2.switchState();
  84. // assertTrue(test2.isWorking());
  85. // assertTrue(test2.isWorking(1));
  86. // assertTrue("Manuel Mode is off", test2.getManualMode());
  87. // assertTrue("ManuelActive is off", test2.getActiveManual());
  88. // test2.switchState();
  89. // assertTrue("ManuelActive is on", !test2.getActiveManual());
  90. // test2.switchState();
  91. // assertTrue("ManuelActive is off", test2.getActiveManual());
  92. // assertTrue(test1.getGraphPoints() != test2.getGraphPoints());
  93. // test2.setGraphPoints(test1.getGraphPoints());
  94. // assertTrue(test1.getGraphPoints() == test2.getGraphPoints());
  95. // }
  96. /**
  97. * Test for CpsEdge.
  98. */
  99. @Test
  100. public void testCpsEdge() {
  101. CpsNode node1 = new CpsNode("Node1");
  102. CpsNode node2 = new CpsNode("Node2");
  103. CpsNode node3 = new CpsNode("Node3");
  104. CpsEdge edge1 = new CpsEdge(node1, node2, 100);
  105. CpsEdge edge2 = new CpsEdge(node2, node3);
  106. assertTrue("Flow not 0", edge1.getFlow() == 0);
  107. edge1.setFlow(50);
  108. assertTrue("Capacity not right", edge1.getCapacity() == 100);
  109. edge2.setFlow(50);
  110. edge1.setCapacity(200);
  111. assertTrue("Flow was not changed", edge1.getFlow() == 50);
  112. assertTrue("Capacity not right", edge1.getCapacity() == 200);
  113. assertTrue("line broken", edge2.isWorking());
  114. edge2.calculateState();
  115. assertTrue("line broken", edge2.isWorking());
  116. edge2.setFlow(200);
  117. edge2.calculateState();
  118. assertTrue("line not broken", !edge2.isWorking());
  119. edge1.setCapacity(-1);
  120. edge1.calculateState();
  121. edge1.setCapacity(500);
  122. edge1.calculateState();
  123. node1 = (CpsNode) edge1.getB();
  124. node2 = (CpsNode) edge2.getA();
  125. assertTrue("Not Same", node1 == node2);
  126. assertTrue("State not right", edge1.isWorking());
  127. edge1.setWorkingState(false);
  128. assertTrue("State not right", !edge1.isWorking());
  129. edge2.setTags(new ArrayList<>());
  130. edge1.setTags(new ArrayList<>());
  131. assertTrue("Tags not Empty", edge2.getTags().isEmpty());
  132. edge2.addTag(1);
  133. assertTrue("Tags not Empty", edge1.getTags().isEmpty());
  134. assertTrue("Tags Empty", !edge2.getTags().isEmpty());
  135. edge1.setTags(edge2.getTags());
  136. assertTrue("Tags Empty", !edge1.getTags().isEmpty());
  137. }
  138. /**
  139. * Test for HolonElement.
  140. */
  141. @Test
  142. public void testHolonElement() {
  143. HolonElement ele1 = new HolonElement("TV", 2, -20f, IdCounterElem.nextId(),null);
  144. HolonElement ele2 = new HolonElement("Fridge", 1, -50f, IdCounterElem.nextId(),null);
  145. assertTrue("Array not empty", ele1.getEnergyAtTimeStep(0) == -40);
  146. assertTrue("Array not empty", ele1.getEnergyAtTimeStep(2) == -40);
  147. assertTrue("Name not correct", ele1.getEleName().equals("TV"));
  148. ele1.setEleName(ele2.getEleName());
  149. assertTrue("Name not correct", ele1.getEleName().equals("Fridge"));
  150. assertTrue("Amount not correct", ele2.getAmount() == 1);
  151. ele2.setAmount(5);
  152. assertTrue("Amount not correct", ele2.getAmount() == 5);
  153. assertTrue("Total Energy not Correct", ele2.getOverallEnergy() == ele2.getAmount() * ele2.getEnergyPerElement());
  154. }
  155. /**
  156. * Test for Position.
  157. */
  158. @Test
  159. public void testPosition() {
  160. Position pos1 = new Position(100, 200);
  161. Position pos2 = new Position();
  162. assertTrue("Wrong coordinates", pos1.x == 100 && pos1.y == 200);
  163. assertTrue("Are the Same", pos1.x != pos2.x);
  164. assertTrue("not (-1,-1)", pos2.x == -1 && pos2.y == -1);
  165. }
  166. /**
  167. * Test SubNet.
  168. */
  169. @Test
  170. public void testSubNet() {
  171. PraktikumHolonsAdapter adapter = new PraktikumHolonsAdapter();
  172. ArrayList<HolonObject> obj = new ArrayList<>();
  173. ArrayList<CpsEdge> edge = new ArrayList<>();
  174. ArrayList<HolonSwitch> sw = new ArrayList<>();
  175. ArrayList<HolonBattery> sb = new ArrayList<>();
  176. assertTrue("Not Empty", obj.isEmpty());
  177. assertTrue("Not Empty", sw.isEmpty());
  178. assertTrue("Not Empty", edge.isEmpty());
  179. for (int i = 1; i < 10; i++) {
  180. HolonObject o = new HolonObject(adapter.generate(i));
  181. HolonSwitch s = new HolonSwitch(adapter.generate(i));
  182. o = new HolonObject(o);
  183. s = new HolonSwitch(s);
  184. obj.add(o);
  185. sw.add(s);
  186. edge.add(new CpsEdge(o, s));
  187. }
  188. SubNet sub = new SubNet(obj, edge, sw, sb);
  189. assertTrue("Empty", !sub.getObjects().isEmpty() && sub.getObjects().size() == 9);
  190. assertTrue("Empty", !sub.getSwitches().isEmpty() && sub.getSwitches().size() == 9);
  191. assertTrue("Empty", !sub.getEdges().isEmpty() && sub.getEdges().size() == 9);
  192. assertTrue("Wrong Obj", sub.getObjects().get(5).getObjName().equals("F"));
  193. }
  194. }