def testUpdateRidersInWaitDict(self):
        r1 = Rider("R1", 0, 7, 1, 10, 20, 1, 1, 2, 1)
        dispatch = Dispatcher()
        for zone_id in range(1, 78):
            dispatch.cancel_rider[zone_id] = 0
        dispatch.handleRiderIntoDict(r1)

        RiderStatusTracker.timestamp = 1
        dispatch.updateRidersInWaitDict()
        self.assertEqual(WAITING, r1.getStatus())
        self.assertEqual(
            "7: {0: {}, 1: {}, 2: {}, 3: {}, 4: {}, 5: {}, 6: {1: [R1, ], }, 7: {}, 8: {}, 9: {}, 10: {}, 11: {}, -1: {}, }",
            dispatch.showRiderWaitDict(7))
        self.assertEqual(1, r1.getWaitTime())
        self.assertEqual(1, dispatch.countRiderNumberInWaitDict())

        RiderStatusTracker.timestamp = 21
        dispatch.updateRidersInWaitDict()
        self.assertEqual(CANCEL, r1.getStatus())
        self.assertEqual(
            "7: {0: {}, 1: {}, 2: {}, 3: {}, 4: {}, 5: {}, 6: {}, 7: {}, 8: {}, 9: {}, 10: {}, 11: {}, -1: {}, }",
            dispatch.showRiderWaitDict(7))
        self.assertEqual("{R1, }", dispatch.showRiderCanceledDict())
        self.assertEqual(1, r1.getWaitTime())
        self.assertEqual(1, dispatch.countRiderNumberInCancelDict())
 def testConstructor(self):
     r1 = Rider("R1", 0, 7, 6, 10, 20, 1, 1, 2, 1)
     self.assertEqual("R1", r1.getID())
     self.assertEqual(0, r1.getRequestTimeStamp())
     self.assertEqual(7, r1.getSrcZone())
     self.assertEqual(6, r1.getDestZone())
     self.assertEqual(10, r1.getDefaultPrice())
     self.assertEqual(math.inf, r1.getPrice())
     self.assertEqual(20, r1.getPatience())
     self.assertEqual(1, r1.getShortestTime())
     self.assertEqual(None, r1.getArrivalTimestamp())
     self.assertEqual(None, r1.getGroupID())
     self.assertEqual("waiting", r1.getStatus())
     self.assertEqual(0, r1.getWaitTime())
     self.assertEqual(-1, r1.getDetourTime())
     self.assertEqual(0, r1.getSat())
     self.assertEqual(
         "{R1, 0, 7, 6, 10, inf, 20, 6, 1, None, None, waiting, 0, -1, 0}",
         str(r1))
 def testTickWaitTime(self):
     r0 = Rider("R0", 0, 8, 24, 7.75, 20, -87.6333, 41.8996, -87.6764,
                41.9012)
     r0.tickWaitTime()
     self.assertEqual(1, r0.getWaitTime())