コード例 #1
0
int main(int argc, char** argv) {
    /* read command line args if any */
    size = (argc > 1) ? atoi(argv[1]) : MAX_SIZE;
    if (size > MAX_SIZE) size = MAX_SIZE;
    randomize_arr();
#ifdef DEBUG
    print_arr();
#endif
    do_seq_quicksort();
    do_parallel_quicksort();
    check_sorting();
#ifdef DEBUG
    print_arr();
#endif
    return (EXIT_SUCCESS);
}
コード例 #2
0
ファイル: edge_sorter.cpp プロジェクト: ArcEarth/cgal
int main() 
{
  Container edges;
  Container_iterator ci;
  LEdge* e0 = new LEdge(new LVertex(Point_3(-1,0,-1)));
  LEdge* t0 = new LEdge(new LVertex(Point_3(-1,0,1)));
  LEdge* e0b = new LEdge(new LVertex(Point_3(-1,0,-1)));
  LEdge* t0b = new LEdge(new LVertex(Point_3(-1,0,1)));
  LEdge* e1 = new LEdge(new LVertex(Point_3(-2,-1,0)));
  LEdge* t1 = new LEdge(new LVertex(Point_3(2,1,0)));
  LEdge* e2 = new LEdge(new LVertex(Point_3(2,-1,0)));
  LEdge* t2 = new LEdge(new LVertex(Point_3(2,1,0)));
  LEdge* e3 = new LEdge(new LVertex(Point_3(-2,-1,-1)));
  LEdge* t3 = new LEdge(new LVertex(Point_3(2,1,-1)));
  LEdge* e4 = new LEdge(new LVertex(Point_3(-2,-1,1)));
  LEdge* t4 = new LEdge(new LVertex(Point_3(2,1,1)));
  LEdge* e5 = new LEdge(new LVertex(Point_3(-1,-1,0)));
  LEdge* t5 = new LEdge(new LVertex(Point_3(3,1,0)));
  LEdge* e6 = new LEdge(e0->source());
  LEdge* t6 = new LEdge(new LVertex(Point_3(0,0,-10)));
  LEdge* e7 = new LEdge(new LVertex(Point_3(-1,0,-1)));
  LEdge* t7 = new LEdge(new LVertex(Point_3(3,0,1)));

  e0->set_twin(t0);
  t0->set_twin(e0);
  e0b->set_twin(t0b);
  t0b->set_twin(e0b);
  e1->set_twin(t1);
  t1->set_twin(e1);
  e2->set_twin(t2);
  t2->set_twin(e2);
  e3->set_twin(t3);
  t3->set_twin(e3);
  e4->set_twin(t4);
  t4->set_twin(e4);
  e5->set_twin(t5);
  t5->set_twin(e5);
  e6->set_twin(t6);
  t6->set_twin(e6);
  e7->set_twin(t7);
  t7->set_twin(e7);

  std::less<Point_3> Less;
  SplitTest st;
  Report_new_vertex<LEdge, LVertex> rnv;
  GesSM gesSM;

  edges.clear();
  edges.insert(e2);
  edges.insert(e0);
  gesSM(edges, st, rnv);
  assert(check_sorting(edges.begin(), edges.end(), Less));
  assert(edges.size() == 2);
  assert((*edges.begin())->source()->point() == Point_3(-1,0,-1));

  edges.clear();
  edges.insert(e3);
  edges.insert(e0);
  gesSM(edges, st, rnv);
  assert(check_sorting(edges.begin(), edges.end(), Less));
  assert(edges.size() == 2);
  assert((*edges.begin())->source()->point() == Point_3(-2,-1,-1));

  edges.clear();
  edges.insert(e0);
  edges.insert(e4);
  gesSM(edges, st, rnv);
  assert(check_sorting(edges.begin(), edges.end(), Less));
  assert(edges.size() == 2);
  assert((*edges.begin())->source()->point() == Point_3(-2,-1,1)); 

  edges.clear();
  edges.insert(e5);
  edges.insert(e1);
  gesSM(edges, st, rnv);
  assert(check_sorting(edges.begin(), edges.end(), Less));
  assert(edges.size() == 2);
  assert((*edges.begin())->source()->point() == Point_3(-2,-1,0)); 


  edges.clear();
  edges.insert(e6);
  edges.insert(e0);
  edges.insert(e1);
  gesSM(edges, st, rnv);
  assert(check_sorting(edges.begin(), edges.end(), Less));
  assert(edges.size() == 4);
  ci = edges.begin(); ++ci; ++ci;
  assert(*ci == e0);
  LEdge* en0 = (*ci)->twin();
  assert(en0->source()->point() == Point_3(-1,0,0));
  ++ci;
  LEdge* en1 = *ci;
  assert(en1->source()->point() == Point_3(-1,0,0));
  assert(en1->twin() == t0);

  edges.clear();
  edges.insert(e0b);
  edges.insert(e1);
  edges.insert(e6);
  gesSM(edges, st, rnv);
  assert(check_sorting(edges.begin(), edges.end(), Less));
  assert(edges.size() == 4);
  ci = edges.begin(); ++ci;
  LEdge* en2 = (*ci)->twin();
  assert(en2->source()->point() == Point_3(-1,0,0));
  ++ci; ++ci;
  LEdge* en3 = *ci;
  assert(en3->source()->point() == Point_3(-1,0,0));

  edges.clear();
  edges.insert(e1);
  edges.insert(e7);
  gesSM(edges, st, rnv);
  assert(check_sorting(edges.begin(), edges.end(), Less));
  assert(edges.size() == 2);
  assert((*edges.begin())->source()->point() == Point_3(-2,-1,0)); 

  delete e0;
  delete e0b;
  delete e1;
  delete e2;
  delete e3;
  delete e4;
  delete e5;
  e6->reset_source();
  delete e6;
  delete e7;
  delete t0;
  delete t0b;
  delete t1;
  delete t2;
  delete t3;
  delete t4;
  delete t5;
  delete t6;
  delete t7;
  delete en0;
  delete en1;
  delete en2;
  delete en3;
}