Skip to content
Snippets Groups Projects
Commit 32bef47e authored by jgatt's avatar jgatt
Browse files

Now we check that red_windows and yellow windows interval are distinct + now...

Now we check that red_windows and yellow windows interval are distinct + now parse dm_window is static
parent b8e54561
No related branches found
No related tags found
1 merge request!16Merge request multibehavior
...@@ -50,6 +50,10 @@ Broker::Broker(rapidjson::Document *user_description_file) ...@@ -50,6 +50,10 @@ Broker::Broker(rapidjson::Document *user_description_file)
"red_windows",user_description_file); "red_windows",user_description_file);
} }
if (red_windows_list && yellow_windows_list){
PPK_ASSERT_ERROR(red_windows_list->had_no_common_element(yellow_windows_list),
"Error red_windows field and yellow_windows field had common element in their interval");
}
//seed parameter parsing //seed parameter parsing
bool seed_defined = false; bool seed_defined = false;
if (user_description_file->HasMember("seed")){ if (user_description_file->HasMember("seed")){
...@@ -301,7 +305,7 @@ void Broker::feedback_job_status(double date, ...@@ -301,7 +305,7 @@ void Broker::feedback_job_status(double date,
user_queue.sort(CompareUsers()); user_queue.sort(CompareUsers());
} }
DMWindow_list* Broker::parse_dm_windows(const std::string attr_name, DMWindow_list* Broker::parse_dm_windows(const std::string& attr_name,
const rapidjson::Document *user_description_file) const rapidjson::Document *user_description_file)
{ {
const Value &windows_param = (*user_description_file)[attr_name.c_str()]; const Value &windows_param = (*user_description_file)[attr_name.c_str()];
......
...@@ -14,7 +14,7 @@ class Broker ...@@ -14,7 +14,7 @@ class Broker
{ {
public: public:
Broker(rapidjson::Document *user_description_file); Broker(rapidjson::Document *user_description_file);
DMWindow_list* parse_dm_windows(const std::string attr_name, static DMWindow_list* parse_dm_windows(const std::string& attr_name,
const rapidjson::Document *user_description_file); const rapidjson::Document *user_description_file);
~Broker(); ~Broker();
......
...@@ -15,6 +15,13 @@ bool DMWindow_list::date_in_dm_window(double date) const{ ...@@ -15,6 +15,13 @@ bool DMWindow_list::date_in_dm_window(double date) const{
return interval.contains((int) date); return interval.contains((int) date);
} }
bool DMWindow_list::had_no_common_element( DMWindow_list* compare_list) const
{
IntervalSet intersect = interval;
intersect &= compare_list->interval;
return intersect.is_empty();
}
void DMUserMultiBehavior::init_prob(const rapidjson::Value &param,std::vector<double> & red_prob_array, std::vector<double> & yellow_prob_array){ void DMUserMultiBehavior::init_prob(const rapidjson::Value &param,std::vector<double> & red_prob_array, std::vector<double> & yellow_prob_array){
//Red window probability initialization //Red window probability initialization
......
...@@ -19,6 +19,8 @@ struct DMWindow_list ...@@ -19,6 +19,8 @@ struct DMWindow_list
{ {
IntervalSet interval; IntervalSet interval;
explicit DMWindow_list(const IntervalSet& interval); explicit DMWindow_list(const IntervalSet& interval);
bool had_no_common_element( DMWindow_list* compare_list) const;
bool date_in_dm_window(double date) const; bool date_in_dm_window(double date) const;
}; };
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment