3 #include <gtest/gtest.h> 7 #include "cyc_limits.h" 8 #include "resource_helpers.h" 9 #include "test_context.h" 29 recipe = cyclus::Composition::CreateFromAtom(cyclus::CompMap());
39 TEST_F(SourceTest, Clone) {
40 cyclus::Context* ctx =
tc.get();
51 TEST_F(SourceTest, Print) {
55 TEST_F(SourceTest, AddBids) {
57 using cyclus::BidPortfolio;
58 using cyclus::CapacityConstraint;
59 using cyclus::ExchangeContext;
60 using cyclus::Material;
64 boost::shared_ptr< cyclus::ExchangeContext<Material> >
67 std::set<BidPortfolio<Material>::Ptr> ports =
70 ASSERT_TRUE(ports.size() > 0);
71 EXPECT_EQ(ports.size(), 1);
73 BidPortfolio<Material>::Ptr port = *ports.begin();
75 EXPECT_EQ(port->bids().size(), nreqs);
77 const std::set< CapacityConstraint<Material> >& constrs = port->constraints();
78 ASSERT_TRUE(constrs.size() > 0);
79 EXPECT_EQ(constrs.size(), 1);
80 EXPECT_EQ(*constrs.begin(), CapacityConstraint<Material>(
capacity));
83 TEST_F(SourceTest, Response) {
85 using cyclus::Material;
86 using cyclus::Request;
88 using test_helpers::get_mat;
90 std::vector< cyclus::Trade<cyclus::Material> > trades;
91 std::vector<std::pair<cyclus::Trade<cyclus::Material>,
92 cyclus::Material::Ptr> > responses;
96 EXPECT_EQ(responses.size(), 0);
99 Request<Material>* request =
100 Request<Material>::Create(get_mat(), trader,
commod);
102 Bid<Material>::Create(request, get_mat(),
src_facility);
104 Trade<Material> trade(request, bid, qty);
105 trades.push_back(trade);
109 EXPECT_EQ(responses.size(), 1);
110 EXPECT_EQ(responses[0].second->quantity(), qty);
111 EXPECT_EQ(responses[0].second->comp(),
recipe);
114 trades.push_back(trade);
117 EXPECT_EQ(responses.size(), 2);
126 TEST_F(SourceTest, PositionInitialize) {
128 "<outcommod>spent_fuel</outcommod>" 131 cyclus::MockSim sim(cyclus::AgentSpec (
":cycamore:Source"), config, simdur);
134 cyclus::QueryResult qr = sim.db().Query(
"AgentPosition", NULL);
135 EXPECT_EQ(qr.GetVal<
double>(
"Latitude"), 0.0);
136 EXPECT_EQ(qr.GetVal<
double>(
"Longitude"), 0.0);
140 TEST_F(SourceTest, Longitude) {
142 "<outcommod>spent_fuel</outcommod>" 143 "<latitude>-0.01</latitude>" 144 "<longitude>0.01</longitude>" 147 cyclus::MockSim sim(cyclus::AgentSpec (
":cycamore:Source"), config, simdur);
150 cyclus::QueryResult qr = sim.db().Query(
"AgentPosition", NULL);
151 EXPECT_EQ(qr.GetVal<
double>(
"Latitude"), -0.01);
152 EXPECT_EQ(qr.GetVal<
double>(
"Longitude"), 0.01);
156 boost::shared_ptr< cyclus::ExchangeContext<cyclus::Material> >
158 using cyclus::Material;
159 using cyclus::Request;
160 using cyclus::ExchangeContext;
161 using test_helpers::get_mat;
164 boost::shared_ptr< ExchangeContext<Material> >
165 ec(
new ExchangeContext<Material>());
166 for (
int i = 0; i < nreqs; i++) {
167 ec->AddRequest(Request<Material>::Create(get_mat(), trader, commod));
179 #ifndef CYCLUS_AGENT_TESTS_CONNECTED 182 #define CYCLUS_AGENT_TESTS_CONNECTED cyclus_agent_tests_connected 183 #endif // CYCLUS_AGENT_TESTS_CONNECTED This facility acts as a source of material with a fixed throughput (per time step) capacity and a lif...
double throughput(cycamore::Source *s)
std::string outrecipe(cycamore::Source *s)
virtual std::set< cyclus::BidPortfolio< cyclus::Material >::Ptr > GetMatlBids(cyclus::CommodMap< cyclus::Material >::type &commod_requests)
static int cyclus_agent_tests_connected
cycamore::GrowthRegion string
std::string outcommod(cycamore::Source *s)
virtual std::string str()
cyclus::Agent * SourceConstructor(cyclus::Context *ctx)
cycamore::Source * src_facility
virtual cyclus::Agent * Clone()
boost::shared_ptr< cyclus::ExchangeContext< cyclus::Material > > GetContext(int nreqs, std::string commodity)
INSTANTIATE_TEST_CASE_P(SourceFac, FacilityTests, Values(&SourceConstructor))
virtual void GetMatlTrades(const std::vector< cyclus::Trade< cyclus::Material > > &trades, std::vector< std::pair< cyclus::Trade< cyclus::Material >, cyclus::Material::Ptr > > &responses)
TEST_F(EnrichmentTest, RequestQty)
cyclus::Composition::Ptr recipe