bool OverlapfRect(fRect* r1, fRect* r2, D3DXVECTOR3* o) { float xC1 = (r1->right + r1->left)/2.f; float yC1 = (r1->bottom + r1->top)/2.f; float xR1 = (r1->right - r1->left)/2.f; float yR1 = (r1->bottom - r1->top)/2.f; float xC2 = (r2->right + r2->left)/2.f; float yC2 = (r2->bottom + r2->top)/2.f; float xR2 = (r2->right - r2->left)/2.f; float yR2 = (r2->bottom - r2->top)/2.f; float px = xR1+xR2 - fabsf(xC1 - xC2); float py = yR1+yR2 - fabsf(yC1 - yC2); bool Intersect = (px >= 0 && py >= 0); if(Intersect){ D3DXVECTOR3 vc1(xC1, yC1, 0); D3DXVECTOR3 vc2(xC2, yC2, 0); D3DXVECTOR3 Dir = vc1 - vc2; D3DXVec3Normalize(&Dir, &Dir); if(py < px) { Dir = D3DXVECTOR3(0, signf(Dir.y)*py, 0); } else { Dir = D3DXVECTOR3(signf(Dir.x)*px , 0 , 0); } *o = Dir; return true; } *o = D3DXVECTOR3(0,0,0); return false; }
int main() { int numbers[]={10,20,30,40,50}; MyIterator from(numbers); MyIterator until(numbers+5); for (MyIterator it=from; it!=until; it++) std::cout << *it << ' '; std::cout << '\n'; // F*****g the Question 5 in http://blog.csdn.net/fengbingyang/article/details/8764931 // refer to http://programmers.stackexchange.com/questions/153386/why-is-x-x-undefined int x=10; x = x++; from = from++; printf("int++: %d, iter++: %d\n",x,*from); std::vector<int> vc1(numbers, numbers+5); std::vector<int> vc2(vc1.begin(), vc1.end()); std::vector<int> v(vc1); auto mid1 = my_reverse(v.begin(), v.end()); for (int n : v) std::cout << n << ' '; std::cout << "Mid: " << mid1 <<'\n'; std::list<int> l(numbers, numbers+5); auto mid2 = my_reverse(l.begin(), l.end()); for (auto n : l) std::cout << n << ' '; std::cout << "Mid: " << mid2<< '\n'; // std::istreambuf_iterator<char> i1(std::cin), i2; // my_reverse(i1, i2); // compilation error return 0; }
TEST(SharedValueTest, ctorInt) { int i = -324523; unsigned u = 0x334234u; char c = -22; short s = 289; unsigned char uc = 244; unsigned short us = 3467; long long ll = -20398574395872907ll; unsigned long long ull = 985734209239847656ull; EXPECT_NO_THROW(Value v(i)); EXPECT_NO_THROW(Value v(u)); EXPECT_NO_THROW(Value v(c)); EXPECT_NO_THROW(Value v(s)); EXPECT_NO_THROW(Value v(uc)); EXPECT_NO_THROW(Value v(us)); EXPECT_NO_THROW(Value v(ll)); EXPECT_NO_THROW(Value v(ull)); Value vi(i); EXPECT_EQ(vi.as<int>(), i); Value vu(u); EXPECT_EQ(vu.as<unsigned>(), u); Value vc(c); EXPECT_EQ(vc.as<char>(), c); Value vs(s); EXPECT_EQ(vs.as<short>(), s); Value vuc(uc); EXPECT_EQ(vuc.as<unsigned char>(), uc); Value vus(us); EXPECT_EQ(vus.as<unsigned short>(), us); Value vll(ll); EXPECT_NE(vll.as<long long>(), ll); // 32 bit storage overfflow EXPECT_EQ(vll.as<long long>(), static_cast<long long>(int(ll))); Value vull(ull); EXPECT_NE(vull.as<unsigned long long>(), ull); // 32 bit storage overfflow EXPECT_EQ(vull.as<unsigned long long>(), static_cast<unsigned long long>(int(ull))); Value vllNoOverflow(-42424ll); // no 32 bit storage overflow EXPECT_EQ(vllNoOverflow.as<long long>(), -42424ll); Value vullNoOverflow(0x43424242ull); // no 32 bit storage overflow EXPECT_EQ(vullNoOverflow.as<unsigned long long>(), 0x43424242ull); EXPECT_EQ(vi.type(), typeid(int)); EXPECT_EQ(vu.type(), typeid(int)); EXPECT_EQ(vc.type(), typeid(int)); EXPECT_EQ(vs.type(), typeid(int)); EXPECT_EQ(vuc.type(), typeid(int)); EXPECT_EQ(vus.type(), typeid(int)); EXPECT_EQ(vll.type(), typeid(int)); EXPECT_EQ(vull.type(), typeid(int)); // copy EXPECT_NO_THROW(Value v(vi)); EXPECT_NO_THROW(Value v(vu)); EXPECT_NO_THROW(Value v(vc)); EXPECT_NO_THROW(Value v(vs)); EXPECT_NO_THROW(Value v(vuc)); EXPECT_NO_THROW(Value v(vus)); EXPECT_NO_THROW(Value v(vll)); EXPECT_NO_THROW(Value v(vull)); Value vi2(vi); EXPECT_EQ(vi2.as<int>(), i); Value vu2(vu); EXPECT_EQ(vu2.as<unsigned>(), u); Value vc2(vc); EXPECT_EQ(vc2.as<char>(), c); Value vs2(vs); EXPECT_EQ(vs2.as<short>(), s); Value vuc2(vuc); EXPECT_EQ(vuc2.as<unsigned char>(), uc); Value vus2(vus); EXPECT_EQ(vus2.as<unsigned short>(), us); Value vll2(vll); EXPECT_NE(vll.as<long long>(), ll); EXPECT_EQ(vll2.as<long long>(), static_cast<long long>(int(vll))); Value vull2(vull); EXPECT_NE(vull.as<unsigned long long>(), ull); EXPECT_EQ(vull2.as<unsigned long long>(), static_cast<unsigned long long>(int(vull))); EXPECT_EQ(vi2.type(), typeid(int)); EXPECT_EQ(vu2.type(), typeid(int)); EXPECT_EQ(vc2.type(), typeid(int)); EXPECT_EQ(vs2.type(), typeid(int)); EXPECT_EQ(vuc2.type(), typeid(int)); EXPECT_EQ(vus2.type(), typeid(int)); EXPECT_EQ(vll2.type(), typeid(int)); EXPECT_EQ(vull2.type(), typeid(int)); }
int main(void) { gslpp::complex zi = gslpp::complex::i(); std::vector<double> sd = {10., 5., 1.}; std::vector<gslpp::complex> sc = {30. + zi, 2. + 3. * zi, 1. + 4. * zi}; gslpp::matrix<double> md1(2, 2); md1(0, 0) = 10.; md1(1, 0) = 20.; md1(0, 1) = 5.; md1(1, 1) = 1.; gslpp::matrix<double> md2(2, 2); md2(0, 0) = -3.; md2(1, 0) = 30.; md2(0, 1) = -5.; md2(1, 1) = 4.; gslpp::matrix<gslpp::complex> mc1(2, 2); mc1.assign(0, 0, 9. + 2 * zi); mc1.assign(1, 0, 19. - 4 * zi); mc1.assign(0, 1, 4. - 6 * zi); mc1.assign(1, 1, 3. + 2 * zi); gslpp::matrix<gslpp::complex> mc2(2, 2); mc2.assign(0, 0, -8. + 3 * zi); mc2.assign(1, 0, 11. - 5 * zi); mc2.assign(0, 1, 2. + 5 * zi); mc2.assign(1, 1, -3. + 4 * zi); gslpp::vector<double> vd1(2); gslpp::vector<double> vd2(2); vd1(0) = 14.; vd1(1) = -5; vd2(0) = -9.; vd2(1) = 3; gslpp::vector<gslpp::complex> vc1(2); gslpp::vector<gslpp::complex> vc2(2); vc1.assign(0, 4. - 2. * zi); vc1.assign(1, 6. - 8. * zi); vc2.assign(0, 5. + 3. * zi); vc2.assign(1, 4. - 12. * zi); Expanded<double> esd(sd); Expanded<gslpp::complex> esc(sc); std::vector<gslpp::matrix<double> > mdv = {md1, md2}; Expanded<gslpp::matrix<double> > emd(mdv); std::vector<gslpp::matrix<gslpp::complex> > mcv = {mc1, mc2}; Expanded<gslpp::matrix<gslpp::complex> > emc(mcv); std::vector<gslpp::vector<double> > vdv = {vd1, vd2}; Expanded<gslpp::vector<double> > evd(vdv); std::vector<gslpp::vector<gslpp::complex> > vcv = {vc1, vc2}; Expanded<gslpp::vector<gslpp::complex> > evc(vcv); // Print Input std::cout << std::endl; std::cout << "esd " << esd << std::endl; std::cout << "esc " << esc << std::endl; std::cout << "evd " << evd << std::endl; std::cout << "evc " << evc << std::endl; std::cout << "emd " << emd << std::endl; std::cout << "emc " << emc << std::endl; std::cout << "-------------" << std::endl; std::cout << "-sd " << -esd << std::endl; std::cout << "-sc " << -esc << std::endl; std::cout << "-vd " << -evd << std::endl; std::cout << "-vc " << -evc << std::endl; std::cout << "-md " << -emd << std::endl; std::cout << "-mc " << -emc << std::endl; std::cout << "-------------" << std::endl; // Expanded * Expanded std::cout << "sd*sd " << esd * esd << std::endl; std::cout << "sd*sc " << esd * esc << std::endl; std::cout << "sd*vd " << esd * evd << std::endl; std::cout << "sd*vc " << esd * evc << std::endl; std::cout << "sd*md " << esd * emd << std::endl; std::cout << "sd*mc " << esd * emc << std::endl; std::cout << "sc*sd " << esc * esd << std::endl; std::cout << "sc*sc " << esc * esc << std::endl; std::cout << "sc*vd " << esc * evd << std::endl; std::cout << "sc*vc " << esc * evc << std::endl; std::cout << "sc*md " << esc * emd << std::endl; std::cout << "sc*mc " << esc * emc << std::endl; std::cout << "vd*sd " << evd * esd << std::endl; std::cout << "vd*sc " << evd * esc << std::endl; std::cout << "vd*vd " << evd * evd << std::endl; std::cout << "vd*vc " << evd * evc << std::endl; std::cout << "vd*md " << evd * emd << std::endl; std::cout << "vd*mc " << evd * emc << std::endl; std::cout << "vc*sd " << evc * esd << std::endl; std::cout << "vc*sc " << evc * esc << std::endl; std::cout << "vc*vd " << evc * evd << std::endl; std::cout << "vc*vc " << evc * evc << std::endl; std::cout << "vc*md " << evc * emd << std::endl; std::cout << "vc*mc " << evc * emc << std::endl; std::cout << "md*sd " << emd * esd << std::endl; std::cout << "md*sc " << emd * esc << std::endl; std::cout << "md*vd " << emd * evd << std::endl; std::cout << "md*vc " << emd * evc << std::endl; std::cout << "md*md " << emd * emd << std::endl; std::cout << "md*mc " << emd * emc << std::endl; std::cout << "mc*sd " << emc * esd << std::endl; std::cout << "mc*sc " << emc * esc << std::endl; std::cout << "mc*vd " << emc * evd << std::endl; std::cout << "mc*vc " << emc * evc << std::endl; std::cout << "mc*md " << emc * emd << std::endl; std::cout << "mc*mc " << emc * emc << std::endl; std::cout << "-------------" << std::endl; // Expanded + Expanded std::cout << "sd + sd " << esd + esd << std::endl; std::cout << "sd + sc " << esd + esc << std::endl; std::cout << "sc + sd " << esc + esd << std::endl; std::cout << "sc + sc " << esc + esc << std::endl; std::cout << "vd + vd " << evd + evd << std::endl; std::cout << "vd + vc " << evd + evc << std::endl; std::cout << "vc + vd " << evc + evd << std::endl; std::cout << "vc + vc " << evc + evc << std::endl; std::cout << "md + md " << emd + emd << std::endl; std::cout << "md + mc " << emd + emc << std::endl; std::cout << "mc + md " << emc + emd << std::endl; std::cout << "mc + mc " << emc + emc << std::endl; // std::cout << "-------------" << std::endl; // Expanded - Expanded std::cout << "sd - sd " << esd - esd << std::endl; std::cout << "sd - sc " << esd - esc << std::endl; std::cout << "sc - sd " << esc - esd << std::endl; std::cout << "sc - sc " << esc - esc << std::endl; std::cout << "vd - vd " << evd - evd << std::endl; std::cout << "vd - vc " << evd - evc << std::endl; std::cout << "vc - vd " << evc - evd << std::endl; std::cout << "vc - vc " << evc - evc << std::endl; std::cout << "md - md " << emd - emd << std::endl; std::cout << "md - mc " << emd - emc << std::endl; std::cout << "mc - md " << emc - emd << std::endl; std::cout << "mc - mc " << emc - emc << std::endl; std::cout << "-------------" << std::endl; // Expanded * UnExpanded std::cout << "esd*5 = " << esd * 5. << std::endl; std::cout << "esd*(4-2I) = " << esd * (4. - 2. * zi) << std::endl; std::cout << "esd*vd1 = " << esd * vd1 << std::endl; std::cout << "esd*vc1 = " << esd * vc1 << std::endl; std::cout << "esd*md1 = " << esd * md1 << std::endl; std::cout << "esd*mc1 = " << esd * mc1 << std::endl; // std::cout << "esc*5 = " << esc * 5. << std::endl; std::cout << "esc*(4-2I) = " << esc * (4. - 2. * zi) << std::endl; std::cout << "esc*vd1 = " << esc * vd1 << std::endl; std::cout << "esc*vc1 = " << esc * vc1 << std::endl; std::cout << "esc*md1 = " << esc * md1 << std::endl; std::cout << "esc*mc1 = " << esc * mc1 << std::endl; // std::cout << "evd*5 = " << evd * 5. << std::endl; std::cout << "evd*(4-2I) = " << evd * (4. - 2. * zi) << std::endl; std::cout << "evd*vd1 = " << evd * vd1 << std::endl; std::cout << "evd*vc1 = " << evd * vc1 << std::endl; std::cout << "evd*md1 = " << evd * md1 << std::endl; std::cout << "evd*mc1 = " << evd * mc1 << std::endl; // std::cout << "evc*5 = " << evc * 5. << std::endl; std::cout << "evc*(4-2I) = " << evc * (4. - 2. * zi) << std::endl; std::cout << "evc*vd1 = " << evc * vd1 << std::endl; std::cout << "evc*vc1 = " << evc * vc1 << std::endl; std::cout << "evc*md1 = " << evc * md1 << std::endl; std::cout << "evc*mc1 = " << evc * mc1 << std::endl; // std::cout << "emd*5 = " << emd * 5. << std::endl; std::cout << "emd*(4-2I) = " << emd * (4. - 2. * zi) << std::endl; std::cout << "emd*vd1 = " << emd * vd1 << std::endl; std::cout << "emd*vc1 = " << emd * vc1 << std::endl; std::cout << "emd*md1 = " << emd * md1 << std::endl; std::cout << "emd*mc1 = " << emd * mc1 << std::endl; // std::cout << "emc*5 = " << emc * 5. << std::endl; std::cout << "emc*(4-2I) = " << emc * (4. - 2. * zi) << std::endl; std::cout << "emc*vd1 = " << emc * vd1 << std::endl; std::cout << "emc*vc1 = " << emc * vc1 << std::endl; std::cout << "emc*md1 = " << emc * md1 << std::endl; std::cout << "emc*mc1 = " << emc * mc1 << std::endl; std::cout << "-------------" << std::endl; // // Expanded / UnExpanded-Scalar std::cout << "esd/5 = " << esd / 5. << std::endl; std::cout << "esd/(4-2I) = " << esd / (4. - 2. * zi) << std::endl; std::cout << "esc/5 = " << esc / 5. << std::endl; std::cout << "esc/(4-2I) = " << esc / (4. - 2. * zi) << std::endl; std::cout << "evd/5 = " << evd / 5. << std::endl; std::cout << "evd/(4-2I) = " << evd / (4. - 2. * zi) << std::endl; std::cout << "evc/5 = " << evc / 5. << std::endl; std::cout << "evc/(4-2I) = " << evc / (4. - 2. * zi) << std::endl; std::cout << "emd/5 = " << emd / 5. << std::endl; std::cout << "emd/(4-2I) = " << emd / (4. - 2. * zi) << std::endl; std::cout << "emc/5 = " << emc / 5. << std::endl; std::cout << "emc/(4-2I) = " << emc / (4. - 2. * zi) << std::endl; std::cout << "-------------" << std::endl; // UnExpanded * Expanded easy-check (must be 0) std::cout << "zero1 = " << 5. * esd - esd * 5. << std::endl; std::cout << "zero1 = " << 5. * esc - esc * 5. << std::endl; std::cout << "zero1 = " << 5. * evd - evd * 5. << std::endl; std::cout << "zero1 = " << 5. * evc - evc * 5. << std::endl; std::cout << "zero1 = " << 5. * emd - emd * 5. << std::endl; std::cout << "zero1 =" << 5. * emc - emc * 5. << std::endl; // std::cout << "zero2 = " << (4 - 2 * zi) * esd - esd * (4 - 2 * zi) << std::endl; std::cout << "zero2 = " << (4 - 2 * zi) * esc - esc * (4 - 2 * zi) << std::endl; std::cout << "zero2 = " << (4 - 2 * zi) * evd - evd * (4 - 2 * zi) << std::endl; std::cout << "zero2 = " << (4 - 2 * zi) * evc - evc * (4 - 2 * zi) << std::endl; std::cout << "zero2 = " << (4 - 2 * zi) * emd - emd * (4 - 2 * zi) << std::endl; std::cout << "zero2 = " << (4 - 2 * zi) * emc - emc * (4 - 2 * zi) << std::endl; std::cout << "zero3 = " << vd1 * esd - esd * vd1 << std::endl; std::cout << "zero3 = " << vd1 * esc - esc * vd1 << std::endl; std::cout << "zero3 = " << vd1 * evd - evd * vd1 << std::endl; std::cout << "zero3 = " << vd1 * evc - evc * vd1 << std::endl; std::cout << "zero3 = " << vd1 * emd - emd.transpose() * vd1 << std::endl; std::cout << "zero3 = " << vd1 * emc - emc.transpose() * vd1 << std::endl; // std::cout << "zero4 = " << vc1 * esd - esd * vc1 << std::endl; std::cout << "zero4 = " << vc1 * esc - esc * vc1 << std::endl; std::cout << "zero4 = " << vc1 * evd - evd * vc1 << std::endl; std::cout << "zero4 = " << vc1 * evc - evc * vc1 << std::endl; std::cout << "zero4 = " << vc1 * emd - emd.transpose() * vc1 << std::endl; std::cout << "zero4 = " << vc1 * emc - emc.transpose() * vc1 << std::endl; // std::cout << "zero5 = " << md1 * esd - esd * md1 << std::endl; std::cout << "zero5 = " << md1 * esc - esc * md1 << std::endl; std::cout << "zero5 = " << md1 * evd - evd * md1.transpose() << std::endl; std::cout << "zero5 = " << md1 * evc - evc * md1.transpose() << std::endl; std::cout << "zero5 = " << md1 * emd - (emd.transpose() * md1.transpose()).transpose() << std::endl; std::cout << "zero5 = " << md1 * emc - (emc.transpose() * md1.transpose()).transpose() << std::endl; // std::cout << "zero6 = " << mc1 * esd - esd * mc1 << std::endl; std::cout << "zero6 = " << mc1 * esc - esc * mc1 << std::endl; std::cout << "zero6 = " << mc1 * evd - evd * mc1.transpose() << std::endl; std::cout << "zero6 = " << mc1 * evc - evc * mc1.transpose() << std::endl; std::cout << "zero6 = " << mc1 * emd - (emd.transpose() * mc1.transpose()).transpose() << std::endl; std::cout << "zero6 = " << mc1 * emc - (emc.transpose() * mc1.transpose()).transpose() << std::endl; std::cout << "true = " << (esd == esd) << std::endl; std::cout << "true = " << (esc == esc) << std::endl; std::cout << "true = " << (evd == evd) << std::endl; std::cout << "true = " << (evc == evc) << std::endl; std::cout << "true = " << (emd == emd) << std::endl; std::cout << "true = " << (emc == emc) << std::endl; std::cout << "false = " << (esd == esd * esd) << std::endl; std::cout << "false = " << (esc == esc * esc) << std::endl; std::cout << "false = " << (evd == 5 * evd) << std::endl; std::cout << "false = " << (evc == 7 * evc) << std::endl; std::cout << "false = " << (emd == emd * emd) << std::endl; std::cout << "false = " << (emc == emc * emc) << std::endl; Expanded<double> esd1(sd, 2); std::vector<double> sdx = {10., 5., 1.,-7}; Expanded<double> esd2(sdx, 1); std::cout << "esd1 * esd2 = " << esd1*esd2 << std::endl; std::cout << "esd1 + esd2 = " << esd1+esd2 << std::endl; std::cout << "esd1 - esd2 = " << esd1-esd2 << std::endl; std::vector<double> q1={1.,0.}; std::vector<double> q2={5.,7.}; std::vector<std::vector<double> > v1 = {q1,q2}; std::vector<double> w1={3.,4.}; std::vector<double> w2={8.}; std::vector<std::vector<double> > v2 = {w1,w2}; Expanded<double> ev1(v1, 1, 0); Expanded<double> ev2(v2); std::cout << "ev1 = " << ev1 << std::endl; std::cout << "ev2 = " << ev2 << std::endl; std::cout << "ev1 * ev2 = " << ev1*ev2 << std::endl; std::cout << "ev1 + ev2 = " << ev1+ev2 << std::endl; std::cout << "1/ev1 = " << ev1.inverse() << std::endl; std::cout << "1/ev2 = " << ev2.inverse() << std::endl; complex ii(0, 1); std::vector<complex> r1={1.+2.*ii, 3.+4.*ii}; std::vector<complex> r2={5. + 6.*ii, 7.+8.*ii, 9.+10.*ii}; std::vector<std::vector<complex> > vv1 = {r1,r2}; Expanded<complex> evv1(vv1, 1, 1); std::cout << "evv1 = " << evv1 << std::endl; std::cout << "1/evv1 = " << evv1.inverse() << std::endl; std::cout << "ev1/evv1 = " << ev1/evv1 << std::endl; std::cout << "evv1/ev1 = " << evv1/ev1 << std::endl; Expanded<complex> tmp(evv1.truncate(std::vector<int>(2,2),2)); std::cout << "evv1 trunc at (std::vector<int>(2,2),2)" << tmp << std::endl; std::cout << "evv1 series = " << evv1.Series(std::vector<int>(2,2),2) << std::endl; Expanded<double> pp; return (0); }
FCT_BGN() { { VCookieStore *pvcs = 0; FCT_FIXTURE_SUITE_BGN(VCookies) { FCT_SETUP_BGN() { pvcs = new VCStoreInMemory(); } FCT_SETUP_END(); FCT_TEARDOWN_BGN() { delete pvcs; } FCT_TEARDOWN_END(); FCT_TEST_BGN(CreateVCookie) { VCookie vc(12345, 6789, 9876, true, *pvcs); fct_chk ( !vc.IsModified()); } FCT_TEST_END(); FCT_TEST_BGN(CreateVCookie2) { VCookie vc(12345, 6789, 9876, true, *pvcs); SetupVCookie (vc); fct_chk ( vc.IsModified()); } FCT_TEST_END(); FCT_TEST_BGN(TestRelationVars) { VCookie vc(12345, 6789, 9876, true, *pvcs); time_t t = time(0); vc.SetVar(1, "Var1a", t, 0, ALLOC_TYPE_FIRST); fct_chk (CheckVar (vc, 1, "Var1", t, 0, 'a')); vc.SetVar(1, "Var1a", t+1, 1,ALLOC_TYPE_FIRST); fct_chk (CheckVar (vc, 1, "Var1", t, 0, 'a')); vc.SetVar(1, "Var1b", t+2, 2, ALLOC_TYPE_LAST); fct_chk (CheckVar (vc, 1, "Var1", t+2, 2, 'b')); fct_chk (vc.GetVar(1,1) == 0); vc.ClearVar (1); fct_chk (vc.GetVarElementCount(1) == 0); fct_chk (vc.GetVar(1) == 0); vc.SetVar(1, "Var1c", t+3, 3, ALLOC_TYPE_FIRST); fct_chk (CheckVar (vc, 1, "Var1", t+3, 3, 'c')); vc.SetVar(1, "Var1d", t+4, 4, ALLOC_TYPE_LINEAR, 1); fct_chk (CheckVar (vc, 1, "Var1", t+4, 4, 'd')); vc.SetVar(1, "Var1e", t+5, 5, ALLOC_TYPE_LINEAR, 2); fct_chk (CheckVar (vc, 1, "Var1", t+4, 4, 'd', 2)); vc.SetVar(1, "Var1f", t+6, 6, ALLOC_TYPE_LINEAR, 3); fct_chk (CheckVar (vc, 1, "Var1", t+4, 4, 'd', 3)); vc.SetVar(1, "Var1g", t+7, 7, ALLOC_TYPE_LINEAR, 3); fct_chk (CheckVar (vc, 1, "Var1", t+5, 5, 'e', 3)); vc.SetVar(1, "Var1h", t+8, 8, ALLOC_TYPE_LINEAR, 2); fct_chk (CheckVar (vc, 1, "Var1", t+7, 7, 'g', 2)); } FCT_TEST_END(); FCT_TEST_BGN(LoadVCookie) { VCookie vc(12345, 6789, 9876, true, *pvcs); SetupVCookie (vc); pvcs->SaveVCookie(vc); VCookie vc2(12345, 6789, 9876, false, *pvcs); fct_chk ( !vc2.IsModified()); fct_chk (vc == vc2); } FCT_TEST_END(); FCT_TEST_BGN(DeleteOld) { for (unsigned i=0; i < 100; ++i) { VCookie vc(12345, 6789+i, 9876-i, true, *pvcs); vc.SetLastHitTimeGMT(100000*i+1+10000000*(i%2)); } fct_chk (pvcs->GetVCookieCount() == 100); fct_chk (pvcs->DeleteOldVCookies(100000*50) == 25); fct_chk (pvcs->GetVCookieCount() == 75); } FCT_TEST_END(); } FCT_FIXTURE_SUITE_END(); } }