public void Parse_operation_and_argument_split_by_a_space( string instructionDescription, string expectedOperationDescription, int expectedArgumentDescription) { var(operation, argument) = InstructionParser.Parse(instructionDescription); Assert.Equal(operation, expectedOperationDescription); Assert.Equal(argument, expectedArgumentDescription); }
public static Instruction Create(string instructionDescription) { var(operation, argument) = InstructionParser.Parse(instructionDescription); return(operation switch { AccumulatorInstruction.OperationName => new AccumulatorInstruction(argument), JumpInstruction.OperationName => new JumpInstruction(argument), NoOperationInstruction.OperationName => new NoOperationInstruction(argument), _ => throw new ArgumentException( $"Instruction {operation} is unknown", nameof(instructionDescription)) });