コード例 #1
0
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;

}
コード例 #2
0
ファイル: adi3d_gold.cpp プロジェクト: huahbo/CUDA
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;
      }
    }
  }

}
コード例 #3
0
ファイル: testtridJRM.c プロジェクト: rickpage/1-D-transport
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
コード例 #4
0
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;
}
コード例 #5
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;
}
コード例 #6
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;
}
コード例 #7
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;
}