Example #1
0
bool test_task(TaskManager& task_manager,
               const Waypoints &waypoints,
               int test_num)
{
    unsigned n_points = rand()%8+1;
    switch (test_num) {
    case 0:
        return test_task_mixed(task_manager,waypoints);
    case 1:
        return test_task_fai(task_manager,waypoints);
    case 2:
        return test_task_aat(task_manager,waypoints);
    case 3:
        return test_task_or(task_manager,waypoints);
    case 4:
        return test_task_dash(task_manager,waypoints);
    case 5:
        return test_task_fg(task_manager,waypoints);
    case 6:
        return test_task_manip(task_manager,waypoints);
    case 7:
        return test_task_random(task_manager,waypoints,n_points);
    case 8:
        return test_task_mat(task_manager,waypoints);
    default:
        return false;
    }
}
Example #2
0
bool test_task_bad(TaskManager& task_manager,
                   const Waypoints& waypoints)
{
  test_task_random(task_manager,waypoints,2);

  task_manager.SetFactory(TaskFactoryType::RACING);
  AbstractTaskFactory& fact = task_manager.GetFactory();

  const Waypoint* wp = random_waypoint(waypoints);

  ok (!fact.CreateFinish((TaskPointFactoryType)20,*wp),"bad finish type",0);
  ok (!fact.CreateStart((TaskPointFactoryType)20,*wp),"bad start type",0);
  ok (!fact.CreateIntermediate((TaskPointFactoryType)20,*wp),"bad intermediate type",0);

  // now create a taskpoint from FAI

  const TaskPointFactoryType s = GetRandomType(fact.GetIntermediateTypes());

  // test it is bad for AAT

  task_manager.SetFactory(TaskFactoryType::AAT);

  AbstractTaskFactory& bfact = task_manager.GetFactory();

  ok (!bfact.CreateIntermediate(s,*wp),"bad intermediate type (after task change)",0);

  bfact.Remove(1);
  bfact.UpdateStatsGeometry();
  ok (bfact.Validate(),"ok with one tp",0);

  bfact.Remove(1);
  bfact.UpdateStatsGeometry();
  ok (bfact.Validate(),"ok with zero tps (just start and finish)",0);

  ok (bfact.Remove(task_manager.TaskSize()-1,false),"remove finish manually",0);
  bfact.UpdateStatsGeometry();
  ok (!bfact.Validate(),"aat is invalid (no finish)",0);

  return true;
}
Example #3
0
bool test_task_bad(TaskManager& task_manager,
                   const Waypoints& waypoints)
{
  test_task_random(task_manager,waypoints,2);

  task_manager.set_factory(OrderedTask::FACTORY_RT);
  AbstractTaskFactory& fact = task_manager.get_factory();

  const Waypoint* wp = random_waypoint(waypoints);

  ok (!fact.createFinish((AbstractTaskFactory::LegalPointType_t)20,*wp),"bad finish type",0);
  ok (!fact.createStart((AbstractTaskFactory::LegalPointType_t)20,*wp),"bad start type",0);
  ok (!fact.createIntermediate((AbstractTaskFactory::LegalPointType_t)20,*wp),"bad intermediate type",0);

  // now create a taskpoint from FAI

  AbstractTaskFactory::LegalPointType_t s = 
    fact.getIntermediateTypes()[(rand() % fact.getIntermediateTypes().size())];

  // test it is bad for AAT

  task_manager.set_factory(OrderedTask::FACTORY_AAT);

  AbstractTaskFactory& bfact = task_manager.get_factory();

  ok (!bfact.createIntermediate(s,*wp),"bad intermediate type (after task change)",0);

  bfact.remove(1);
  ok (bfact.validate(),"ok with one tp",0);

  bfact.remove(1);
  ok (!bfact.validate(),"insufficient tps for aat",0);

  ok (bfact.remove(task_manager.task_size()-1,false),"remove finish manually",0);
  ok (!bfact.validate(),"aat is invalid (no finish)",0);

  return true;
}