private void CompareObjects(DemountSimulatorPlcCommunication simulator, IDemountStatus status)
 {
     Assert.AreEqual<bool>(simulator.IsCarrierPlateArrived, status.IsCarrierPlateArrived);
     Assert.AreEqual<bool>(simulator.IsCarrierPlateDemountStarted, status.IsCarrierPlateDemountStarted);
     Assert.AreEqual<int>(simulator.WaferDemountCounter, status.DemountInfo.DemountedWaferCount);
     Assert.AreEqual<bool>(simulator.IsCarrierPlateDemounted, status.DemountInfo.Completed);
     Assert.AreEqual<DemountCassetteHopper>(simulator.CanReadCassetteBarcode, status.CanReadCassetteBarcode);
     Assert.AreEqual<bool>(simulator.IsCassette[0].IsCassettePositioned, status.AreCassettes[0]);
     Assert.AreEqual<bool>(simulator.IsCassette[1].IsCassettePositioned, status.AreCassettes[1]);
     Assert.AreEqual<bool>(simulator.IsCassette[2].IsCassettePositioned, status.AreCassettes[2]);
     Assert.AreEqual<bool>(simulator.IsCassette[3].IsCassettePositioned, status.AreCassettes[3]);
     Assert.AreEqual<DemountState>(simulator.State, status.State);
 }
 private void CompareObjects(DemountSimulatorPlcCommunication simulator, bool barcodeError, bool isCarrierPlateBarcodeReadedOk,
     WaferSize carrierPlateWaferSize, int waferCount, DemountCassetteStation station, CarrierPlateRoutingType routingType, DemountCassetteStation from,
     WaferSize cassetteWaferSize, DemountCassetteHopper destination, bool isCassetteBarcodeReadedOk, bool spatulaInspectionRequired)
 {
     Assert.AreEqual<bool>(barcodeError, simulator.IsInformationSystemError);
     Assert.AreEqual<bool>(isCarrierPlateBarcodeReadedOk, simulator.IsCarrierPlateBarcodeReadedOk);
     Assert.AreEqual<WaferSize>(carrierPlateWaferSize, simulator.CarrierPlateWaferSize);
     Assert.AreEqual<int>(waferCount, simulator.CarrierPlateWaferCount);
     Assert.AreEqual<DemountCassetteStation>(station, simulator.DemountCassetteStation);
     Assert.AreEqual<CarrierPlateRoutingType>(routingType, simulator.CarrierPlateRoutingType);
     Assert.AreEqual<DemountCassetteStation>(from, simulator.RemoveCassetteFromDemountStation);
     Assert.AreEqual<WaferSize>(cassetteWaferSize, simulator.CassetteWaferSize);
     Assert.AreEqual<DemountCassetteHopper>(destination, simulator.DestinationStation);
     Assert.AreEqual<bool>(isCassetteBarcodeReadedOk, simulator.IsCassetteBarcodeReadedOk);
     Assert.AreEqual<bool>(spatulaInspectionRequired, simulator.ShouldInspectSpatula);
 }
 private void ChangeStatusData(DemountSimulatorPlcCommunication simulator)
 {
     for (int i = 0; i < _random.Next(1, 11); i++)
     {
         switch (_random.Next(1, 11))
         {
             case 1:
                 simulator.IsCarrierPlateArrived = (_random.NextDouble() > 0.5) ? true : false;
                 break;
             case 2:
                 simulator.IsCarrierPlateDemountStarted = (_random.NextDouble() > 0.5) ? true : false;
                 break;
             case 3:
                 simulator.WaferDemountCounter = SimulatorHelper.GetRandomUshort();
                 break;
             case 4:
                 simulator.IsCarrierPlateDemounted = (_random.NextDouble() > 0.5) ? true : false;
                 break;
             case 5:
                 simulator.CanReadCassetteBarcode = SimulatorHelper.GetRandomDemountCassetteHopper();
                 break;
             case 6:
                 simulator.IsCassette[0].IsCassettePositioned = (_random.NextDouble() > 0.5) ? true : false;
                 break;
             case 7:
                 simulator.IsCassette[1].IsCassettePositioned = (_random.NextDouble() > 0.5) ? true : false;
                 break;
             case 8:
                 simulator.IsCassette[2].IsCassettePositioned = (_random.NextDouble() > 0.5) ? true : false;
                 break;
             case 9:
                 simulator.IsCassette[3].IsCassettePositioned = (_random.NextDouble() > 0.5) ? true : false;
                 break;
             case 10:
                 simulator.State = SimulatorHelper.GetRandomDemountState();
                 break;
         }
     }
 }