#include <iostream>
#include "tasks.h"
#include "task_io.h"
#include "schedulability.h"
#include "sharedres.h"
#include "res_io.h"
#include "edf/baker.h"
#include "edf/baruah.h"
#include "edf/gfb.h"
#include "edf/bcl.h"
#include "edf/bcl_iterative.h"
#include "edf/gedf.h"
#include "edf/sim.h"
#include "lp_analysis.h"
#include "event.h"
#include "schedule_sim.h"
#include "math-helper.h"
using namespace std;
void test_baker()
{
TaskSet ts = TaskSet();
ts.add_task(49, 100);
ts.add_task(49, 100);
ts.add_task(2, 100, 50);
BakerGedf t = BakerGedf(2);
cout << "Baker schedulable? : " << t.is_schedulable(ts) << endl;
GFBGedf gfb = GFBGedf(2);
cout << "GFB schedulable? : " << gfb.is_schedulable(ts) << endl;
cout << "BCL schedulable? : " << BCLGedf(2).is_schedulable(ts) << endl;
cout << "Baruah schedulable? : " << BaruahGedf(2).is_schedulable(ts)
<< endl;
cout << "BCL Iter. sched.? : " << BCLIterativeGedf(2).is_schedulable(ts)
<< endl;
cout << "G-EDF schedulable? : " << GlobalEDF(2).is_schedulable(ts) << endl;
}
TaskSet* init_baruah()
{
TaskSet* rts = new TaskSet();
TaskSet& ts = *rts;
ts.add_task(544, 89000);
ts.add_task(7038, 96000);
ts.add_task(8213, 91000);
ts.add_task(2937, 39000);
ts.add_task(3674, 51000);
ts.add_task(3758, 97000);
ts.add_task(91, 31000);
ts.add_task(4960, 55000);
ts.add_task(3888, 89000);
ts.add_task(1187, 32000);
ts.add_task(2393, 44000);
ts.add_task(1513, 17000);
ts.add_task(2264, 38000);
ts.add_task(6660, 84000);
ts.add_task(1183, 96000);
ts.add_task(4810, 95000);
ts.add_task(1641, 20000);
ts.add_task(3968, 71000);
ts.add_task(280, 82000);
ts.add_task(4259, 51000);
ts.add_task(1981, 70000);
ts.add_task(393, 34000);
ts.add_task(3882, 93000);
ts.add_task(5921, 68000);
ts.add_task(901, 21000);
ts.add_task(2166, 40000);
ts.add_task(1532, 17000);
ts.add_task(1159, 36000);
ts.add_task(2170, 89000);
ts.add_task(8770, 91000);
ts.add_task(1643, 48000);
ts.add_task(110, 69000);
ts.add_task(1300, 84000);
ts.add_task(1488, 20000);
ts.add_task(2031, 21000);
ts.add_task(7139, 95000);
ts.add_task(3905, 63000);
ts.add_task(8126, 82000);
ts.add_task(6309, 82000);
ts.add_task(7386, 80000);
ts.add_task(5044, 83000);
ts.add_task(425, 77000);
ts.add_task(1439, 38000);
ts.add_task(6332, 74000);
ts.add_task(1237, 62000);
ts.add_task(2547, 32000);
ts.add_task(1196, 12000);
ts.add_task(9996, 100000);
ts.add_task(2730, 31000);
ts.add_task(773, 48000);
ts.add_task(3894, 59000);
ts.add_task(1234, 39000);
ts.add_task(1585, 34000);
ts.add_task(1905, 67000);
ts.add_task(3440, 62000);
ts.add_task(678, 24000);
ts.add_task(7211, 97000);
ts.add_task(1453, 60000);
ts.add_task(6560, 84000);
ts.add_task(122, 73000);
ts.add_task(382, 42000);
ts.add_task(2906, 46000);
ts.add_task(880, 11000);
ts.add_task(2704, 29000);
ts.add_task(2387, 36000);
ts.add_task(3111, 46000);
ts.add_task(4654, 78000);
ts.add_task(808, 81000);
ts.add_task(1485, 18000);
ts.add_task(1865, 73000);
ts.add_task(2956, 64000);
ts.add_task(1058, 51000);
ts.add_task(1773, 86000);
ts.add_task(2610, 54000);
ts.add_task(6795, 86000);
ts.add_task(8381, 84000);
ts.add_task(5631, 85000);
ts.add_task(1567, 69000);
ts.add_task(303, 24000);
ts.add_task(2889, 44000);
ts.add_task(4201, 67000);
ts.add_task(2771, 85000);
ts.add_task(1287, 71000);
ts.add_task(4572, 67000);
ts.add_task(4277, 54000);
ts.add_task(3114, 82000);
ts.add_task(4527, 49000);
ts.add_task(2336, 60000);
ts.add_task(8131, 85000);
ts.add_task(2680, 27000);
ts.add_task(2598, 34000);
ts.add_task(888, 58000);
ts.add_task(1051, 14000);
ts.add_task(1216, 27000);
ts.add_task(2768, 40000);
ts.add_task(875, 65000);
ts.add_task
|