<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -0,0 +1,74 @@
+import unittest
+from train_timetable import *
+
+class TestTrainTimetable(unittest.TestCase):
+
+	def test_empty_timetable_results_no_trains(self):
+		timetable = Timetable(42, [], [])
+		self.assertEqual(timetable.initial_trains(), (0, 0))
+		
+	def test_just_one_train_for_single_trip_A_to_B(self):
+		timetable = Timetable(42, [(0,60)], [])
+		self.assertEqual(timetable.initial_trains(), (1, 0))
+
+	def test_two_trips(self):
+		timetable = Timetable(42, [(0,60)], [(0,60)])
+		self.assertEqual(timetable.initial_trains(), (1, 1))
+	
+	def test_three_trips(self):
+		timetable = Timetable(1, [(0,60),(62,70),(72,80)], [])
+	 	self.assertEqual(timetable.initial_trains(), (3, 0))		
+	 
+	def test_two_concurrent_trips(self):
+		timetable = Timetable(1, [(0,60)], [(0,60)])
+	 	self.assertEqual(timetable.initial_trains(), (1, 1))
+	 	
+	def test_two_way_trips(self):
+		timetable = Timetable(1, [(0,60)], [(59,119)])
+	 	self.assertEqual(timetable.initial_trains(), (1, 1))		
+	
+	def test_sequence_trips(self):
+		timetable = Timetable(1, [(0,60)], [(61,120)])
+		self.assertEqual(timetable.initial_trains(), (1,0))
+		
+#	def test_sequence_trips(self):
+#		timetable = Timetable(2, [(0,60)], [(62,120)])
+#		self.assertEqual(timetable.initial_trains(), (1,0))
+	
+		
+class TestTrainEvent(unittest.TestCase):
+	def test_no_trips(self):
+		timetable = Timetable(1, [], [])
+		self.assertEqual(timetable.events(), [])
+
+	def test_one_trip_A_to_B(self):
+		timetable = Timetable(0, [(0,1)], [])
+		self.assertEqual(timetable.events(), [Event(0, Event.departure, Event.A_B), Event(1, Event.arrival, Event.A_B)])
+		
+	def test_one_trip_B_to_A(self):
+		timetable = Timetable(0, [], [(0,1)])
+		self.assertEqual(timetable.events(), [Event(0, Event.departure, Event.B_A), Event(1, Event.arrival, Event.B_A)])
+		
+	def test_one_trip_B_to_A_and_A_to_B(self):
+		timetable = Timetable(0, [(0,1)], [(0,1)])
+		self.assertEqual(timetable.events(), [Event(0, Event.departure, Event.A_B), Event(1, Event.arrival, Event.A_B), Event(0, Event.departure, Event.B_A), Event(1, Event.arrival, Event.B_A)])
+		
+	def test_several_trips_B_to_A_and_A_to_B(self):
+		timetable = Timetable(0, [(0,1), (5,10)], [(0,1), (10,15)])
+		self.assertEqual(timetable.events(), [Event(0, Event.departure, Event.A_B), Event(1, Event.arrival, Event.A_B), Event(5, Event.departure, Event.A_B), Event(10, Event.arrival, Event.A_B), Event(0, Event.departure, Event.B_A), Event(1, Event.arrival, Event.B_A), Event(10, Event.departure, Event.B_A), Event(15, Event.arrival, Event.B_A)])
+
+	def test_one_trip_B_to_A(self):
+		timetable = Timetable(3, [], [(0,1)])
+		self.assertEqual(timetable.events(), [Event(0, Event.departure, Event.B_A), Event(4, Event.arrival, Event.B_A)])
+	
+	def test_event_act_arrival_on_B(self):
+		event = Event(0,Event.arrival,Event.A_B)
+		self.assertEqual((0,1),event.perform())
+
+	def test_event_act_arrival_on_A(self):
+		event = Event(0,Event.arrival,Event.B_A)
+		self.assertEqual((1,0),event.perform())
+
+
+if __name__ == '__main__':
+	unittest.main()</diff>
      <filename>04-Kake/Python/train_timetable_test.py</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>b1a36ef42ddc713beba226eefba8fb5c84da7044</id>
    </parent>
    <parent>
      <id>5712617ae5e38221615df78ae64e2673b231a37f</id>
    </parent>
  </parents>
  <author>
    <name>Dojo</name>
    <email>dojo@Nitim-2.local</email>
  </author>
  <url>http://github.com/dojosp/participant-s-projects/commit/6f4bce1d728d0c0cc59cbcebc52f885554322c65</url>
  <id>6f4bce1d728d0c0cc59cbcebc52f885554322c65</id>
  <committed-date>2009-04-13T20:21:51-07:00</committed-date>
  <authored-date>2009-04-13T20:21:51-07:00</authored-date>
  <message>Adding Kake's code for train timetable in python.
Hugo
Merge branch 'master' of git@github.com:dojosp/participant-s-projects

Conflicts:

	04-Kake/Python/train_timetable.py
	04-Kake/Python/train_timetable_test.py</message>
  <tree>d7898e4b394088207ae677d2529919c6c7548d3b</tree>
  <committer>
    <name>Dojo</name>
    <email>dojo@Nitim-2.local</email>
  </committer>
</commit>
