MCPcopy Create free account
hub / github.com/Gecode/gecode / run

Method run

test/search.cpp:591–647  ·  view source on GitHub ↗

Run test

Source from the content-addressed store, hash-verified

589 HTB_BINARY,HTB_BINARY,HTB_BINARY), best(b), mt(mt0), st(st0) {}
590 /// Run test
591 virtual bool run(void) {
592 using namespace Gecode;
593 Model* m = new Model(htb1,htb2,htb3);
594 Gecode::Search::FailStop f(2);
595
596 Gecode::Search::Options mo;
597 mo.threads = mt;
598 mo.d_l = 100;
599 mo.stop = &f;
600
601 Gecode::Search::Options so;
602 so.threads = st;
603 so.d_l = 100;
604 so.cutoff = Gecode::Search::Cutoff::constant(1000000);
605 if (best) {
606 SEBs sebs(3);
607 sebs[0] = bab<Model>(so);
608 sebs[1] = bab<Model>(so);
609 sebs[2] = rbs<Model,Gecode::BAB>(so);
610 Gecode::PBS<Model,Gecode::BAB> pbs(m, sebs, mo);
611 delete m;
612
613 Model* b = nullptr;
614 while (true) {
615 Model* s = pbs.next();
616 if (s != nullptr) {
617 delete b; b=s;
618 }
619 if ((s == nullptr) && !pbs.stopped())
620 break;
621 f.limit(f.limit()+2);
622 }
623 bool ok = (b == nullptr) || b->best();
624 delete b;
625 return ok;
626 } else {
627 SEBs sebs(3);
628 sebs[0] = dfs<Model>(so);
629 sebs[1] = lds<Model>(so);
630 sebs[2] = rbs<Model,Gecode::DFS>(so);
631 Gecode::PBS<Model,Gecode::DFS> pbs(m, sebs, mo);
632
633 int n = 3 * m->solutions();
634 delete m;
635
636 while (true) {
637 Model* s = pbs.next();
638 if (s != nullptr) {
639 n--; delete s;
640 }
641 if ((s == nullptr) && !pbs.stopped())
642 break;
643 f.limit(f.limit()+2);
644 }
645 return n >= 0;
646 }
647 }
648 };

Callers

nothing calls this directly

Calls 5

nextMethod · 0.45
stoppedMethod · 0.45
limitMethod · 0.45
bestMethod · 0.45
solutionsMethod · 0.45

Tested by

no test coverage detected