int UpdateResponseTest(EppParser& parser, DOMNode* n) { EppDomain domain("UPDATE-RESPONSE-TEST.BIZ"); EppAuthInfo authInfo(EppAuthInfo::TYPE_PW, "3fooBar"); domain.setAuthInfo(authInfo); EppResult result(EppError::CODE_NO_ERROR); EppValueReason reason0("Value0", "Reason0", "en"); EppValueReason reason4("Value4"); result.addValue(reason0); result.addValue("Value1"); result.addValue("Value2"); result.addValue("Value3"); result.addValue(reason4); EppTransactionId trid("CLIENT-XID", "SERVER-ID"); EppResponse rsp; rsp.addResult(result); rsp.setTransactionId(trid); //EppResponseDataUpdateDomain eppCommand("RENEW-RESPONSE-TEST.BIZ", time(0)); //rsp.setResponseData(&eppCommand); EppResponseDataRenewDomain eppCommand("UPDATE-RESPONSE-TEST.BIZ", time(0)); rsp.setResponseData(&eppCommand); EppResponseUpdateFee* feeExt = new EppResponseUpdateFee(); feeExt->setCurrency("RND"); EppFeeFee *fee2 = new EppFeeFee(); fee2->setDescription("SOME Fee"); fee2->setRefundable("1"); fee2->setFee(5.00); feeExt->addFee(fee2); feeExt->setBalance("1000"); feeExt->setCreditLimit("5000"); rsp.addExtension(feeExt); DOMString orig = rsp.toString(); parser.parse(orig); n = parser.getRootNode(); EppResponse * newRsp = EppResponse::fromXML(*n); DOMString again = newRsp->toString(); delete newRsp; doValidate(orig, again, __FUNCTION__); return 0; }
void Gold_adi(int NX, int NY, int NZ, float lam, float* u, float* du, float* ax, float* bx, float* cx, float* ay, float* by, float* cy, float* az, float* bz, float* cz ) { int i, j, k, ind; float a, b, c, d; // // calculate r.h.s. and set tri-diagonal coefficients // for (k=0; k<NZ; k++) { for (j=0; j<NY; j++) { for (i=0; i<NX; i++) { // i loop innermost for sequential memory access ind = i + j*NX + k*NX*NY; if (i==0 || i==NX-1 || j==0 || j==NY-1 || k==0 || k==NZ-1) { d = 0.0f; // Dirichlet b.c.'s a = 0.0f; b = 1.0f; c = 0.0f; } else { d = lam * ( u[ind-1 ] + u[ind+1 ] + u[ind-NX ] + u[ind+NX ] + u[ind-NX*NY] + u[ind+NX*NY] - 6.0f*u[ind]); a = -0.5f*lam; b = 1.0f + lam; c = -0.5f*lam; } du[ind] = d; ax[ind] = a; bx[ind] = b; cx[ind] = c; ay[ind] = a; by[ind] = b; cy[ind] = c; az[ind] = a; bz[ind] = b; cz[ind] = c; } } } // // perform tri-diagonal solves in x-direction // for (k=0; k<NZ; k++) { for (j=0; j<NY; j++) { ind = j*NX + k*NX*NY; trid(&ax[ind],&bx[ind],&cx[ind],&du[ind],NX,1); } } // // perform tri-diagonal solves in y-direction // for (i=0; i<NX; i++) { for (k=0; k<NZ; k++) { ind = k*NX*NY + i; trid(&ay[ind],&by[ind],&cy[ind],&du[ind],NY,NX); } } // // perform tri-diagonal solves in z-direction, and update solution // for (j=0; j<NY; j++) { for (i=0; i<NX; i++) { ind = i + j*NX; trid(&az[ind],&bz[ind],&cz[ind],&du[ind],NZ,NX*NY); for (k=0; k<NZ; k++) { u[ind] += du[ind]; ind += NX*NY; } } } }
void approximate_(double *cbound, double *U,double *D,int *numbox, int *numtimptr, double *dxptr, double *dtptr, double *k1ptr, double *k3ptr,double * unused,double * completed, double *cdown){ double a[1000]; double b[1000]; double c[1000]; double d[1000]; double concentration[1000]; double deadzone[1000]; int n = *numbox; int numtim = *numtimptr; double dx = *dxptr, dt = *dtptr, k1 = *k1ptr, k3 = *k3ptr; int i = 0; double upstream[5000]; double downstream[5000]; double theta = 0.5; // changing this so that it reflects literature and so it matches DISCUS // Russ had k2 = k1*A/As in CN and k2 = As with A = 1.0 in DISCUS // this way, input k3 is As like in DISCUS, A=1.0, and k2 can equal k1*A/As in discretization below -RP double k2 = 0; if(k3 > 0.0) k2 = k1/k3; double velocity = *U; double dispersion = *D; double Courant; double Diffusion; double alpha; double beta; double gamma; double time = 0.0; // Discretization variables alpha = 1.0 + dt*theta*k2; beta = dt*k2*theta; Courant = velocity*dt/dx; Diffusion = dispersion*dt/(dx*dx); for(i=0;i<n+1;++i) { concentration[i] = 0.0; deadzone[i] = 0.0; } // because JRM uses 1 based indexing, copy cbound[] to upstream[] upstream[0] = 0.0; for(i=1;i<numtim+1;++i) // RP { upstream[i] = cbound[i-1]; // RP } // loop through time int j =0; while(j<numtim) // RP { // JRM time = time + dt; j++; // RP; note that input cbound must be 0 according to JRM a[0] = 0.0; b[0] = 0.0; c[0] = 0.0; d[0] = 0.0; a[1] = 0.0; b[1] = 1.0; c[1] = 0.0; d[1] = upstream[j];// JRM (int)time]; // Setup LHS for(i=2;i<n;++i) { gamma = deadzone[i]+dt*k2*(1.0-theta)*(concentration[i]-deadzone[i]); a[i] = -0.5*theta*Courant - theta*Diffusion; b[i] = 1.0 + 2.0*theta*Diffusion + dt*theta*k1*(1.0-beta/alpha); c[i] = 0.5*theta*Courant - theta*Diffusion; d[i] = concentration[i] + k1*dt*theta*gamma/alpha - Courant*(1.0-theta)*0.5*(concentration[i+1]-concentration[i-1]) + Diffusion*(1.0-theta)*(concentration[i+1]-2.0*concentration[i]+concentration[i-1]) - k1*dt*(1.0-theta)*(concentration[i]-deadzone[i]); } a[n] = -1.0; b[n] = 1.0; c[n] = 0.0; d[n] = 0.0; trid(a,b,c,d,n); // Do transient storage for(i=1;i<n+1;++i) { gamma = deadzone[i]+dt*k2*(1.0-theta)*(concentration[i]-deadzone[i]); concentration[i] = d[i]; deadzone[i] = (beta/alpha)*concentration[i]+(gamma/alpha); } // copy downstream[j] = concentration[n]; } // RP All done time integration // copy downstream for(i=0;i<numtim;++i) { if(i<numtim) cdown[i] = downstream[i+1]; //RP } // RP maintain compatibility with discus_only_v2 *completed = 0.0; return; } // end
int CheckResponseTest(EppParser& parser, DOMNode* n) { EppResponse rsp; EppResult result(EppError::CODE_NO_ERROR); //EppValueReason reason0("Value0", "Reason0", "en_US"); EppValueReason reason0("Value0", "Reason0", "en"); EppValueReason reason4("Value4"); result.addValue(reason0); result.addValue("Value1"); result.addValue("Value2"); result.addValue("Value3"); result.addValue(reason4); EppTransactionId trid("CLIENT-XID", "SERVER-ID"); rsp.addResult(result); rsp.setTransactionId(trid); EppResponseDataCheckDomain eppCommand; eppCommand.add("DOMAIN1.CLUB", DOMString(EppResponseDataCheck::FOUND)); eppCommand.add("DOMAIN2.CLUB", DOMString(EppResponseDataCheck::NOT_FOUND)); eppCommand.add("DOMAIN3.CLUB", DOMString(EppResponseDataCheck::FOUND)); rsp.setResponseData(&eppCommand); EppResponseCheckFee* feeExt = new EppResponseCheckFee(); { { EppResponseCheckFeeType* element = new EppResponseCheckFeeType(); element->setName("CHECK-RESPOSNSE-FEE-DOMAIN1.CLUB"); element->setCurrency("USD"); EppFeeCommand* command = new EppFeeCommand(); command->setCommand("create"); command->setPhase("sunrise"); element->setCommand(command); EppPeriod* period = new EppPeriod(); period->setUnit('y'); period->setValue(1); element->setPeriod(period); EppFeeFee *fee1 = new EppFeeFee(); fee1->setApplied("delayed"); fee1->setDescription("Application Fee"); fee1->setRefundable("0"); fee1->setFee(5.002); fee1->setGracePeriod("P15D"); element->addFee(fee1); EppFeeFee *fee2 = new EppFeeFee(); fee2->setDescription("Registration Fee"); fee2->setRefundable("1"); fee2->setFee(5.003); element->addFee(fee2); feeExt->add(element); } { EppResponseCheckFeeType* element = new EppResponseCheckFeeType(); element->setName("CHECK-RESPOSNSE-FEE-DOMAIN2.CLUB"); element->setCurrency("EUR"); EppFeeCommand* command = new EppFeeCommand(); command->setCommand("create"); command->setPhase("claims"); command->setSubPhase("landrush"); element->setCommand(command); EppPeriod* period = new EppPeriod(); period->setUnit('y'); period->setValue(2); element->setPeriod(period); EppFeeFee *fee1 = new EppFeeFee(); fee1->setFee(5.004); element->addFee(fee1); feeExt->add(element); } { EppResponseCheckFeeType* element = new EppResponseCheckFeeType(); element->setName("CHECK-RESPOSNSE-FEE-DOMAIN3.CLUB"); element->setCurrency("EUR"); EppFeeCommand* command = new EppFeeCommand(); command->setCommand("transfer"); element->setCommand(command); EppPeriod* period = new EppPeriod(); period->setUnit('y'); period->setValue(2); element->setPeriod(period); EppFeeFee *fee1 = new EppFeeFee(); fee1->setApplied("immediate"); fee1->setDescription("Transfer Fee"); fee1->setFee(2.505); element->addFee(fee1); EppFeeFee *fee2 = new EppFeeFee(); fee2->setDescription("Renewal Fee"); fee2->setFee(10.00); element->addFee(fee2); feeExt->add(element); } { EppResponseCheckFeeType* element = new EppResponseCheckFeeType(); element->setName("CHECK-RESPOSNSE-FEE-DOMAIN4.CLUB"); element->setCurrency("GBP"); EppFeeCommand* command = new EppFeeCommand(); command->setCommand("restore"); element->setCommand(command); EppPeriod* period = new EppPeriod(); period->setUnit('y'); period->setValue(1); element->setPeriod(period); EppFeeFee *fee1 = new EppFeeFee(); fee1->setDescription("Restore Fee"); fee1->setFee(25); element->addFee(fee1); EppFeeFee *fee2 = new EppFeeFee(); fee2->setDescription("Renewal Fee"); fee2->setFee(5.00); element->addFee(fee2); element->setFeeClass("premium-tier1"); feeExt->add(element); } } rsp.addExtension(feeExt); DOMString orig = rsp.toString(); parser.parse(orig); n = parser.getRootNode(); EppResponse * newRsp = (EppResponse *) EppResponse::fromXML(*n); DOMString again = newRsp->toString(); delete newRsp; doValidate(orig, again, __FUNCTION__); return 0; }
int InfoResponseTest(EppParser& parser, DOMNode* n) { EppDomain domain("INFO-RESPONSE-TEST.BIZ"); domain.setRoid("ROID-ROID"); EppStatus st(EppDomain::STATUS_CLIENT_UPDATE_PROHIBITED); domain.addStatus(st); domain.setClientId("123"); EppResult result(EppError::CODE_NO_ERROR); //EppValueReason reason0("Value0", "Reason0", "en_US"); EppValueReason reason0("Value0", "Reason0", "en"); EppValueReason reason4("Value4"); result.addValue(reason0); result.addValue("Value1"); result.addValue("Value2"); result.addValue("Value3"); result.addValue(reason4); EppTransactionId trid("CLIENT-XID", "SERVER-ID"); EppResponse rsp; rsp.addResult(result); rsp.setTransactionId(trid); EppResponseDataInfo infData(&domain); rsp.setResponseData(&infData); EppResponseInfoFee* feeExt = new EppResponseInfoFee(); feeExt->setCurrency("RND"); EppFeeCommand* command = new EppFeeCommand(); command->setCommand("NEWEPPCOMMAND"); command->setPhase("new-sunrise"); feeExt->setCommand(command); EppPeriod* period = new EppPeriod(); period->setUnit('m'); period->setValue(11); feeExt->setPeriod(period); EppFeeFee *fee2 = new EppFeeFee(); fee2->setDescription("SOME Fee"); fee2->setRefundable("1"); fee2->setFee(5.01); feeExt->addFee(fee2); rsp.addExtension(feeExt); DOMString orig = rsp.toString(); parser.parse(orig); n = parser.getRootNode(); EppResponse * newRsp = EppResponse::fromXML(*n); DOMString again = newRsp->toString(); delete newRsp; doValidate(orig, again, __FUNCTION__); return 0; }
int runEppTestChangePoll(EppParser & parser) { // tests on helper classes define as part of ChangePollExtension implementation { //EppReason test EppReason* r = new EppReason(); r->setReason("test reason"); r->setLanguage("en-US"); cout<<endl <<"EppReason=" << r->toString(); delete r; //EppChangePollOperation test EppChangePollOperation* op = new EppChangePollOperation(); op->setOperation("delete"); op->setSubOperation("purge"); cout<<endl <<"EppChangePollOperation=" << op->toString(); delete op; } DOMNode* n; EppDomain domain("DOMAIN.BIZ"); domain.setRoid("TESTROID-12345"); EppStatus st(EppDomain::STATUS_OK); domain.addStatus(st); domain.setClientId("testID"); EppResult result(EppError::CODE_NO_ERROR); EppValueReason reason0("TestValue0", "TestReason0", "en-US"); EppValueReason reason4("Value4"); result.addValue(reason0); result.addValue("Value1"); result.addValue("Value2"); result.addValue("Value3"); result.addValue(reason4); EppTransactionId trid("CLIENT-XID", "SERVER-ID"); EppResponse rsp; rsp.addResult(result); rsp.setTransactionId(trid); EppResponseDataInfo infData(&domain); rsp.setResponseData(&infData); EppChangePollExt* ext = new EppChangePollExt(); ext->setState("after"); EppChangePollOperation *operation = new EppChangePollOperation(); operation->setOperation("delete"); operation->setSubOperation("purge"); ext->setOperation(operation); ext->setWho("you"); ext->setDate(time_t(0) + (30* 3600 * 24)); ext->setSvTRID("x1y2z3"); ext->setReason(new EppReason("Example-Reason-EN", "en-US")); rsp.addExtension(ext); DOMString orig = rsp.toString(); parser.parse(orig); n = parser.getRootNode(); EppResponse * newRsp = EppResponse::fromXML(*n); DOMString again = newRsp->toString(); if ( orig.equals(again) ) { std::cout<<endl <<"Original=" <<endl<<orig<<endl <<"PASSED: " <<__FILE__<<endl; } else { std::cout<<endl <<"Original=" <<endl<<orig<<endl <<"Again=" <<endl<<again<<endl <<"FAILED : " <<__FILE__<<endl; } delete newRsp; return 0; }
int runEppTestSecDns(EppParser& parser) { DOMNode* n; EppDomain domain("DOMAIN.BIZ"); EppAuthInfo authInfo(EppAuthInfo::TYPE_PW, "3fooBar"); domain.setAuthInfo(authInfo); EppCommandCreate create(&domain, "ABC-DEF-XXXX-ID"); EppCommandCreateSecDns * createSecDns = new EppCommandCreateSecDns(); EppSecDnsDsData ds0; EppSecDnsDsData ds1; time_t cal = ::time(0); char * str0 = "ABCDEF012345789"; char * str1 = "012345789ABCDEF"; ds0.setKeyTag(12345); ds0.setAlgorithm(3); ds0.setDigestType(1); //ds0.setDigest((unsigned char *) str0, 16); //ds0.setStartDate(cal); //ds0.setEndDate(cal + 86400 * 365); ds1.setKeyTag(54321); ds1.setAlgorithm(3); ds1.setDigestType(1); //ds1.setDigest((unsigned char *) str1, 16); //ds1.setStartDate(cal + 86400 * 365); //ds1.setEndDate(cal + 86400 * 730); //ds1.setValidationInterval("P60D"); createSecDns->add(ds0); createSecDns->add(ds1); create.addExtension(createSecDns); cout << create.toString() << endl; parser.parse(create.toString()); n = parser.getRootNode(); EppCommandCreate * newCreate = (EppCommandCreate *) EppCommand::fromXML(*n); cout << newCreate->toString() << endl; delete newCreate; EppCommandUpdateDomain updateDomainAdd("DOMAIN.BIZ"); updateDomainAdd.setClientTransactionId("CLINET-XID"); EppCommandUpdateSecDns * addSecDns = new EppCommandUpdateSecDns(); addSecDns->add(ds0); addSecDns->add(ds1); updateDomainAdd.addExtension(addSecDns); cout << updateDomainAdd.toString() << endl; parser.parse(updateDomainAdd.toString()); n = parser.getRootNode(); EppCommandUpdate * newUpdateDomainAdd = (EppCommandUpdate *) EppCommand::fromXML(*n); cout << newUpdateDomainAdd->toString() << endl; delete newUpdateDomainAdd; EppCommandUpdateDomain updateDomainChg("DOMAIN.BIZ"); updateDomainChg.setClientTransactionId("CLINET-XID"); EppCommandUpdateSecDns * chgSecDns = new EppCommandUpdateSecDns(); chgSecDns->change(ds0); chgSecDns->change(ds1); updateDomainChg.addExtension(chgSecDns); cout << updateDomainChg.toString() << endl; parser.parse(updateDomainChg.toString()); n = parser.getRootNode(); EppCommandUpdate * newUpdateDomainChg = (EppCommandUpdate *) EppCommand::fromXML(*n); cout << newUpdateDomainChg->toString() << endl; delete newUpdateDomainChg; EppCommandUpdateDomain updateDomainRem("DOMAIN.BIZ"); updateDomainRem.setClientTransactionId("CLINET-XID"); EppCommandUpdateSecDns * remSecDns = new EppCommandUpdateSecDns(); updateDomainRem.addExtension(remSecDns); cout << updateDomainRem.toString() << endl; parser.parse(updateDomainRem.toString()); n = parser.getRootNode(); EppCommandUpdate * newUpdateDomainRem = (EppCommandUpdate *) EppCommand::fromXML(*n); cout << newUpdateDomainRem->toString() << endl; delete newUpdateDomainRem; EppResult result(EppError::CODE_NO_ERROR); EppValueReason reason0("Value0", "Reason0", "en_US"); EppValueReason reason4("Value4"); result.addValue(reason0); result.addValue("Value1"); result.addValue("Value2"); result.addValue("Value3"); result.addValue(reason4); EppTransactionId trid("CLIENT-XID", "SERVER-ID"); EppResponse rsp; rsp.addResult(result); rsp.setTransactionId(trid); EppResponseDataInfo infData(&domain); rsp.setResponseData(&infData); EppResponseDataInfoSecDns * infSecDns = new EppResponseDataInfoSecDns(); infSecDns->add(ds0); infSecDns->add(ds1); rsp.addExtension(infSecDns); cout << rsp.toString() << endl; parser.parse(rsp.toString()); n = parser.getRootNode(); EppResponse * newRsp = EppResponse::fromXML(*n); cout << newRsp->toString() << endl; delete newRsp; return 0; }