/* try it without un-currenting the surfaces and context */ TEST_F(EGLCleanupTest, TestNoReleaseCurrent) { ALOGI("Starting TEST_NO_RELEASE_CURRENT"); ChainedThread cht(ChainedThread::TEST_NO_RELEASE_CURRENT); // start initial thread ASSERT_TRUE(cht.start()); // wait for the end cht.waitForEnd(); bool result = cht.getResult(); ASSERT_TRUE(result); }
/* do things correctly */ TEST_F(EGLCleanupTest, TestCorrect) { ALOGI("Starting TEST_CORRECT"); ChainedThread cht(ChainedThread::TEST_CORRECT); // start initial thread ASSERT_TRUE(cht.start()); // wait for the end cht.waitForEnd(); bool result = cht.getResult(); ASSERT_TRUE(result); }
bool burst_serv::will_process(const std::string& keyword) const { #ifdef HAVE_ZOOKEEPER_H const server_argv& a = argv(); if (a.is_standalone()) { #endif return true; #ifdef HAVE_ZOOKEEPER_H } else { common::cht cht(zk_, a.type, a.name); return is_assigned(cht, keyword, a.eth, a.port); } #endif }
TEST(ChangeHourlyTransactionTest, PayrollTest) { int empid = 10; AddSalariedEmployee st(empid, "Test10", "Home10", 1000.00); st.Execute(); ChangeHourlyTransaction cht(empid, 50.00); cht.Execute(); Employee *e = ((DatabaseProxy *)getInstance())->GetEmployee(empid); EXPECT_TRUE(e != 0); HourlyClassification* hc = dynamic_cast<HourlyClassification*>(e->GetPaymentClassification()); EXPECT_TRUE(hc != 0); }
void smart_font_rep::advance (string s, int& pos, string& r, int& nr) { int* chv= sm->chv; hashmap<string,int>& cht (sm->cht); int start= pos; nr= -1; while (pos < N(s)) { if (s[pos] != '<') { int c= (int) (unsigned char) s[pos]; int next= chv[c]; if (math_kind != 0 && math_kind != 2 && is_letter (c) && (pos == 0 || !is_letter (s[pos-1])) && (pos+1 == N(s) || !is_letter (s[pos+1]))) next= italic_nr; else if (chv[c] == -1) next= resolve (s (pos, pos+1)); if (next == nr) pos++; else if (nr == -1) { pos++; nr= next; } else break; } else { int end= pos; tm_char_forwards (s, end); int next= cht[s (pos, end)]; if (next == -1) next= resolve (s (pos, end)); if (next == nr) pos= end; else if (nr == -1) { pos= end; nr= next; } else break; } } r= s (start, pos); if (nr < 0) return; if (N(fn) <= nr || is_nil (fn[nr])) initialize_font (nr); if (sm->fn_rewr[nr] != REWRITE_NONE) r= rewrite (r, sm->fn_rewr[nr]); //cout << "Got " << r << " in " << fn[nr]->res_name << "\n"; }
void tet_hp::tobasis(init_bdry_cndtn *ibc, int tlvl) { int tind,i,j,k,m,n,v0,v1,eind,find; TinyVector<FLT,3> pt; int stridey = MXGP; int stridex = MXGP*MXGP; /* LOOP THROUGH VERTICES */ for(i=0;i<npnt;++i) for(n=0;n<NV;++n) ugbd(tlvl).v(i,n) = ibc->f(n,pnts(i),gbl->time); if (basis::tet(log2p).em == 0) return; /* LOOP THROUGH EDGES */ for(eind = 0; eind < nseg; ++eind) { v0 = seg(eind).pnt(0); v1 = seg(eind).pnt(1); if (seg(eind).info < 0){ for(n=0;n<ND;++n) basis::tet(log2p).proj1d(pnts(v0)(n),pnts(v1)(n),&crd1d(n)(0)); } else { crdtocht1d(eind,tlvl); for(n=0;n<ND;++n) basis::tet(log2p).proj1d(&cht(n)(0),&crd1d(n)(0)); } for(n=0;n<NV;++n) basis::tet(log2p).proj1d(ugbd(tlvl).v(v0,n),ugbd(tlvl).v(v1,n),&u1d(n)(0)); for(i=0;i<basis::tet(log2p).gpx; ++i) { pt(0) = crd1d(0)(i); pt(1) = crd1d(1)(i); pt(2) = crd1d(2)(i); for(n=0;n<NV;++n){ // difference between actual function and linear u1d(n)(i) -= ibc->f(n,pt,gbl->time); } } for(n=0;n<NV;++n) basis::tet(log2p).intgrt1d(&lf(n)(0),&u1d(n)(0)); for(n=0;n<NV;++n) { for(m=0;m<basis::tet(log2p).em;++m){ ugbd(tlvl).e(eind,m,n) = -lf(n)(2+m)*basis::tet(log2p).diag1d(m); } } } if (basis::tet(log2p).fm == 0) return; /* LOOP THROUGH FACES */ for(find = 0; find < ntri; ++find) { ugtouht2d_bdry(find,tlvl); for(n=0;n<NV;++n) basis::tet(log2p).proj2d_bdry(&uht(n)(0),&u2d(n)(0)(0),stridey); if (tri(find).info < 0) { for(n=0;n<ND;++n) basis::tet(log2p).proj2d(vrtxbd(tlvl)(tri(find).pnt(0))(n),vrtxbd(tlvl)(tri(find).pnt(1))(n),vrtxbd(tlvl)(tri(find).pnt(2))(n),&crd2d(n)(0)(0),stridey); } else { crdtocht2d(find,tlvl); for(n=0;n<ND;++n) basis::tet(log2p).proj2d_bdry(&cht(n)(0),&crd2d(n)(0)(0),stridey); } for (i=0; i < basis::tet(log2p).gpx; ++i ) { for (j=0; j < basis::tet(log2p).gpy; ++j ) { pt(0) = crd2d(0)(i)(j); pt(1) = crd2d(1)(i)(j); pt(2) = crd2d(2)(i)(j); for(n=0;n<NV;++n) { u2d(n)(i)(j) -= ibc->f(n,pt,gbl->time); } } } for(n=0;n<NV;++n) { basis::tet(log2p).intgrt2d(&lf(n)(0),&u2d(n)(0)(0),stridey); for(i=0;i<basis::tet(log2p).fm;++i){ ugbd(tlvl).f(find,i,n) = -lf(n)(3+3*basis::tet(log2p).em+i)*basis::tet(log2p).diag2d(i); } } } if (basis::tet(log2p).im == 0) return; /* LOOP THROUGH TETS */ for(tind = 0; tind < ntet; ++tind) { ugtouht_bdry(tind,tlvl); for(n=0;n<NV;++n) basis::tet(log2p).proj_bdry(&uht(n)(0),&u(n)(0)(0)(0),stridex,stridey); if (tet(tind).info < 0) { for(n=0;n<ND;++n) basis::tet(log2p).proj(vrtxbd(tlvl)(tet(tind).pnt(0))(n),vrtxbd(tlvl)(tet(tind).pnt(1))(n),vrtxbd(tlvl)(tet(tind).pnt(2))(n),vrtxbd(tlvl)(tet(tind).pnt(3))(n),&crd(n)(0)(0)(0),stridex,stridey); } else { crdtocht(tind,tlvl); for(n=0;n<ND;++n) basis::tet(log2p).proj_bdry(&cht(n)(0),&crd(n)(0)(0)(0),stridex,stridey); } for (i=0; i < basis::tet(log2p).gpx; ++i ) { for (j=0; j < basis::tet(log2p).gpy; ++j ) { for (k=0; k < basis::tet(log2p).gpz; ++k ) { pt(0) = crd(0)(i)(j)(k); pt(1) = crd(1)(i)(j)(k); pt(2) = crd(2)(i)(j)(k); for(n=0;n<NV;++n) u(n)(i)(j)(k) -= ibc->f(n,pt,gbl->time); } } } for(n=0;n<NV;++n) { basis::tet(log2p).intgrt(&lf(n)(0),&u(n)(0)(0)(0),stridex,stridey); for(i=0;i<basis::tet(log2p).im;++i) { ugbd(tlvl).i(tind,i,n) = -lf(n)(basis::tet(log2p).bm+i)*basis::tet(log2p).diag3d(i); } } } return; }
void tri_hp_ps::length() { int i,j,k,v0,v1,v2,indx,sind,tind,count; TinyVector<FLT,2> dx0,dx1,dx2,ep,dedpsi; FLT q,p,duv,um,vm,u,v; FLT sum,ruv,ratio; FLT length0,length1,length2,lengthept; FLT ang1,curved1,ang2,curved2; FLT norm; gbl->eanda = 0.0; for(tind=0;tind<ntri;++tind) { q = 0.0; p = 0.0; duv = 0.0; um = ug.v(tri(tind).pnt(2),0); vm = ug.v(tri(tind).pnt(2),1); for(j=0;j<3;++j) { v0 = tri(tind).pnt(j); p += fabs(ug.v(v0,2)); duv += fabs(u-um)+fabs(v-vm); } gbl->eanda(0) += 1./3.*(p*area(tind) +duv*gbl->mu*sqrt(area(tind)) ); gbl->eanda(1) += area(tind); } sim::blks.allreduce(gbl->eanda.data(),gbl->eanda_recv.data(),2,blocks::flt_msg,blocks::sum); norm = gbl->eanda_recv(0)/gbl->eanda_recv(1); gbl->fltwk(Range(0,npnt-1)) = 0.0; switch(basis::tri(log2p)->p()) { case(1): { for(i=0;i<nseg;++i) { v0 = seg(i).pnt(0); v1 = seg(i).pnt(1); ruv = gbl->mu/distance(v0,v1); sum = distance2(v0,v1)*(ruv*(fabs(ug.v(v0,0) -ug.v(v1,0)) +fabs(ug.v(v0,1) -ug.v(v1,1))) +fabs(ug.v(v0,2) -ug.v(v1,2))); gbl->fltwk(v0) += sum; gbl->fltwk(v1) += sum; } break; } default: { indx = basis::tri(log2p)->sm()-1; for(i=0;i<nseg;++i) { v0 = seg(i).pnt(0); v1 = seg(i).pnt(1); ruv = +gbl->mu/distance(v0,v1); sum = distance2(v0,v1)*(ruv*(fabs(ug.s(i,indx,0)) +fabs(ug.s(i,indx,1))) +fabs(ug.s(i,indx,2))); gbl->fltwk(v0) += sum; gbl->fltwk(v1) += sum; } /* BOUNDARY CURVATURE */ for(i=0;i<nebd;++i) { if (!(hp_ebdry(i)->is_curved())) continue; for(j=0;j<ebdry(i)->nseg;++j) { sind = ebdry(i)->seg(j); v1 = seg(sind).pnt(0); v2 = seg(sind).pnt(1); crdtocht1d(sind); /* FIND ANGLE BETWEEN LINEAR SIDES */ tind = seg(sind).tri(0); for(k=0;k<3;++k) if (tri(tind).seg(k) == sind) break; v0 = tri(tind).pnt(k); dx0(0) = pnts(v2)(0)-pnts(v1)(0); dx0(1) = pnts(v2)(1)-pnts(v1)(1); length0 = dx0(0)*dx0(0) +dx0(1)*dx0(1); dx1(0) = pnts(v0)(0)-pnts(v2)(0); dx1(1) = pnts(v0)(1)-pnts(v2)(1); length1 = dx1(0)*dx1(0) +dx1(1)*dx1(1); dx2(0) = pnts(v1)(0)-pnts(v0)(0); dx2(1) = pnts(v1)(1)-pnts(v0)(1); length2 = dx2(0)*dx2(0) +dx2(1)*dx2(1); basis::tri(log2p)->ptprobe1d(2,&ep(0),&dedpsi(0),-1.0,&cht(0,0),MXTM); lengthept = dedpsi(0)*dedpsi(0) +dedpsi(1)*dedpsi(1); ang1 = acos(-(dx0(0)*dx2(0) +dx0(1)*dx2(1))/sqrt(length0*length2)); curved1 = acos((dx0(0)*dedpsi(0) +dx0(1)*dedpsi(1))/sqrt(length0*lengthept)); basis::tri(log2p)->ptprobe1d(2,&ep(0),&dedpsi(0),1.0,&cht(0,0),MXTM); lengthept = dedpsi(0)*dedpsi(0) +dedpsi(1)*dedpsi(1); ang2 = acos(-(dx0(0)*dx1(0) +dx0(1)*dx1(1))/sqrt(length0*length1)); curved2 = acos((dx0(0)*dedpsi(0) +dx0(1)*dedpsi(1))/sqrt(length0*lengthept)); sum = gbl->curvature_sensitivity*(curved1/ang1 +curved2/ang2); gbl->fltwk(v0) += sum*gbl->error_target*norm*pnt(v0).nnbor; gbl->fltwk(v1) += sum*gbl->error_target*norm*pnt(v1).nnbor; } } break; } } for(i=0;i<npnt;++i) { gbl->fltwk(i) = pow(gbl->fltwk(i)/(norm*pnt(i).nnbor*gbl->error_target),1./(basis::tri(log2p)->p()+1+ND)); lngth(i) /= gbl->fltwk(i); } /* AVOID HIGH ASPECT RATIOS */ int nsweep = 0; do { count = 0; for(i=0;i<nseg;++i) { v0 = seg(i).pnt(0); v1 = seg(i).pnt(1); ratio = lngth(v1)/lngth(v0); if (ratio > 3.0) { lngth(v1) = 2.5*lngth(v0); ++count; } else if (ratio < 0.333) { lngth(v0) = 2.5*lngth(v1); ++count; } } ++nsweep; *gbl->log << "#aspect ratio fixes " << nsweep << ' ' << count << std::endl; } while(count > 0 && nsweep < 5); return; }