public void create_test_submission()
		{
			var vm = new VirtualMachine(117, 1001, 1001, ReadImage("bin1.obf"));
			const int scorePort = 0;
			string fuelFile = VMImagesDirectory.GetFile("fuel.txt").FullPath;
			double[] outport = null;
			int ticks = 0;
			while ((ticks < 50) && ((outport == null) || (outport[scorePort] == 0.0)))
			{
				outport = vm.RunTimeStep(Vector.Zero);
				System.IO.File.WriteAllLines(
					fuelFile,
					new[]
						{
							"Score: " + outport[0],
							"Fuel: " + outport[1],
							"X to Earth: " + outport[2],
							"Y to Earth: " + outport[3],
							"Ticks: " + ticks,
						});
				ticks++;
			}
			VMImagesDirectory.GetFile("bin1.osf").Write(new BinaryData(vm.CreateSubmission()));
		}
		public void can_run_first_image()
		{
			var vm = new VirtualMachine(42, 3001, 3001, ReadImage("bin3.obf"));
			var ports = vm.RunTimeStep(Vector.Zero);
			LogOutputPorts(ports);
		}
		public void can_run_third_image()
		{
			var vm = new VirtualMachine(42, 42, 42, ReadImage("bin3.obf"));
			vm.RunTimeStep(Vector.Zero);
		}
		private double[] Run(double dx, double dy)
		{
			var output = new VirtualMachine(1, 1, 1, image.ToArray()).RunTimeStep(new Vector(dx, dy));
			LogOutputPorts(output);
			return output;
		}