void test_CTypedPtrMap() { typedef ::CTypedPtrMap< ::CMapStringToPtr, ::CString, int *> rng_t; boost::function_requires< boost::ForwardRangeConcept<rng_t> >(); rng_t rng; ::CString o0(_T('a')), o1(_T('c')), o2(_T('f')), o3(_T('q')), o4(_T('g')); int d0, d1, d2, d3, d4; std::map< ::CString, int * > data; data[o0] = &d0, data[o1] = &d1, data[o2] = &d2, data[o3] = &d3, data[o4] = &d4; BOOST_CHECK( brdm::test_init_map(rng, data) ); BOOST_CHECK( ::test_mfc_map(rng, data) ); BOOST_CHECK( brdm::test_emptiness(rng) ); }
TEST(Obis, Obis_strparsing) { Obis o1(0x1, 0x1, 97, 97, 0xff, 0xff); // 97 = SC_F Obis o2("1-1:F.F"); ASSERT_EQ(o1, o2); Obis o3(0x1, 0x1, 96, 98, 0xff, 0xff); // 96 = SC_C, 98 = SC_L Obis o4("1-1:C.L"); ASSERT_EQ(o3, o4); Obis o5(0x1, 0x1, 96, 99, 0xff, 0xff); // 96 = SC_C, 99 = SC_P Obis o6("1-1:C.P"); ASSERT_EQ(o5, o6); ASSERT_THROW(Obis o7("1-1:x:y"), vz::VZException); Obis o8("power-l1"); ASSERT_EQ(Obis("1-0:21.7"), o8); }
TEST(Obis, Obis_extStrParsing) { Obis o1(0xff, 0xff, 0x0, 0x0, 0x0, 0xff); Obis o2("0.0.0"); ASSERT_EQ(o1, o2) << o1.toString( )<< o2.toString(); ASSERT_EQ(o1.toString(), o2.toString()); Obis o3(0xff, 0xff, 0x1, 0x2, 0x3, 0xff); Obis o4("1.2.3"); ASSERT_EQ(o3, o4); ASSERT_EQ(o3.toString(), o4.toString()); Obis o5(0xff, 0xff, 0x61, 0x61, 0xff, 0xff); Obis o6("F.F"); ASSERT_EQ(o5, o6); Obis o7(0xff, 0xff, 0x0, 0x0, 0x2, 0xff); Obis o8("0.0.2"); ASSERT_EQ(o7, o8); // this should throw an exception as hex codes are not valid inside obis codes. ASSERT_THROW(Obis o10("1.8.0*FF"), vz::VZException); ASSERT_THROW(Obis o10("1.8.0*F1"), vz::VZException); }
/** HopperScreen, OnInit: * Detailed description. * @param argc TODO * @param argv TODO * @return TODO */ bool HopperScreen::OnInit( int argc, char* argv[] ){ // Master()->GetMainCanvas(); CMainCanvas* m_pMainCanvas = Master()->GetMainCanvas(); //m_pBackground = CCanvas::CreateRGBCompatible(NULL, 1024, 768 - 320); //m_pBackground = CCanvas::CreateRGBCompatible(NULL, NULL, NULL); // Todo: c:\program files\graphviz 2.28\bin\LIBFREETYPE-6.DLL copy from DEPS m_pArialfont = m_Loader.FL_LOADFONT("Fonts/ARIAL.TTF", 24); //m_pArialfont = // TTF_OpenFont("E:/Projects/C++/Humbug/projects/Humbug/Resources/Fonts/ARIAL.TTF", 24); mcol = CColor::White(); SDL_Surface* tmpfsurf = ( m_Loader.FL_LOADIMG("Intro/HopperScreenBg.png") ); //SDL_SetColorKey(tmpfsurf, SDL_TRUE, 0xff00ff); //SDL_SetColorKey(m_pMainCanvas->GetSurface(), SDL_TRUE, 0xff00ff); //SDL_SetSurfaceAlphaMod(tmpfsurf, 0); //SDL_SetSurfaceAlphaMod(m_pMainCanvas->GetSurface(), 128); m_pBackground.reset( new CCanvas( tmpfsurf ) ); //CCanvas tmpCanvas( tmpfsurf ); m_Loader.FreeLast(); //m_pMainCanvas->Blit(m_pMainCanvas->GetDimension(), tmpCanvas, tmpCanvas.GetDimension()); //m_pBackground->Blit(m_pBackground->GetDimension(), tmpCanvas, tmpCanvas.GetDimension()); m_pMainCanvas->AddUpdateRect( m_pBackground->GetDimension() ); //"\r\n" CColor m_colText = CColor::White(); std::ostringstream outstring; outstring << "Jedzia"; outstring << " .................... "; outstring << "328.123.847"; CText* text = new CText(m_pArialfont, outstring.str(), m_colText); //const boost::function<void(CCanvas*, int)> textMo = mtextfloat; //text->AddAnimator(boost::ref( mtextfloat )); text->AddAnimator( WavyTextFloat(64) ); m_pScrollText.reset(text); // ### Sprites ### m_pSprEye = new CSprite(m_Loader, "Sprites/male_sprites.png", m_pMainCanvas, CPoint(64, 0), CRectangle(0, 0, 64, 64) ); m_pSprMgr->AddSprite(m_pSprEye, "mytag", hspriv::EyeMover(160, 8)); //m_pSprMgr->AddSprite(m_pSprEye, boost::ref( pimpl_->eyemover ) ); //m_pSprMgr->AddSprite(m_pSprEye); CSprite* m_pSprWormler = new CSprite(m_Loader, "Sprites/wormtiles.png", m_pMainCanvas, CPoint(0, 64), CRectangle(0, 0, 256, 64) ); m_pSprWormler->SetColorAndAlpha(0xff00ff, 128); m_pSprMgr->AddSprite(m_pSprWormler, "mytag", hspriv::EyeMover(260, 40)); //_CrtSetBreakAlloc(pimpl_->allocReqNum+4); //_crtBreakAlloc = pimpl_->allocReqNum+4; shost::ScriptHost shost; //shost.RunScript2(m_Loader.FL_LOADASSTRING("Lua/hello.lua")); // shost.RunScript(m_Loader.FL_LOADASSTRING("Lua/funcret.lua")); //shost.RunScript4(m_Loader.FL_LOADASSTRING("Lua/iowrite.lua")); //shost.RunScript(m_Loader.FL_LOADASSTRING("Lua/globalclass.lua")); //shost.RunScript6( m_Loader.FL_LOADASSTRING("Lua/globalclass.lua") ); //shost.RunScript7( m_Loader.FL_LOADASSTRING("Lua/--FREE--.lua") ); typedef shost::LuaScript<int, double, double> ScriptType; ScriptType::Script s = shost.generate<int, double, double>( m_Loader.FL_LOADASSTRING( "Lua/sprite1.lua"), "Ticks", "X", "Y" ); pimpl_->script = s; world.FPS = CApplication::FramesCap(); CRectangle screenRect = m_pMainCanvas->GetDimension(); world.ScreenX = screenRect.GetW(); world.ScreenY = screenRect.GetH(); // Todo maybe an functor to initialize more global stuff (*s->AddStatic(world))("World") .def("greet", &greetHopper) .def_readonly("FPS", &World::FPS) .def_readonly("ScreenX", &World::ScreenX) .def_readonly("ScreenY", &World::ScreenY); ScriptType::Script sprInit = shost.generate<int, double, double>( m_Loader.FL_LOADASSTRING( "Sprites/male_sprites.spr"), "Ticks", "X", "Y" ); //ScriptType::Script sprInit = shost.generate<int, double, double>( m_Loader.FL_LOADASSTRING( // "Sprites/male_sprites.spr"), "Ticks", "X", "Y" ); TestClass st(12,99); (*sprInit->AddStatic(st))("TestClass", "tc") .def(luabind::constructor<std::vector<int> >()) .def(luabind::constructor<int, int>()) .def("get", &TestClass::get); //boost::shared_ptr<shost::LuaScript::register_binder<SpriteFrame >>& bla= int xyz = 55; typedef shost::LuaVarCapsule<luabind::class_<SpriteFrame>> SprCapsule; SprCapsule maleSpriteCap = shost::makeFarm(sprInit, (*sprInit->Register<SpriteFrame>())("SpriteFrame") .def(luabind::constructor<int, int>()) .def("X", &SpriteFrame::X) .def("Y", &SpriteFrame::Y)); (*sprInit->Register<SpriteMovieOld>())("SpriteMovieOld") .def(luabind::constructor<std::string, SpriteFrame>()) .def("X", &SpriteMovieOld::X) .def("Y", &SpriteMovieOld::Y); (*sprInit->Register<SpriteMovie>())("SpriteMovie") .def(luabind::constructor<std::string, std::vector<SpriteFrame>>()) .def("X", &SpriteMovie::X) .def("Y", &SpriteMovie::Y); //luabind::class_<SpriteFrame>& xasd = maleSpriteCap.Value(); //SprCapsule::ObjType mmy(1,2); //mmy.X(); /*luabind::module(sprInit->L()) [ luabind::class_<TestClass>("TestClass_") .def(luabind::constructor<std::vector<int> >()) .def(luabind::constructor<int, int>()) .def("get", &TestClass::get) ];*/ int success = sprInit->run_script(99); luabind::object o3(luabind::globals(sprInit->L())["tcx"]); if (o3) { // is_valid // ... int luatype = luabind::type(o3); if (luabind::type(o3) == LUA_TUSERDATA) { TestClass otherValue = luabind::object_cast<TestClass>(o3); int abc = 4; abc++; } } SpriteFrame otherValue2(0,0); bool success3 = maleSpriteCap.GetLuaValue("spf", otherValue2); SpriteFrame otherValuex = maleSpriteCap.GetLuaValue("spf"); SpriteFrame otherValue3(0,0); bool fsuccess = sprInit->GetLuaValue<SpriteFrame>("spf", otherValue3); luabind::object o4(luabind::globals(sprInit->L())["spf"]); if (o4) { // is_valid // ... int luatype = luabind::type(o4); if (luabind::type(o4) == LUA_TUSERDATA) { SpriteFrame otherValue = luabind::object_cast<SpriteFrame>(o4); int abc = 4; abc++; } } //SpriteMovie otherValue3(0,0); //fsuccess = sprInit->GetLuaValue<SpriteMovie>("spMovie", otherValue3); SpriteMovieOld smovieOld = sprInit->GetLuaValue<SpriteMovieOld>("spMovieOld"); SpriteMovie smovie = sprInit->GetLuaValue<SpriteMovie>("spMovie"); //int *x = new int(666); return Screen::OnInit(argc, argv); } // OnInit
static void TestOctet() { const char *str = "A test of octet strings...!@@#$%^&*()_+|~{}:,./<>?"; OctetStr o1; ACE_ASSERT(o1.valid() == 1); ACE_ASSERT(o1.length() == 0); ACE_ASSERT(o1.data() != (unsigned char *)0); ACE_DEBUG ((LM_DEBUG, "(%P|%t) Octet:o1(\"\") [%s]\n", o1.to_string())); o1.set_data((SmiBYTE *)str); ACE_ASSERT(!ACE_OS::strcmp(str, (char *)o1.data())); ACE_DEBUG ((LM_DEBUG, "(%P|%t) Octet:o1(\"str\") [%s]\n", o1.to_string())); OctetStr o2(str); ACE_ASSERT(o2.valid() == 1); ACE_ASSERT(o2.data() != (unsigned char *)0); ACE_DEBUG ((LM_DEBUG, "(%P|%t) Octet:o2(\"str\") [%s]\n", o2.to_string())); OctetStr o3(str, 4); // test setting less than full string length ACE_ASSERT(o3.valid() == 1); ACE_ASSERT(o3.length() == 4); ACE_DEBUG ((LM_DEBUG, "(%P|%t) Octet:o3(\"A te\") [%s]\n", o3.to_string())); OctetStr o4(o3); // test setting less than full string length ACE_DEBUG ((LM_DEBUG, "(%P|%t) Octet:o4(\"A te\") [%s]\n", o4.to_string())); ACE_ASSERT(o4.valid() == 1); ACE_ASSERT(o4.length() == 4); OctetStr o5; o5 = str; ACE_ASSERT(o5.valid() == 1); ACE_ASSERT(o5.length() == ACE_OS::strlen(str)); ACE_DEBUG ((LM_DEBUG, "(%P|%t) Octet:o5(\"str\") [%s]\n", o5.to_string())); OctetStr o6; o6 = o5; ACE_ASSERT(o6.valid() == 1); ACE_ASSERT(o5.length() == o6.length()); ACE_DEBUG ((LM_DEBUG, "(%P|%t) Octet:o6(\"str\") [%s]\n", o6.to_string())); o6 += o3; o6 = ""; o6 += str; o6 += '#'; ACE_ASSERT(o6[0] == (SmiBYTE) 'A'); ACE_DEBUG ((LM_DEBUG, "(%P|%t) Octet:o6(\"str\") [%s]\n", o6.to_string())); ACE_ASSERT(!(o3 < o3)); ACE_ASSERT(!(o3 > o3)); ACE_ASSERT(o3 >= o3); ACE_ASSERT(o3 <= o3); ACE_ASSERT(o3 == o3); ACE_ASSERT(!(o3 != o3)); }
int main(int argc) { seal::PluginManager::get()->initialise(); pool::URIParser p; p.parse(); pool::IFileCatalog lcat; pool::IFileCatalog * cat = &lcat; cat->setWriteCatalog(p.contactstring()); cat->connect(); cat->start(); pool::IDataSvc *svc = pool::DataSvcFactory::instance(cat); // Define the policy for the implicit file handling pool::DatabaseConnectionPolicy policy; policy.setWriteModeForNonExisting(pool::DatabaseConnectionPolicy::CREATE); // policy.setWriteModeForExisting(pool::DatabaseConnectionPolicy::OVERWRITE); policy.setWriteModeForExisting(pool::DatabaseConnectionPolicy::UPDATE); svc->session().setDefaultConnectionPolicy(policy); svc->transaction().start(pool::ITransaction::UPDATE); pool::Ref<NavigationTests::AS> as(svc, new NavigationTests::AS); { pool::Placement place("DN", pool::DatabaseSpecification::PFN, "L", ROOT::Reflex::Type(), pool::ROOTKEY_StorageType.type()); // This will also register the file. For this to occur, the placement object must use a PFN. as.markWrite(place); } as->p.t=new NavigationTests::BT; as->p.t->k = 3; // svc->transaction().start(pool::ITransaction::UPDATE); pool::Ref<NavigationTests::T2> o1(svc, new NavigationTests::T2); { pool::Placement place("DN", pool::DatabaseSpecification::PFN, "L", ROOT::Reflex::Type(), pool::ROOTKEY_StorageType.type()); // This will also register the file. For this to occur, the placement object must use a PFN. o1.markWrite(place); } pool::Ref<NavigationTests::T2> o2(svc, new NavigationTests::T2); { pool::Placement place("DN", pool::DatabaseSpecification::PFN, "L", ROOT::Reflex::Type(), pool::ROOTKEY_StorageType.type()); // This will also register the file. For this to occur, the placement object must use a PFN. o2.markWrite(place); } pool::Ref<NavigationTests::T2> o3(svc, new NavigationTests::T2); { pool::Placement place("DN", pool::DatabaseSpecification::PFN, "L", ROOT::Reflex::Type(), pool::ROOTKEY_StorageType.type()); // This will also register the file. For this to occur, the placement object must use a PFN. o3.markWrite(place); } pool::Ref<NavigationTests::T2> o5(svc, new NavigationTests::T2); { pool::Placement place("DN", pool::DatabaseSpecification::PFN, "L", ROOT::Reflex::Type(), pool::ROOTKEY_StorageType.type()); // This will also register the file. For this to occur, the placement object must use a PFN. o5.markWrite(place); } pool::Ref<NavigationTests::K> o4(svc, new NavigationTests::K); { pool::Placement place("DN", pool::DatabaseSpecification::PFN, "K", ROOT::Reflex::Type(), pool::ROOTKEY_StorageType.type()); // This will also register the file. For this to occur, the placement object must use a PFN. o4.markWrite(place); } o3->bs.push_back(o1); o3->bs.push_back(o2); o3->bs.push_back(o5); o5->bs.push_back(o2); std::cout << "vec size " << o3->bs.size() << std::endl; // svc->cacheSvc().resetCache(); o1.reset(); std::cout << "o1 " << o1.toString() << std::endl; std::cout << "o1 o " << o1.isOpen() <<std:: endl; std::cout << "o1 p " << o1.isNull() << std::endl; std::cout << "o2 p " << o2.isNull() << std::endl; svc->transaction().commit(); svc->session().disconnectAll(); svc->cacheSvc().resetCache(); svc->transaction().start(pool::ITransaction::UPDATE); // std::cout << "o1 p " << o1.isNull() << std::endl; std::cout << "o1 " << o1.toString() << std::endl; std::cout << "o1 o " << o1.isOpen() <<std:: endl; std::cout << "o1 p " << o1.isNull() << std::endl; o1.markDelete(); o1.reset(); std::cout << "after delete and reset" << std::endl; std::cout << "o1 " << o1.toString() << std::endl; std::cout << "o1 o " << o1.isOpen() <<std:: endl; std::cout << "o1 p " << o1.isNull() << std::endl; std::cout << "o2 d " << o2.toString() << std::endl; std::cout << "o2 t " << o2.token() << std::endl; std::cout << "o2 p " << o2.isNull() << std::endl; svc->transaction().commit(); svc->session().disconnectAll(); svc->transaction().start(pool::ITransaction::UPDATE); std::cout << "vec size " << o3->bs.size() << std::endl; std::cout << "here we do not die anymore..." << std::endl; std::cout << "o2 d " << o2.toString() << std::endl; std::cout << "o2 t " << o2.token() << std::endl; std::cout << "o2 p " << o2.isNull() << std::endl; pool::Ref<NavigationTests::T2> o22 = o2; svc->transaction().commit(); svc->session().disconnectAll(); svc->cacheSvc().resetCache(); svc->transaction().start(pool::ITransaction::UPDATE); std::cout << "vec size " << o3->bs.size() << std::endl; o3->bs.push_back(o5); o3.markUpdate(); std::cout << "vec size " << o3->bs.size() << std::endl; svc->transaction().commit(); if (argc>1) svc->session().disconnectAll(); svc->cacheSvc().resetCache(); svc->transaction().start(pool::ITransaction::UPDATE); std::cout << "vec size " << o3->bs.size() << std::endl; o3->bs.push_back(o5); std::cout << "vec size " << o3->bs.size() << std::endl; o3.markUpdate(); svc->transaction().commit(); svc->session().disconnectAll(); svc->cacheSvc().resetCache(); svc->transaction().start(pool::ITransaction::UPDATE); std::cout << "o1 d " << o1.toString() << std::endl; std::cout << "o1 t " << o1.token() << std::endl; std::cout << "o1 p " << o1.isNull() << std::endl; std::cout << "o2 d " << o2.toString() << std::endl; std::cout << "o2 t " << o2.token() << std::endl; std::cout << "o2 p " << o2.isNull() << std::endl; /// this is true??? svc->transaction().commit(); svc->session().disconnectAll(); try { svc->transaction().start(pool::ITransaction::UPDATE); std::cout << "o2 d " << o2.toString() << std::endl; std::cout << "o2 t " << o2.token() << std::endl; std::cout << "o2 p " << o2.isNull() << std::endl; o2.markUpdate(); std::cout << "after update 1" << std::endl; o2.markDelete(); std::cout << "after delete 1" << std::endl; o2.markUpdate(); std::cout << "after update 2" << std::endl; o2.markDelete(); std::cout << "after delete 2" << std::endl; o22.markDelete(); std::cout << "after delete 22" << std::endl; o3.markDelete(); std::cout << "after delete 3" << std::endl; pool::Ref<NavigationTests::T2> ol(svc, new NavigationTests::T2); { pool::Placement place("DN", pool::DatabaseSpecification::PFN, "L", ROOT::Reflex::Type(), pool::ROOTKEY_StorageType.type()); // This will also register the file. For this to occur, the placement object must use a PFN. ol.markWrite(place); } svc->transaction().commit(); svc->session().disconnectAll(); } catch(const seal::Error& er){ std::cout << "caught seal exception " << std::endl; std::cerr << er.explainSelf(); std::cerr << std::endl; svc->transaction().commit(); svc->session().disconnectAll(); } svc->transaction().start(pool::ITransaction::UPDATE); pool::Ref<NavigationTests::T2> oA(svc,new NavigationTests::T2); { pool::Placement place("DN", pool::DatabaseSpecification::PFN, "L", ROOT::Reflex::Type(), pool::ROOTKEY_StorageType.type()); // This will also register the file. For this to occur, the placement object must use a PFN. oA.markWrite(place); } svc->transaction().commit(); svc->session().disconnectAll(); svc->transaction().start(pool::ITransaction::UPDATE); oA.markDelete(); pool::Ref<NavigationTests::T2> oB(svc,new NavigationTests::T2); { pool::Placement place("DN", pool::DatabaseSpecification::PFN, "L", ROOT::Reflex::Type(), pool::ROOTKEY_StorageType.type()); // This will also register the file. For this to occur, the placement object must use a PFN. oB.markWrite(place); } oA = oB; svc->transaction().commit(); svc->session().disconnectAll(); try { svc->transaction().start(pool::ITransaction::UPDATE); oA.markDelete(); std::cout << "after delete A" << std::endl; svc->transaction().commit(); svc->session().disconnectAll(); } catch(const seal::Error& er){ std::cout << "caught seal exception " << std::endl; std::cerr << er.explainSelf(); std::cerr << std::endl; svc->transaction().commit(); svc->session().disconnectAll(); } try { svc->transaction().start(pool::ITransaction::UPDATE); o5.markDelete(); std::cout << "after delete 5" << std::endl; o3.markDelete(); std::cout << "after delete 3 2" << std::endl; svc->transaction().commit(); svc->session().disconnectAll(); } catch(const seal::Error& er){ std::cout << "OK! caught seal exception " << std::endl; std::cerr << er.explainSelf(); std::cerr << std::endl; svc->transaction().commit(); svc->session().disconnectAll(); } try { svc->transaction().start(pool::ITransaction::READ); pool::Ref<NavigationTests::T2> h2; std::cout << "before is open" <<std:: endl; std::cout << h2.isOpen() <<std:: endl; std::cout << "before reset" <<std:: endl; h2.reset(); svc->transaction().commit(); svc->session().disconnectAll(); } catch(const seal::Error& er){ std::cout << "caught seal exception " << std::endl; std::cerr << er.explainSelf(); std::cerr << std::endl; svc->transaction().commit(); svc->session().disconnectAll(); } cat->commit(); delete svc; }
int cpp_main(int, char * []) { be::endian_log = false; // make sure some simple things work be::big_int32_t o1(1); be::big_int32_t o2(2L); be::big_int32_t o3(3LL); be::big_int64_t o4(1); // use cases; if BOOST_ENDIAN_LOG is defined, will output to clog info on // what overloads and conversions are actually being performed. be::endian_log = true; std::clog << "set up test values\n"; be::big_int32_t big(12345); be::little_uint16_t little_u(10); be::big_int64_t result; // this is the use case that is so irritating that it caused the endian // constructors to be made non-explicit std::clog << "\nf(1234) where f(big_int32_t)\n"; f_big_int32_ut(1234); std::clog << "\nresult = big\n"; result = big; std::clog << "\nresult = +big\n"; result = +big; std::clog << "\nresult = -big\n"; result = -big; std::clog << "\n++big\n"; ++big; std::clog << "\nresult = big++\n"; result = big++; std::clog << "\n--big\n"; --big; std::clog << "\nbig--\n"; big--; std::clog << "\nresult = big * big\n"; result = big * big; std::clog << "\nresult = big * big\n"; result = big * big; std::clog << "\nresult = big * little_u\n"; result = big * little_u; std::clog << "\nbig *= little_u\n"; big *= little_u; std::clog << "\nresult = little_u * big\n"; result = little_u * big; std::clog << "\nresult = big * 5\n"; result = big * 5; std::clog << "\nbig *= 5\n"; big *= 5; std::clog << "\nresult = 5 * big\n"; result = 5 * big; std::clog << "\nresult = little_u * 5\n"; result = little_u * 5; std::clog << "\nresult = 5 * little_u\n"; result = 5 * little_u; std::clog << "\nresult = 5 * 10\n"; result = 5 * 10; std::clog << "\n"; // test from Roland Schwarz that detected ambiguities; these ambiguities // were eliminated by BOOST_ENDIAN_MINIMAL_COVER_OPERATORS unsigned u; be::little_uint32_t u1; be::little_uint32_t u2; u = 9; u1 = 1; std::clog << "\nu2 = u1 + u\n"; u2 = u1 + u; std::clog << "\n"; // variations to detect ambiguities be::little_uint32_t u3 = u1 + 5; u3 = u1 + 5u; if (u1 == 5) {} if (u1 == 5u) {} u1 += 5; u1 += 5u; u2 = u1 + 5; u2 = u1 + 5u; // one more wrinkle be::little_uint16_t u4(3); u4 = 3; std::clog << "\nu2 = u1 + u4\n"; u2 = u1 + u4; std::clog << "\n"; be::endian_log = false; test_inserter_and_extractor(); // perform the indicated test on ~60*60 operand types op_test<default_construct>(); op_test<construct>(); // includes copy construction op_test<initialize>(); op_test<assign>(); op_test<relational>(); op_test<op_plus>(); op_test<op_star>(); return boost::report_errors(); }
int main(int argc, char **argv){ Operand o1(6); Operand o2(8); Operand o3(4); Operand o4(5); Operand o5(3); Mult m(&o1,&o2); Add a(&m,&o3); Add a2(&o2,&o3); Sqr sq(&a2); Div div(&m,&o3); Add a3(&div,&o4); Sqr sq2(&o5); Sub sub(&a3,&sq2); std::cout<<a.evaluate()<<std::endl; std::cout<<sq.evaluate()<<std::endl; std::cout<<sub.evaluate()<<std::endl<<std::endl; InsertSort iSort; Lcontainer lcon(&iSort); lcon.add_element(&o1); lcon.add_element(&sub); lcon.add_element(&div); lcon.add_element(&sq2); lcon.add_element(&m); std::cout<<lcon.at(0)->evaluate()<<std::endl; std::cout<<lcon.at(1)->evaluate()<<std::endl<<std::endl; lcon.print(); std::cout<<std::endl; lcon.swap(0,1); lcon.print(); std::cout<<std::endl; std::cout<<"Sorting list with ascending insertion sort"<<std::endl; lcon.sort(); lcon.print(); std::cout<<std::endl; std::cout<<"Sorting list with descending bubble sort"<<std::endl; BubbleSort bSort; lcon.set_sort_function(&bSort); lcon.sort(); lcon.print(); std::cout<<std::endl; Vcontainer vcon(&iSort); vcon.add_element(&a2); vcon.add_element(&sq2); vcon.add_element(&m); vcon.add_element(&div); vcon.add_element(&a3); vcon.add_element(&a); std::cout<<"Sorting vector with ascending insertion sort"<<std::endl; vcon.sort(); vcon.print(); std::cout<<std::endl; std::cout<<"Sorting vector with descending bubble sort"<<std::endl; vcon.set_sort_function(&bSort); vcon.sort(); vcon.print(); std::cout<<std::endl; }
int main() { bi::endian_log = false; // make sure some simple things work bi::big32_t o1(1); bi::big32_t o2(2L); bi::big32_t o3(3LL); bi::big64_t o4(1); // use cases; if BOOST_ENDIAN_LOG is defined, will output to clog info on // what overloads and conversions are actually being performed. bi::endian_log = true; std::clog << "set up test values\n"; bi::big32_t big(12345); bi::ulittle16_t ulittle(10); bi::big64_t result; std::clog << "\nresult = +big\n"; result = +big; std::clog << "\nresult = -big\n"; result = -big; std::clog << "\n++big\n"; ++big; std::clog << "\nresult = big++\n"; result = big++; std::clog << "\n--big\n"; --big; std::clog << "\nbig--\n"; big--; std::clog << "\nresult = big * big\n"; result = big * big; std::clog << "\nresult = big * big\n"; result = big * big; std::clog << "\nresult = big * ulittle\n"; result = big * ulittle; std::clog << "\nbig *= ulittle\n"; big *= ulittle; std::clog << "\nresult = ulittle * big\n"; result = ulittle * big; std::clog << "\nresult = big * 5\n"; result = big * 5; std::clog << "\nbig *= 5\n"; big *= 5; std::clog << "\nresult = 5 * big\n"; result = 5 * big; std::clog << "\nresult = ulittle * 5\n"; result = ulittle * 5; std::clog << "\nresult = 5 * ulittle\n"; result = 5 * ulittle; std::clog << "\nresult = 5 * 10\n"; result = 5 * 10; std::clog << "\n"; bi::endian_log = false; // test from Roland Schwarz that detected ambiguities unsigned u; bi::ulittle32_t u1; bi::ulittle32_t u2; u = 1; u1 = 1; u2 = u1 + u; // one more wrinkle bi::ulittle16_t u3(3); u3 = 3; u2 = u1 + u3; // perform the indicated test on ~60*60 operand types op_test<default_construct>(); op_test<construct>(); // includes copy construction op_test<initialize>(); op_test<assign>(); op_test<relational>(); op_test<op_plus>(); op_test<op_star>(); return 0; }
/* * START THE VM */ void startVM(Vm* vm) { vm->PC = 0; while (charArrayToInt(0,2,vm->IR) != 99) { nextInstruction(vm); switch (charArrayToInt(0,2,vm->IR)) { case 0: o0(vm); break; case 1: o1(vm); break; case 2: o2(vm); break; case 3: o3(vm); break; case 4: o4(vm); break; case 5: o5(vm); break; case 6: o6(vm); break; case 7: o7(vm); break; case 8: o8(vm); break; case 9: o9(vm); break; case 10: o10(vm); break; case 11: o11(vm); break; case 12: o12(vm); break; case 13: o13(vm); break; case 14: o14(vm); break; case 15: o15(vm); break; case 16: o16(vm); break; case 17: o17(vm); break; case 18: o18(vm); break; case 19: o19(vm); break; case 20: o20(vm); break; case 21: o21(vm); break; case 22: o22(vm); break; case 23: o23(vm); break; case 24: o24(vm); break; case 25: o25(vm); break; case 26: o26(vm); break; case 27: o27(vm); break; case 28: o28(vm); break; case 29: o29(vm); break; case 30: o30(vm); break; case 31: o31(vm); break; case 32: o32(vm); break; case 33: o33(vm); break; case 34: o34(vm); break; case 35: o35(vm); break; case 99: o99(vm); break; default: // Code break; } displayVmFinal(vm); } }
int main(int argc, const char* argv[]) { try { //init park Park disneyWorld("Disney World",10,15,100); //init operators Operator o1(Person("Keren", 19, 1.85)); Operator o2(Person("Daniel", 21, 1.75)); Operator o3(Person("Amir", 26, 1.60)); Operator o4(Person("Eytan", 28, 1.80)); disneyWorld += o1; disneyWorld += o2; disneyWorld += o3; disneyWorld += o4; //init facilities bool ageTypes[] = {true, true, false}; WaterSlide waterSlide(Facility("KAMIKAZA", 2 , ageTypes, &o1), 800); ageTypes[2] = true; RollerCoaster rollerCoasterA(Facility("BALERINE", 30, ageTypes, &o2), 4, 0); ageTypes[0] = false; RollerCoaster rollerCoasterB(Facility("ANACONDA", 16, ageTypes, &o3), 30, 2); ageTypes[2] = false; Facility f("HYDRA", 12, ageTypes, &o4); WaterRollerCoaster waterRollerCoaster(WaterSlide(f,1000), RollerCoaster(f, 40, 7)); disneyWorld += waterSlide; disneyWorld += rollerCoasterA; disneyWorld += rollerCoasterB; disneyWorld += waterRollerCoaster; //create persons to enter park Person p1("Adam",13,1.25); Person p2("Adir", 21, 1.55); Person p3("Adi", 27, 1.68); Person p4("Adva", 72, 1.45); Guest& g1 = disneyWorld.buyTicket(p1, Guest::CHILD, Guest::THRILLED,"09/09/2015"); Guest& g2 = disneyWorld.buyTicket(p2, Guest::ADULT, Guest::HAPPY,"09/09/2015" ,true); Guest& g3 = disneyWorld.buyTicket(p3, Guest::ADULT, Guest::HAPPY,"08/09/2015"); Guest& g4 = disneyWorld.buyTicket(p4, Guest::CHILD, Guest::AFRAID,"05/09/2015"); //add guest to facility waterSlide += g1; waterSlide += g2; waterSlide.start(); //start() should remove all guests waterSlide += g3; waterSlide += g4; waterSlide.start(); rollerCoasterA += g1; rollerCoasterA += g2; rollerCoasterA += g3; rollerCoasterA += g4; waterRollerCoaster += g1; waterRollerCoaster += g2; waterRollerCoaster += g3; waterRollerCoaster += g4; cout << disneyWorld << endl; rollerCoasterA.start(); waterRollerCoaster.start(); cout << disneyWorld << endl; } catch(const char* msg) { cout << "Problem occured..." << endl; cout << msg << endl; cout << "Finishing.." << endl; } }