Advertisement
Guest User

Untitled

a guest
Mar 7th, 2012
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 25.59 KB | None | 0 0
  1.  
  2. ◄ Vorherige AktivitätNächste Aktivität ►
  3. SS12:Programmierpraktikum (Java)
  4. Sie sind hier
  5. WueCampus / ► SS12_JPP / ► Aufgaben / ► GameOfLife
  6.  
  7. RoSE - Aufgaben
  8. In der folgenden Aufgaben sollen vier Roboter programmiert werden, die unterschiedliche Aufgaben erledigen. Dabei werden Sie die Robotersimulationsumgebung RoSE verwenden. Da Ihnen hier ein Eclipse-Projekt vorgegeben wird, müssen sie beim Importieren "Check out as project with the name specified" wählen und den vorgeschlagenen Namen einfach lassen, anstatt "Check out as project configured using the New Project Wizard".
  9.  
  10. Zeichnen einer Geraden
  11.  
  12. In dieser sehr einfachen Aufgabe sollen Sie einen simulierten Roboter entwickeln, der eine Linie mit wechselnden Farben auf das Feld zeichnet. Die Linie soll eine Länge von 10 Feldern haben und nacheinander immer wieder aus den Farben rot, grün und blau bestehen. Die Linie soll direkt vom Startpunkt aus gezeichnet werden, der Roboter schaut bereits in die richtigen Richtung. Das erste bemalte Feld soll das Feld sein, auf dem der Roboter startet. Es spielt keine Rolle, wo Sie den Roboter stehen lassen und auch nicht, ob Sie andere Teile des Feldes bemalen. Sie können also beliebige andere Sachen zum Test implementieren und auch abgeben. Aussehen soll/kann ihr Ergebnis dann wie folgt:
  13.  
  14.  
  15.  
  16. In diesem Fall haben Sie ganz am linken Rand gestartet.
  17.  
  18. Erste Schritte mit RoSE.
  19. Implementieren Sie eine Klasse Line im Paket user, die von der abstrakten Klasse rose.control.Controller erbt. Implementieren Sie in Line die abstrakte Methode void live(String[] args). Diese Methode wird von der Simulationsumgebung aufgerufen und soll das Verhalten ihres Roboters beschreiben. Die abstrakte Klasse rose.control.Controller stellt Ihnen dazu bereits Methoden zur Manipulation des Roboters zur Verfügung. Für diese Aufgabe benötigen Sie:
  20.  
  21. markCurrentNode(Color color)
  22. moveForward()
  23. Die Enumeration rose.world.Color enthält die Farben RED, GREEN, BLUE, WHITE und BLACK.
  24. Sie können für einen ersten Test die live-Methode durch folgenden Code ersetzen. Wählen Sie dann in Eclipse den kleinen Pfeil rechts neben dem Run-Button und klicken Sie dort auf Line:
  25.  
  26. public void live(String[] args) {
  27. for (int i = 0; i < 30; i++) {
  28. moveForward();
  29. moveForward();
  30. rotateCCW();
  31. }
  32. }
  33.  
  34. Der Roboter sollte daraufhin im ein paar mal im Kreis fahren.
  35. Zeichnen eines roten Quadrats variabler Länge
  36. In dieser Aufgabe sollen Sie ein rotes Quadrat variabler Länge zeichnen. Implementieren Sie dazu einen Controller in der Klasse Square im Paket user. Leiten Sie auch diese Klasse wieder von rose.control.Controller ab. Im Gegensatz zur vorherigen Aufgabe ist es nun auch notwendig eine Drehung auszuführen. Schauen Sie sich dazu die Dokumentation von rose.control.Controller an.
  37.  
  38. Sie starten in der süd-westlichen Ecke des Quadrates und schauen nach Osten. Die Länge des zu zeichnenden Quadrats wird der live Methode als erstes Argument, also an erster Stelle im Array übergeben. Die Konvertierung von String nach Integer kann mit Hilfe der Klasse java.lang.Integer erfolgen. Lesen Sie dazu die API Dokumentation. Ein Beispiel mit der Seitelänge von 5 könnte dann so aussehen:
  39.  
  40.  
  41.  
  42. Sie können in der Aufgabe davon ausgehen, dass die Länge immer eine korrekte String-Repräsentation eines Integers ist, die einen Integer > 0 beschreibt und, dass das Feld immer groß genug ist. Für die Ausgabe der Tests ist es interessant, dass Sie auf Node (8,5) starten.
  43.  
  44. Rotes Kreuz im blauen Quadrat
  45. In dieser Aufgabe sollen Sie ein rotes Kreuz in einem blauen Quadrat (mit beliebiger Seitenlänge) zeichnen. Implementieren Sie dazu einen Controller in der Klasse SquareCross im Paket user, der von rose.control.Controller erbt. Ein Beispiel für eine Kantenlänge von 9 Feldern sehen Sie unten:
  46.  
  47.  
  48.  
  49. Ihr Roboter startet dabei in der Mitte des Kreuzes, mit Blickrichtung nach Osten. Die Startposition des Roboters ist (5, 5). Das sollte für Sie eigentlich unerheblich sein, es hilft Ihnen aber eventuelle Fehlermeldungen zu verstehen. Wenn die Ausgabe eines Test also sagt:
  50.  
  51. (5, 5) is nicht rot.
  52. Dann wissen Sie, dass das Feld, auf dem Sie starten nicht rot markiert ist, obwohl es das sein sollte.
  53.  
  54. Auch dieses mal erhalten Sie als ersten Parameter die Seitenlänge des Quadrats. Sie können davon ausgehen, dass das Feld immer weit genug ist und, dass die Kantenlänge immer eine ungerade Zahl > 1 ist.
  55.  
  56. Fuer die Erfüllung der Aufgabe ist es unerheblich, wo Ihr Roboter endet und auch, ob Sie sonstige Sachen auf das Feld malen. Alle unwichtigen Felder werden ignoriert. Theoretisch könnten Sie die Aufgabe also auch loesen, indem Sie ein rotes Kreuz, in einem ausgefüllten Quadrat malen.
  57.  
  58. Sie erhalten zwei Ausgaben. Die eine weisst Sie darauf hin, dass Sie die Figur richtig gezeichnet haben. Diese Aufgabe können Sie entweder mit 100 oder mit 0 Punkten lösen. Interessanter ist die zweite Ausgabe. Sie gibt Ihnen Punkte, je nachdem wie viel Schritte Sie gebraucht haben. Je weniger Schritte Sie brauchen, desto höher Ihre Punktzahl. Wenn Sie hier weniger als 20 Punkte bekommen gilt die Aufgabe als nicht bestanden.
  59.  
  60. Da dies die erste Aufgabe ist, bei der die Anzahl an Schritten eine Rolle spielt soll hier noch kurz das Schritt-System erklärt werden.
  61.  
  62. Folgende Aktionen kosten Sie einen Schritt:
  63.  
  64. Drehungen
  65. Bewegungen (auch wenn Sie nicht erfolgreich sind)
  66. Markierung von Feldern
  67. Folgende Aktion kostet Sie keinen Schritt:
  68. Sensordaten abfragen mit der Methode getInput()
  69. Sie sollten also die Sensordaten verwenden um unnötige Aktionen zu vermeiden.
  70. Game of Life for RoSE
  71. Ziel ist die Implementierung des berühmten GameOfLife von Conway. Der Verlauf des Spiels soll mit Hilfe der neuen Roboter-Simulationsumgebung RoSE visualisiert werden. Für detaillierte Informationen zu Aufbau, Regeln und Ablauf des Spiels siehe: http://de.wikipedia.org/wiki/Conways_Spiel_des_Lebens.
  72. Der Roboter startet auf einem beliebigen Feld in einer unbekannten Umgebung, die er zunächst erforschen muss, dabei muss er sowohl den Zustand, als auch die Dimension des Feldes erforschen. Zur Vereinfachung können Sie davon ausgehen, dass es sich um eine rechteckige Welt handelt in der jedes Feld begehbar ist. Gespielt wird auf einem Torus, was bedeutet dass Felder am Rand mit der gegenüberliegenden Seite benachbart sind. Der Zustand einer Zelle ist durch ihre Farbe gegeben:
  73.  
  74. blau - Die Zelle lebt.
  75. weiss - Die Zelle ist tot.
  76. Beispielscreenshot:
  77.  
  78.  
  79. Nachdem das Feld vollständig eingelesen ist und die Dimensionen bekannt sind, können Sie den Roboter als Drucker verwenden. Berechnen Sie den neuen Zustand und markieren Sie dann alle Felder in der richtigen Farbe.
  80.  
  81. GameOfLife.java - user.GameOfLife
  82.  
  83. Das Spiel soll in der Klasse GameOfLife im Paket user implementiert werden. Zusätzlich muss sie von rose.control.Controller erben, um mit der Welt kommunizieren zu können. Für alle Tests wird davon ausgegangen, dass der Koordinatenursprung (0, 0) in der linken, oberen Ecke liegt. Die x-Achse verläuft dann nach rechts, die y-Achse nach unten. Wenn Sie diese Aufgabe bestmöglich erledigen wollen, müssen sie die Anzahl der Schritte, die sie zum Zeichnen brauchen, minimieren. Sie bekommen dazu in einem optionalen Test die Anzahl der Schritte, die sie gebraucht haben, und eine Bepunktung angezeigt. Wenn sie 100 von 100 Punkten in dem optionalen Test erreicht haben, wird ihre Abgabe grün. Dies ist nicht nötig zum bestehen. Sie können davon ausgehen, dass nur sie das Feld verändern und die Kenntnis des Feldes nutzen, um ihre Ausgabe zu optimieren.
  84.  
  85. Folgendes Interface ist (mindestens) zu erfüllen:
  86.  
  87. public boolean[][] scanWorld()
  88. soll aus einer beliebigen Startposition heraus die komplette Umgebung erfassen und sie als zweidimensionales boolean-Array zurückgeben.
  89. true signalisiert eine lebende Zelle, false eine tote.
  90. public static int countNeighbours(boolean[][] field, int y, int x)
  91. zählt die Anzahl der lebenden Nachbarn für die Zelle, die an Index (y, x) des Feldes steht. Behandeln Sie ungültige Werte für x und y geeignet.
  92. public static boolean[][] computeNewState(boolean[][] field)
  93. berechnet den Zustand des Spielfeldes in der nächsten Generation ausgehend vom übergebenen Spielfeld und gibt diesen zurück. Dazu müssen Sie für alle Zellen den neuen Zustand berechnen, indem Sie die Nachbarschaft überprüfen. Beachten Sie, dass auch die diagonal liegenden Zellen zur Nachbarschaft gehören.
  94.  
  95.  
  96.  
  97. Hier sind alle Nachbarn der roten Zelle grün. Es gibt neben den grünen Zellen keine weiteren Nachbarn der roten Zelle.
  98. Eine tote Zelle wird dann zu einer lebenden, wenn sie genau drei lebende Nachbarn besitzt.
  99. Eine lebende Zelle stirbt genau dann, wenn sie weniger als zwei oder mehr als drei lebende Nachbarn hat.
  100. Beachten Sie, dass die Welt als Torus zu sehen ist. Also eine Zelle am rechten Rand hat seine rechten Nachbarn auf der linken Seite des Spielfelds. Gleiches gilt natürlich auch umgekehrt und für die Grenzen oben und unten. Damit entsteht eine quasi unendlich große Spielwelt.
  101. public void drawState(boolean[][] field)
  102. Schreibt den übergebenen Zustand auf die Welt. Dazu muss der Roboter mindestens alle zu ändernden Feldern ansteuern und dort die neue Farbe setzen. Achten Sie darauf, dass diese Methode auch aufgerufen werden kann, ohne, dass der Roboter etwas auf der Welt gemacht hat. Wenn Sie diese Methode optimieren wollen, müssen Sie erst überprüfen, ob Sie bereits über genug Kenntniss des Spielfeldes (Grösse, letzten Zustand) verfügen.
  103. public void live(String[] args)
  104. soll den Spielablauf wie oben beispielhaft beschrieben steuern. In args[0] steht wieviele Generationen Sie berechnen sollen, bevor Sie die done()-Methode aufrufen.
  105. Abzugebende Dateien
  106. Folgende Dateien müssen über PABS abgegeben werden:
  107.  
  108. Line.java
  109. Square.java
  110. SquareCross.java
  111. GameOfLife.java
  112. Verfügbar ab: Montag, 20. Februar 2012, 12:00
  113. Abgabetermin: Montag, 12. März 2012, 12:00
  114. Repository: https://[email protected]:443/svn/SS12_I_PP/s222894/gol/code
  115. Korrektur-Status: Keine endgültige Abgabe gefunden.
  116.  
  117.  
  118.  
  119. SVN-Revision 7159 vom 8. March 2012, 1:07:47 –
  120. Tests zeigen grobe Mängel, Abgabe wird nicht akzeptiert.
  121.  
  122. Commit-Message:
  123. Reports
  124. TestInterfacesTestRequiredCompileStudent
  125. [echo] compiling functional tests...
  126. [javac] Compiling 4 source files to /tmp/reactor-947ed554-6e3e-4057-8818-55ee476fb325/build/classes
  127. [echo] executing functional tests..
  128. [junit] Running tests.reqTests.GOLReq
  129. [junit] Testsuite: tests.reqTests.GOLReq
  130. [junit] Tests run: 6, Failures: 1, Errors: 0, Time elapsed: 1.251 sec
  131. [junit] Tests run: 6, Failures: 1, Errors: 0, Time elapsed: 1.251 sec
  132. [junit]
  133. [junit] Testcase: testDrawStateOnAll3030Fields took 0.24 sec
  134. [junit] FAILED
  135. [junit] Should draw the field:
  136. [junit] 000010111100001111000101011010
  137. [junit] 110000011010100000101100000010
  138. [junit] 110100010101100000111011110111
  139. [junit] 001010101000101111100111111101
  140. [junit] 011010110110110100100000001000
  141. [junit] 010111111111011001010101010000
  142. [junit] 000101101101100011011101000010
  143. [junit] 101010010011010110101100011110
  144. [junit] 100000111000110011001011000111
  145. [junit] 100100110110010111100110111001
  146. [junit] 011011101010100101010100010010
  147. [junit] 001010111000010010001110011101
  148. [junit] 111101010010000011010101100111
  149. [junit] 111011100111001100011000011011
  150. [junit] 110110101001011011010111000011
  151. [junit] 010110001101101100100111110011
  152. [junit] 001101100010011101100101000000
  153. [junit] 101101110001101101001101000000
  154. [junit] 110110100010100000111101001101
  155. [junit] 011001111011000101111101110111
  156. [junit] 011110010000000010001010111001
  157. [junit] 100110011011011101001111000110
  158. [junit] 001101100111011101110001001011
  159. [junit] 111111000110010101011110010100
  160. [junit] 000010000101100001011011000011
  161. [junit] 000100000110011011011101100011
  162. [junit] 000000101011011111111101111011
  163. [junit] 010001010010000001111010010011
  164. [junit] 000010011010001100110010101110
  165. [junit] 000001000000101010010000110001
  166. [junit] but draw100001100101001011110110011110
  167. [junit] 011000000010110110100000000000
  168. [junit] 000100100110100110000000000000
  169. [junit] 000010100000001110001100000001
  170. [junit] 110000000000000000011100000100
  171. [junit] 010000000000001101010100100000
  172. [junit] 010000000000000000000000010011
  173. [junit] 110110000010011100100001101000
  174. [junit] 000101000000010000001001000000
  175. [junit] 001110000010010100010000111000
  176. [junit] 011010000011110100010001000010
  177. [junit] 000000001001000100010001010000
  178. [junit] 000000000011001011110001100000
  179. [junit] 000000001101111000010000011000
  180. [junit] 000000101000000011010000001000
  181. [junit] 010000101101000000010000000010
  182. [junit] 100000001110000001110000000001
  183. [junit] 100000010010100101000001100001
  184. [junit] 000000001110111100000001011100
  185. [junit] 000000001111000011000000000000
  186. [junit] 000000000000100000000000000000
  187. [junit] 100000011001010001001000000000
  188. [junit] 000000110000000001000001101000
  189. [junit] 110000101000010101000000101100
  190. [junit] 010001001001100101000000000100
  191. [junit] 100000001000000000000000000000
  192. [junit] 000000111001110000000000001000
  193. [junit] 100001000010010000000010000000
  194. [junit] 100011011101011110000100101100
  195. [junit] 000011000000000000011010000001
  196. [junit] : arrays first differed at element [0][0]; expected:<false> but was:<true>
  197. [junit] junit.framework.AssertionFailedError: Should draw the field:
  198. [junit] 000010111100001111000101011010
  199. [junit] 110000011010100000101100000010
  200. [junit] 110100010101100000111011110111
  201. [junit] 001010101000101111100111111101
  202. [junit] 011010110110110100100000001000
  203. [junit] 010111111111011001010101010000
  204. [junit] 000101101101100011011101000010
  205. [junit] 101010010011010110101100011110
  206. [junit] 100000111000110011001011000111
  207. [junit] 100100110110010111100110111001
  208. [junit] 011011101010100101010100010010
  209. [junit] 001010111000010010001110011101
  210. [junit] 111101010010000011010101100111
  211. [junit] 111011100111001100011000011011
  212. [junit] 110110101001011011010111000011
  213. [junit] 010110001101101100100111110011
  214. [junit] 001101100010011101100101000000
  215. [junit] 101101110001101101001101000000
  216. [junit] 110110100010100000111101001101
  217. [junit] 011001111011000101111101110111
  218. [junit] 011110010000000010001010111001
  219. [junit] 100110011011011101001111000110
  220. [junit] 001101100111011101110001001011
  221. [junit] 111111000110010101011110010100
  222. [junit] 000010000101100001011011000011
  223. [junit] 000100000110011011011101100011
  224. [junit] 000000101011011111111101111011
  225. [junit] 010001010010000001111010010011
  226. [junit] 000010011010001100110010101110
  227. [junit] 000001000000101010010000110001
  228. [junit] but draw100001100101001011110110011110
  229. [junit] 011000000010110110100000000000
  230. [junit] 000100100110100110000000000000
  231. [junit] 000010100000001110001100000001
  232. [junit] 110000000000000000011100000100
  233. [junit] 010000000000001101010100100000
  234. [junit] 010000000000000000000000010011
  235. [junit] 110110000010011100100001101000
  236. [junit] 000101000000010000001001000000
  237. [junit] 001110000010010100010000111000
  238. [junit] 011010000011110100010001000010
  239. [junit] 000000001001000100010001010000
  240. [junit] 000000000011001011110001100000
  241. [junit] 000000001101111000010000011000
  242. [junit] 000000101000000011010000001000
  243. [junit] 010000101101000000010000000010
  244. [junit] 100000001110000001110000000001
  245. [junit] 100000010010100101000001100001
  246. [junit] 000000001110111100000001011100
  247. [junit] 000000001111000011000000000000
  248. [junit] 000000000000100000000000000000
  249. [junit] 100000011001010001001000000000
  250. [junit] 000000110000000001000001101000
  251. [junit] 110000101000010101000000101100
  252. [junit] 010001001001100101000000000100
  253. [junit] 100000001000000000000000000000
  254. [junit] 000000111001110000000000001000
  255. [junit] 100001000010010000000010000000
  256. [junit] 100011011101011110000100101100
  257. [junit] 000011000000000000011010000001
  258. [junit] : arrays first differed at element [0][0]; expected:<false> but was:<true>
  259. [junit] at tests.reqTests.GOLReq.testDrawStateOnAll3030Fields(GOLReq.java:107)
  260. [junit]
  261. [junit] Testcase: testLiveOnGlider took 0.184 sec
  262. [junit] Testcase: testCountNeighboursOnRandomField took 0.76 sec
  263. [junit] Testcase: testScanWorldOnAllFields took 0.028 sec
  264. [junit] Testcase: testComputeNewStateOnFieldOfSizeOne took 0 sec
  265. [junit] Testcase: testComputeNewStateOnRandomField took 0.021 sec
  266. [junit] TEST tests.reqTests.GOLReq FAILED
  267. [junit] Running tests.reqTests.Line
  268. [junit] Testsuite: tests.reqTests.Line
  269. [junit] Result: got [100] points of [100] and therefore [passed] (Can draw line?)
  270. [junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0.118 sec
  271. [junit] Output:
  272. [junit] Result: got [100] points of [100] and therefore [passed] (Can draw line?)
  273. [junit]
  274. [junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0.118 sec
  275. [junit] ------------- Standard Output ---------------
  276. [junit] Result: got [100] points of [100] and therefore [passed] (Can draw line?)
  277. [junit] ------------- ---------------- ---------------
  278. [junit]
  279. [junit] Testcase: TestIfFigureIsDrawnCorrectly took 0.118 sec
  280. [junit] Running tests.reqTests.Square
  281. [junit] Testsuite: tests.reqTests.Square
  282. [junit] true
  283. [junit] true
  284. [junit] true
  285. [junit] true
  286. [junit] true
  287. [junit] true
  288. [junit] true
  289. [junit] true
  290. [junit] Result: got [100] points of [100] and therefore [passed] (Can draw square?)
  291. [junit] true
  292. [junit] true
  293. [junit] true
  294. [junit] true
  295. [junit] true
  296. [junit] true
  297. [junit] true
  298. [junit] true
  299. [junit] true
  300. [junit] true
  301. [junit] true
  302. [junit] true
  303. [junit] Result: got [100] points of [100] and therefore [passed] (Can draw square?)
  304. [junit] true
  305. [junit] true
  306. [junit] true
  307. [junit] true
  308. [junit] true
  309. [junit] true
  310. [junit] true
  311. [junit] true
  312. [junit] true
  313. [junit] true
  314. [junit] true
  315. [junit] true
  316. [junit] true
  317. [junit] true
  318. [junit] true
  319. [junit] true
  320. [junit] Result: got [100] points of [100] and therefore [passed] (Can draw square?)
  321. [junit] Tests run: 3, Failures: 0, Errors: 0, Time elapsed: 0.458 sec
  322. [junit] Output:
  323. [junit] true
  324. [junit] true
  325. [junit] true
  326. [junit] true
  327. [junit] true
  328. [junit] true
  329. [junit] true
  330. [junit] true
  331. [junit] Result: got [100] points of [100] and therefore [passed] (Can draw square?)
  332. [junit] true
  333. [junit] true
  334. [junit] true
  335. [junit] true
  336. [junit] true
  337. [junit] true
  338. [junit] true
  339. [junit] true
  340. [junit] true
  341. [junit] true
  342. [junit] true
  343. [junit] true
  344. [junit] Result: got [100] points of [100] and therefore [passed] (Can draw square?)
  345. [junit] true
  346. [junit] true
  347. [junit] true
  348. [junit] true
  349. [junit] true
  350. [junit] true
  351. [junit] true
  352. [junit] true
  353. [junit] true
  354. [junit] true
  355. [junit] true
  356. [junit] true
  357. [junit] true
  358. [junit] true
  359. [junit] true
  360. [junit] true
  361. [junit] Result: got [100] points of [100] and therefore [passed] (Can draw square?)
  362. [junit]
  363. [junit] Tests run: 3, Failures: 0, Errors: 0, Time elapsed: 0.458 sec
  364. [junit] ------------- Standard Output ---------------
  365. [junit] true
  366. [junit] true
  367. [junit] true
  368. [junit] true
  369. [junit] true
  370. [junit] true
  371. [junit] true
  372. [junit] true
  373. [junit] Result: got [100] points of [100] and therefore [passed] (Can draw square?)
  374. [junit] true
  375. [junit] true
  376. [junit] true
  377. [junit] true
  378. [junit] true
  379. [junit] true
  380. [junit] true
  381. [junit] true
  382. [junit] true
  383. [junit] true
  384. [junit] true
  385. [junit] true
  386. [junit] Result: got [100] points of [100] and therefore [passed] (Can draw square?)
  387. [junit] true
  388. [junit] true
  389. [junit] true
  390. [junit] true
  391. [junit] true
  392. [junit] true
  393. [junit] true
  394. [junit] true
  395. [junit] true
  396. [junit] true
  397. [junit] true
  398. [junit] true
  399. [junit] true
  400. [junit] true
  401. [junit] true
  402. [junit] true
  403. [junit] Result: got [100] points of [100] and therefore [passed] (Can draw square?)
  404. [junit] ------------- ---------------- ---------------
  405. [junit]
  406. [junit] Testcase: TestIfFigureIsDrawnCorrectlyWithSidelength3 took 0.126 sec
  407. [junit] Testcase: TestIfFigureIsDrawnCorrectlyWithSidelength4 took 0.144 sec
  408. [junit] Testcase: TestIfFigureIsDrawnCorrectlyWithSidelength5 took 0.185 sec
  409. [junit] Running tests.reqTests.SquareCross
  410. [junit] Testsuite: tests.reqTests.SquareCross
  411. [junit] Result: got [100] points of [100] and therefore [passed] (Can draw figure?)
  412. [junit] Result: got [100] points of [100] and therefore [passed] (Can draw figure?)
  413. [junit] Result: got [100] points of [100] and therefore [passed] (Can draw figure?)
  414. [junit] Result: got [100] points of [100] and therefore [passed] (Can draw figure?)
  415. [junit] Tests run: 4, Failures: 0, Errors: 0, Time elapsed: 0.825 sec
  416. [junit] Output:
  417. [junit] Result: got [100] points of [100] and therefore [passed] (Can draw figure?)
  418. [junit] Result: got [100] points of [100] and therefore [passed] (Can draw figure?)
  419. [junit] Result: got [100] points of [100] and therefore [passed] (Can draw figure?)
  420. [junit] Result: got [100] points of [100] and therefore [passed] (Can draw figure?)
  421. [junit]
  422. [junit] Tests run: 4, Failures: 0, Errors: 0, Time elapsed: 0.825 sec
  423. [junit] ------------- Standard Output ---------------
  424. [junit] Result: got [100] points of [100] and therefore [passed] (Can draw figure?)
  425. [junit] Result: got [100] points of [100] and therefore [passed] (Can draw figure?)
  426. [junit] Result: got [100] points of [100] and therefore [passed] (Can draw figure?)
  427. [junit] Result: got [100] points of [100] and therefore [passed] (Can draw figure?)
  428. [junit] ------------- ---------------- ---------------
  429. [junit]
  430. [junit] Testcase: TestIfFigureIsDrawnCorrectlyWithSidelength3 took 0.21 sec
  431. [junit] Testcase: TestIfFigureIsDrawnCorrectlyWithSidelength5 took 0.233 sec
  432. [junit] Testcase: TestIfFigureIsDrawnCorrectlyWithSidelength7 took 0.23 sec
  433. [junit] Testcase: TestIfFigureIsDrawnCorrectlyWithSidelength9 took 0.148 sec
  434. [junit] Tests FAILED
  435.  
  436. BUILD FAILED
  437.  
  438. /tmp/reactor-947ed554-6e3e-4057-8818-55ee476fb325/build.xml:254: functional tests failed.
  439. at org.apache.tools.ant.taskdefs.Exit.execute(Exit.java:164)
  440. at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
  441. at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
  442. at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  443. at java.lang.reflect.Method.invoke(Method.java:601)
  444. at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
  445. at org.apache.tools.ant.Task.perform(Task.java:348)
  446. at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68)
  447. at net.sf.antcontrib.logic.IfTask.execute(IfTask.java:197)
  448. at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  449. at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
  450. at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  451. at java.lang.reflect.Method.invoke(Method.java:601)
  452. at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
  453. at org.apache.tools.ant.TaskAdapter.execute(TaskAdapter.java:154)
  454. at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
  455. at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
  456. at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  457. at java.lang.reflect.Method.invoke(Method.java:601)
  458. at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
  459. at org.apache.tools.ant.Task.perform(Task.java:348)
  460. at org.apache.tools.ant.Target.execute(Target.java:390)
  461. at org.apache.tools.ant.Target.performTasks(Target.java:411)
  462. at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1397)
  463. at org.apache.tools.ant.Project.executeTarget(Project.java:1366)
  464. at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
  465. at org.apache.tools.ant.Project.executeTargets(Project.java:1249)
  466. at org.apache.tools.ant.Main.runBuild(Main.java:801)
  467. at org.apache.tools.ant.Main.startAnt(Main.java:218)
  468. at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
  469. at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
  470. Quellen
  471. Resources
  472. Libraries
  473. SVN-Revision 7152 vom 8. March 2012, 1:01:38 –
  474. SVN-Revision 7142 vom 8. March 2012, 0:38:47 –
  475. SVN-Revision 7140 vom 8. March 2012, 0:34:34 –
  476. SVN-Revision 7108 vom 7. March 2012, 23:00:41 –
  477. SVN-Revision 7097 vom 7. March 2012, 22:37:14 –
  478. SVN-Revision 7091 vom 7. March 2012, 22:24:12 –
  479. SVN-Revision 7061 vom 7. March 2012, 21:59:10 –
  480. SVN-Revision 7044 vom 7. March 2012, 21:43:21 –
  481. SVN-Revision 7028 vom 7. March 2012, 21:11:45 –
  482. SVN-Revision 7024 vom 7. March 2012, 20:57:50 –
  483. SVN-Revision 7010 vom 7. March 2012, 20:19:23 –
  484. SVN-Revision 6961 vom 7. March 2012, 19:13:58 –
  485. SVN-Revision 6955 vom 7. March 2012, 19:02:32 –
  486. SVN-Revision 4896 vom 4. March 2012, 19:15:41 –
  487. SVN-Revision 548 vom 21. February 2012, 13:06:49 – Copying template for user s222894 and assignment: ...
  488. Tobias Houfek (Logout)
  489. SS12_JPP
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement