maximelanglois / Rocket_Elevators_Controllers

0 stars 1 forks source link

commercial.cs #7

Open seurdge opened 5 years ago

seurdge commented 5 years ago

Le programme plante sur un null lorsque les ascenseurs se dirige dans la direction opposé à l'appelant ( ex: demande 1 up et tous les ascenseurs descendent ) ou si ceux de la mêmedirection sont plus haut que l'appelant

Problème dans la logique du FindBestElevator - Manque de tests !

findBestElevator RETURN INSAMEDIRECTION ( bestGAP : 85 ) findElevatorById ========= RETURN NULL

Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object. at RocketElevatorCSharpCommercialClassic.Column.requestElevator(Int32 requestedFloor, String direction) in /Users/seurdge/projects/Codeboxx/corrections/cohorte3/maxime_langlois/odyssey_semaine_3/Rocket_Elevators_Controllers/CSharp/Column.cs:line 152 at RocketElevatorCSharpCommercialClassic.Program.Main() in /Users/seurdge/projects/Codeboxx/corrections/cohorte3/maxime_langlois/odyssey_semaine_3/Rocket_Elevators_Controllers/CSharp/Program.cs:line 62

seurdge commented 5 years ago

Exemple de scénario qui plante

battery.columnList[2].elevatorList[0].currentFloor = 45; battery.columnList[2].elevatorList[0].direction = "DOWN";
battery.columnList[2].elevatorList[0].status = "MOVING"; // MOVING or IDLE battery.columnList[2].elevatorList[0].queue.Add(1);

        battery.columnList[2].elevatorList[1].currentFloor = 2;
        battery.columnList[2].elevatorList[1].direction  =  "UP";              
        battery.columnList[2].elevatorList[1].status =  "MOVING"; // MOVING or IDLE
        battery.columnList[2].elevatorList[1].queue.Add(45);

        battery.columnList[2].elevatorList[2].currentFloor = 55;
        battery.columnList[2].elevatorList[2].direction  =  "UP";              
        battery.columnList[2].elevatorList[2].status =  "MOVING"; // MOVING or IDLE
        battery.columnList[2].elevatorList[2].queue.Add(61);

        battery.columnList[2].elevatorList[3].currentFloor = 50;
        battery.columnList[2].elevatorList[3].direction  =  "DOWN";                
        battery.columnList[2].elevatorList[3].status =  "MOVING"; // MOVING or IDLE
        battery.columnList[2].elevatorList[3].queue.Add(1);

        battery.columnList[2].elevatorList[4].currentFloor = 63;
        battery.columnList[2].elevatorList[4].direction  =  "DOWN";                
        battery.columnList[2].elevatorList[4].status =  "MOVING"; // MOVING or IDLE
        battery.columnList[2].elevatorList[4].queue.Add(46);    

        Elevator elevator = battery.columnList[2].requestElevator(1, "UP");
        Console.WriteLine("USED ELEVATOR : " + elevator.id);