edgarriba / OpenDroneMap

OpenDroneMap is a tool to postprocess small Unmanned Aerial Vehicle (sUAS), balloon, kite, and street view data to geographic data. With the current update, we are adding the ability to create orthophotos from drone, balloon, and kite imagery which has GPS ephemeris. Forked from qwesda/BundlerTools ( https://github.com/qwesda/BundlerTools )
GNU General Public License v3.0
0 stars 0 forks source link

Update matcher args, opensfm url, and ccd_defs_check #17

Closed dakotabenjamin closed 8 years ago

dakotabenjamin commented 8 years ago
edgarriba commented 8 years ago

have you tested that?

edgarriba commented 8 years ago

while writing this I'm thinking that we should provide some testing scripts I order to safely merge new PR.

cc @smathermather

smathermather commented 8 years ago

Agreed @edgarriba. Now the question is how. One of the annoying things about SfM is non-deterministic output. I would say, testing scripts needs to go on the timeline, but we shouldn't halt pull requests until we have a testing framework / testing server in place.

dakotabenjamin commented 8 years ago

Well at least we could test to see if it runs, and for many aspects there are markers indicating successful code. For example, asserting that the prematching step actually reduces to the correct number of photos.

smathermather commented 8 years ago

So, I suppose we should list out what are the testable things, and what things require (at this stage) a more personal touch.

Automated / sem-automated checks:

dakotabenjamin commented 8 years ago

I'll work on tests for this, keeping in mind the need for an overall testing structure. In my mind, some of the tests for the control of the toolchain will be asserting that correctly formatted outputs are saved to disk. Then with the custom modules, it would make more sense to run tests in C++ for them. Do you have any idea how we should structure the tests to increase efficiency while still being able to isolate code later in the toolchain?

dakotabenjamin commented 8 years ago

I have to admit, I'm a bit of a noob when it comes to testing large projects. I've got the psuedocode for what I think I want to do for this test, but I'm not sure how to implement:

import nose
from opendm import config

def setUp(self):
    # Run ODM completely with no extra parameters

def tearDown(Self):
    # Delete the test folder

class TestODM:
    def setup_test(self):
        # rerun opensfm with parameters

    def test_prematching_config(self):
        # assert that relevant run args are what they say they are

    def test_opensfm_config_file(self):
        # assert that the args in the opensfm config file match those it is set to
        # assert above when matcher_distance > 0
        # check when the arg is out of reasonable bounds

My biggest ignorance comes in the setup methods. How do I access the code to test it during that part? I can't just pass the run.py command.

edgarriba commented 8 years ago

We can just call odm cells and assert some known results. On 26 Jan 2016 17:33, "Dakota Benjamin" notifications@github.com wrote:

I have to admit, I'm a bit of a noob when it comes to testing large projects. I've got the psuedocode for what I think I want to do for this test, but I'm not sure how to implement:

import nose from opendm import config

def setUp(self):

Run ODM completely with no extra parameters

def tearDown(Self):

Delete the test folder

class TestODM: def setup_test(self):

rerun opensfm with parameters

def test_prematching_config(self):
    # assert that relevant run args are what they say they are

def test_opensfm_config_file(self):
    # assert that the args in the opensfm config file match those it is set to
    # assert above when matcher_distance > 0
    # check when the arg is out of reasonable bounds

My biggest ignorance comes in the setup methods. How do I access the code to test it during that part? I can't just pass the run.py command.

— Reply to this email directly or view it on GitHub https://github.com/edgarriba/OpenDroneMap/pull/17#issuecomment-175104089 .