void TestACLsInfer::testACLs(ISession *pSession) { TVERIFY(pSession != NULL); CmvautoPtr<IStmt> lQ(pSession->createStmt()); SourceSpec lCS; lCS.objectID = mCLSID; lCS.nParams = 0; lCS.params = NULL; lQ->addVariable(&lCS, 1); uint64_t lCount = 0; TVERIFYRC(lQ->count(lCount)); TVERIFY(lCount == uint64_t(mExpectedCount)); unsigned long lResultCount = 0; ICursor* lC = NULL; TVERIFYRC(lQ->execute(&lC)); CmvautoPtr<ICursor> lR(lC); if(lR.IsValid()) { for(IPIN *lPIN = lR->next(); lPIN != NULL; lPIN = lR->next(), lResultCount++) { PID lPID = lPIN->getPID(); lPIN->destroy(); lPIN = NULL; lPIN = pSession->getPIN(lPID); TVERIFY(lPIN != NULL); lPIN->destroy(); } } TVERIFY(lResultCount == (unsigned long)mExpectedCount); }
void TestACLsInfer::testJoinACLs(ISession *pSession) { TVERIFY(pSession != NULL); CmvautoPtr<IStmt> lQ(pSession->createStmt()); Value lParam[3]; lParam[0].setError(mPropIDs[2]); lParam[1].setError(mPropIDs[2]); lParam[2].setRange(lParam); SourceSpec lCS[2] = {{mCLSID, 0, NULL}, {mCLSID2, 1, &lParam[2]}}; unsigned char lVar1 = lQ->addVariable(&lCS[0], 1); unsigned char lVar2 = lQ->addVariable(&lCS[1], 1); IExprNode *lET; { Value lV[2]; lV[0].setVarRef(lVar1,mPropIDs[1]); lV[1].setVarRef(lVar2,mPropIDs[2]); lET = pSession->expr(OP_EQ, 2, lV); } lQ->join(lVar1, lVar2, lET); uint64_t lCount = 0; TVERIFYRC(lQ->count(lCount)); TVERIFY(lCount == uint64_t(mExpectedCount)); unsigned long lResultCount = 0; ICursor* lC = NULL; TVERIFYRC(lQ->execute(&lC)); CmvautoPtr<ICursor> lR(lC); if(lR.IsValid()) { for(IPIN *lPIN = lR->next(); lPIN != NULL; lPIN = lR->next(), lResultCount++) { PID lPID = lPIN->getPID(); lPIN->destroy(); lPIN = NULL; lPIN = pSession->getPIN(lPID); TVERIFY(lPIN != NULL); lPIN->destroy(); } } TVERIFY(lResultCount == (unsigned long)mExpectedCount); }
// for calculating opacity - remember that you might change the last term of this... double lj(double lx, double lv, double lAx){ double lE_electron = 0.5*(leps(lx)+lv); gamma2 = exp(2*lE_electron-2*lme-4*lc); lbeta = 0.5*log(1-(1/gamma2)); constants = log(2.0)+lsigma_t-log(3.0)-lpi-lmu0-(2.0*lme)-(3.0*lc); return constants+(2.0*lbeta)+(2.0*lB(lx))+leps(lx)+lAx+((1.0-alpha)*lEe(lx,lv))-(2.0*lR(lx))-(exp(lEe(lx,lv)-lEmax)); }
// returns the magnetic field in the jet at position x double lB(double lx){ return lB0+lR0-lR(lx); }