3.3 Tests done - aasmaa11/microscope GitHub Wiki

List of tests done on the ASIStage class

  • Move the X, Y and Z-axis by a position within the limits with move_by and check if the returned position is correct
  • Move the X, Y and Z-axis to a position within the limits with move_to and check if the returned position is correct
  • Move the X, Y and Z-axis by a position outside the limits with move_by and check if an assertion error is raised
  • Move the X, Y and Z-axis to a position outside the limits with move_to and check if an assertion error is raised

List of tests done on the ASIStageAxis class

  • Set the X-axis acceleration to a value within the valid range and check if _get_acceleration returns the correct value
  • Set the X-axis acceleration to a valid outside the valid range and check if an assertion error is raised
  • Set the Y-axis acceleration to a value within the valid range and check if _get_acceleration returns the correct value
  • Set the Y-axis acceleration to a valid outside the valid range and check if an assertion error is raised
  • Set the X-axis velocity to a value within the valid range and check if _get_velocity returns the correct value
  • Set the X-axis velocity to a valid outside the valid range and check if an assertion error is raised
  • Set the Y-axis velocity to a value within the valid range and check if _get_velocity returns the correct value
  • Set the Y-axis velocity to a valid outside the valid range and check if an assertion error is raised
  • Set the X-axis settle-time to a value within the valid range and check if _get_settle_time returns the correct value
  • Set the X-axis settle-time to a valid outside the valid range and check if an assertion error is raised
  • Set the Y-axis settle-time to a value within the valid range and check if _get_settle_time returns the correct value
  • Set the Y-axis settle-time to a valid outside the valid range and check if an assertion error is raised
  • Set the X-axis precision to a value within the valid range and check if _get_precision returns the correct value
  • Set the X-axis precision to a valid outside the valid range and check if an assertion error is raised
  • Set the Y-axis precision to a value within the valid range and check if _get_precision returns the correct value
  • Set the Y-axis precision to a valid outside the valid range and check if an assertion error is raised

List of acceptance tests done on Cockpit

  • As a Cockpit user, I want to be able to move the x, y and z-axis with the keypad.
    • Normal flow: Move the axes within the limits
      • Moves X-Axis first then moves Y-Axis. The stage positioning is updated real-time on the joystick.
      • When moving is done, it updates the stage positioning (red dot) on the keypad, and shows the movement vector in the form of a blue arrow.
      • Moves Z-Axis, and updates the view as well as the joystick.
      • Rounded X, Y and Z positioning is updated below the keypad.
    • Error flow: Move the axes outside the limits
      • Considering XY-Axis, if only Y-Axis out of bounds, it first moves X-Axis, then updates the stage positioning (red dot) on the macro stage window before showing the runtime error message. For the part that moved, the stage positioning is updated real-time on the controller.
      • Considering XY-Axis, if X-Axis or both out of bounds, then it only shows the runtime error message.
      • Considering Z-Axis, if Z-Axis out of bounds, then it only shows the runtime error message.
      • Raised runtime error message example would be "Tried to move %s " % (self.name) + RuntimeError: Tried to move 1 XYZ stage outside soft motion limits (target -2575.00, limits [-2300.00, 2300.00])".
  • As a Cockpit user, I want to be able to move the x, y and z-axis by inputting positions in micrometers.
    • Normal flow: Move the axes within the limits
      • Moves X-Axis first then moves Y-Axis. The stage positioning is updated real-time on the joystick.
      • When moving is done, it updates the stage positioning (red dot) on the keypad, and shows the movement vector in the form of a blue arrow.
      • Rounded X, Y and Z positioning is updated below the keypad.
    • Error flow: Move the axes outside the limits
      • Nothing happens if X or Y-Axis are trying to be moved out of bounds.
      • An assertion error such as "raise data # if you see this in your traceback, you should probably inspect the remote traceback as well AssertionError" will be raised - And trying to move Z-Axis will not be possible anymore except if using the rotary dial on the controller.
  • As a Cockpit user, I want to be able to move the z-axis with the top, center and bottom controls.
    • Normal flow: Move the axes within the limits
      • By setting the top within the limits and then clicking on "Go to top", the Z-Axis will directly move to that position. This is the same for the bottom.
      • By clicking on "Go to centre", it will calculate the average between the set top and bottom and go there.
      • Macro stage view as well as the controller positions will then be updated.
    • Error flow: Set the top outside the limit
      • A "Move too large for any Z mover." message will appear in the Standard out of the Logging panels.
      • If the average (i.e. the "Go to centre") is within bounds, the Z-Axis will be updated. Else, the same "Move too large for any Z mover." error message will be raised.
    • Error flow: Set the bottom outside the limit
      • A "Move too large for any Z mover." message will appear in the Standard out of the Logging panels.
      • If the average (i.e. the "Go to centre") is within bounds, the Z-Axis will be updated. Else, the same "Move too large for any Z mover." error message will be raised.