Skip to content

Integration: Comprehensive Integration Testing #40

@nguy8tri

Description

@nguy8tri

Description

We need to more thoroughly test the Distance pipeline with many more tests, which must also more complex than is currently available. The issue with doing so however is that we need to not rely on existing infrastructure to generate and validate more complex scenarios. The scenarios that we have not tested so far are:

  1. Complex Positions (Arbitrary Axis Positions)
  2. Complex Orientations (Arbitrary Orientations)
  3. Complex Relative Orientations (Arbitrary Transformations between local and reference orientations)
  4. Combined Scenarios (of the above 3)

This task will involve the modification of test/integration/integration-test.cpp, and at your discretion, you may also choose to implement a new feature. That's it, so don't get scared by the big description here, its just to help you be familiar with the problem. I will attempt to address each of these:

Before Getting Started...

We use the image generator for generating artificial, ideal images. This allows us to test the algorithm to ensure it gives a precise answer when in an ideal environment. Please go into tools/generator for more information.

Warning

Also, please familiarize yourself with the different flags in the FOUND executable (we will just say FOUND) via ./found --help. You must also understand how FOUND works in general.

1. Complex Positions

So far, we have only tested positions on the X axis during our integration tests. The task here is simple:

  1. Generate images from more complex positions
  2. Create integration tests to see if FOUND can correctly produce the position.

Note

You may use the flag --reference-as-orientation here, which you can use in conjunction with --reference-orientation to directly tell FOUND the orientation of the camera.

Warning

These tests must be marked as being seperate from (1), (2) and (3). You may use a simple orientation here.

2. Complex Orientations

So far, we have tested very basic orientations (only right ascension). The task here is also simple:

  1. Generate images with more general orientations
  2. Create integration tests to see if FOUND can correctly produce the position while handling a more complex orientation.

Note

Again, you may use --reference-as-orientation here.

Warning

These tests must be clearly marked as being seperate from the above. You may use a simple position here.

  1. Complex Relative Orientations

Because of #39 , this is no longer complex (refer to #40 (comment) in case the current approach does not work). Thanks to tools.attitude, this has become much simpler:

  1. Use tools.generator to generate an image with a complex orientation.
  2. Use tools.attitude (remember to switch your conda environment) to generate attitudes for calibration and a test reference attitude for distance, using the --use-local and --local-attitude flags.
  3. Format your test cases to be like IntegrationTest::TestCalibrationDistanceCombinedPipeline IntegrationTest::TestCalibrationDistanceCombinedPipelineOtherOutput, located in the integration-test.cpp file.

4. Combined Scenarios

As the good programmer you are, you will also make test cases that combine these different things :).

Sub-issues

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions