	@Test
	public void testHalfSteps() throws Exception {

		SimulatedStepperMotor dut = new SimulatedStepperMotor(getBuilderFor(buildProperty().setStepsPerRotation(1024)));
		
		   byte[] half_step_sequence = new byte[8];
		   half_step_sequence[0] = (byte) 0b0001;  
	        half_step_sequence[1] = (byte) 0b0011;
	        half_step_sequence[2] = (byte) 0b0010;
	        half_step_sequence[3] = (byte) 0b0110;
	        half_step_sequence[4] = (byte) 0b0100;
	        half_step_sequence[5] = (byte) 0b1100;
	        half_step_sequence[6] = (byte) 0b1000;
	        half_step_sequence[7] = (byte) 0b1001;

        for (int i = 0; i < half_step_sequence.length+1; i++) {
        	 doStep(dut, true, half_step_sequence, PinState.HIGH, PinState.LOW);			
		}
       
		assertPosition(half_step_sequence.length
				*360.0/1024.0, dut);
	}