Пример #1
0
 public CommandTranslator(
     ICommandTranslator arithmeticCommandTranslator,
     ICommandTranslator stackOperationCommandTranslator,
     ICommandTranslator labelCommandTranslator,
     ICommandTranslator gotoCommandTranslator,
     ICommandTranslator ifGotoCommandTranslator,
     ICommandTranslator functionCommandTranslator,
     ICommandTranslator returnCommandTranslator,
     ICommandTranslator returnCallFunctionTranslator)
 {
     translators = new Dictionary <string, ICommandTranslator>
     {
         { "push", stackOperationCommandTranslator },
         { "pop", stackOperationCommandTranslator },
         { "add", arithmeticCommandTranslator },
         { "sub", arithmeticCommandTranslator },
         { "neg", arithmeticCommandTranslator },
         { "eq", arithmeticCommandTranslator },
         { "gt", arithmeticCommandTranslator },
         { "lt", arithmeticCommandTranslator },
         { "and", arithmeticCommandTranslator },
         { "or", arithmeticCommandTranslator },
         { "not", arithmeticCommandTranslator },
         { "label", labelCommandTranslator },
         { "goto", gotoCommandTranslator },
         { "if-goto", ifGotoCommandTranslator },
         { "function", functionCommandTranslator },
         { "return", returnCommandTranslator },
         { "call", returnCallFunctionTranslator }
     };
 }
Пример #2
0
 private VMTranslator CreateSutWithTranslator(ICommandTranslator translator)
 {
     return(new VMTranslator(
                new TextCleaner(),
                translator
                ));
 }
Пример #3
0
 public SingleCommandTranslatorProvider(ICommandTranslator commandTranslator)
 {
     if (commandTranslator == null)
     {
         throw new ArgumentNullException(nameof(commandTranslator));
     }
     CommandTranslator = commandTranslator;
 }
Пример #4
0
        public void When_Rover_Lands_It_Is_In_Initial_Position_With_Initial_Charge_And_Position_Has_Been_Visited()
        {
            var startingPosition = new Position(0, 0, Direction.East);
            var startingBattery  = 10;
            var testMap          = new PlanetMap(new Dictionary <Location, MapCellResource>()
            {
                { new Location(0, 0), MapCellResource.Ferrum }
            });
            ICommandTranslator commandTranslator = null;
            var rover = new Rover(startingPosition, startingBattery, testMap, commandTranslator);

            rover.CurrentPosition.ShouldBe(startingPosition);
            rover.CellsVisited.Count.ShouldBe(1);
            rover.CellsVisited.First().ShouldBe(startingPosition.Coordinate);
            rover.BatteryCharge.ShouldBe(startingBattery);
        }
Пример #5
0
 public CommandTranslator(
     ICommandTranslator arithmeticCommandTranslator,
     ICommandTranslator stackOperationCommandTranslator)
 {
     translators = new Dictionary <string, ICommandTranslator>
     {
         { "push", stackOperationCommandTranslator },
         { "pop", stackOperationCommandTranslator },
         { "add", arithmeticCommandTranslator },
         { "sub", arithmeticCommandTranslator },
         { "neg", arithmeticCommandTranslator },
         { "eq", arithmeticCommandTranslator },
         { "gt", arithmeticCommandTranslator },
         { "lt", arithmeticCommandTranslator },
         { "and", arithmeticCommandTranslator },
         { "or", arithmeticCommandTranslator },
         { "not", arithmeticCommandTranslator }
     };
 }
Пример #6
0
        public Rover(Position startingPosition, int startingBatteryCharge, PlanetMap map, ICommandTranslator commandTranslator)
        {
            this.CurrentPosition   = startingPosition;
            this.BatteryCharge     = startingBatteryCharge;
            this.Map               = map;
            this.commandTranslator = commandTranslator;
            this.CollectedSamples  = new List <MapCellResource>();
            this.CellsVisited      = new List <Location>()
            {
                startingPosition.Coordinate
            };

            this.BackoffStrategies = new List <string>()
            {
                "ERF",
                "ELF",
                "ELLF",
                "EBRF",
                "EBBLF",
                "EFF",
                "EFLFLF",
            };
        }
 public SingleCommandTranslatorProvider(ICommandTranslator commandTranslator)
 {
     if (commandTranslator == null) throw new ArgumentNullException(nameof(commandTranslator));
     CommandTranslator = commandTranslator;
 }
Пример #8
0
 public Messenger(ICommunicationDevice device, ICommandTranslator commandTranslator, IIncomingDataPreparer incomingDataPreparer)
 {
     _device               = device ?? throw new ArgumentNullException(nameof(device));
     _commandTranslator    = commandTranslator ?? throw new ArgumentNullException(nameof(commandTranslator));
     _incomingDataPreparer = incomingDataPreparer ?? throw new ArgumentNullException(nameof(incomingDataPreparer));
 }
Пример #9
0
 public ServiceController(ICommandTranslator commandTranslator, ILogger <ServiceController> logger)
 {
     this.commandTranslator = commandTranslator ?? throw new ArgumentNullException(nameof(commandTranslator));
     this.logger            = logger ?? throw new ArgumentNullException(nameof(logger));
 }
Пример #10
0
 public VMTranslator(ITextCleaner textCleaner, ICommandTranslator translator)
 {
     this.textCleaner = textCleaner;
     this.translator  = translator;
 }
Пример #11
0
 public CommandHandler(ICommandDefinitions definitions, ICommandTranslator translator, World world)
 {
     _definitions = definitions;
     _translator  = translator;
     _world       = world;
 }