import createGantt, { createSchedule } from './index'; test('create schedule', () => { const jobs = [ { jobId: 1, t: 8, d: 11, anc: [], w: 1 }, { jobId: 2, t: 5, d: 9, anc: [], w: 1 }, { jobId: 3, t: 6, d: 10, anc: [], w: 3 }, { jobId: 4, t: 5, d: 14, anc: [1], w: 2 }, { jobId: 5, t: 9, d: 19, anc: [1], w: 1 }, { jobId: 6, t: 3, d: 14, anc: [2, 3, 4], w: 1 }, { jobId: 7, t: 9, d: 36, anc: [2, 3, 4], w: 2 }, { jobId: 8, t: 5, d: 39, anc: [2, 3, 4], w: 2 }, { jobId: 9, t: 8, d: 31, anc: [5, 6], w: 1 }, { jobId: 10, t: 5, d: 59, anc: [7], w: 2 }, { jobId: 11, t: 5, d: 61, anc: [8], w: 3 }, ]; const schedule = createSchedule(jobs); expect(schedule.length).toBe(11); expect(schedule[0]).toEqual({ jobId: 3, t: 6, d: 10, c: 6 }); expect(schedule[1]).toEqual({ jobId: 1, t: 8, d: 11, c: 14 }); expect(schedule[2]).toEqual({ jobId: 4, t: 5, d: 14, c: 19 }); expect(schedule[3]).toEqual({ jobId: 2, t: 5, d: 9, c: 24 }); expect(schedule[4]).toEqual({ jobId: 6, t: 3, d: 14, c: 27 }); expect(schedule[5]).toEqual({ jobId: 5, t: 9, d: 19, c: 36 }); expect(schedule[6]).toEqual({ jobId: 7, t: 9, d: 36, c: 45 }); expect(schedule[7]).toEqual({ jobId: 8, t: 5, d: 39, c: 50 }); expect(schedule[8]).toEqual({ jobId: 9, t: 8, d: 31, c: 58 }); expect(schedule[9]).toEqual({ jobId: 11, t: 5, d: 61, c: 63 }); expect(schedule[10]).toEqual({ jobId: 10, t: 5, d: 59, c: 68 }); }); test('create gantt', () => { const jobs = [ { jobId: 1, t: 8, d: 11, anc: [], w: 1, name: 'a' }, { jobId: 2, t: 5, d: 9, anc: [], w: 1, name: 'b' }, { jobId: 3, t: 6, d: 10, anc: [], w: 3, name: 'c' }, { jobId: 4, t: 5, d: 14, anc: [1], w: 2, name: 'd' }, { jobId: 5, t: 9, d: 19, anc: [1], w: 1, name: 'e' }, { jobId: 6, t: 3, d: 14, anc: [2, 3, 4], w: 1, name: 'f' }, { jobId: 7, t: 9, d: 36, anc: [2, 3, 4], w: 2, name: 'g' }, { jobId: 8, t: 5, d: 39, anc: [2, 3, 4], w: 2, name: 'h' }, { jobId: 9, t: 8, d: 31, anc: [5, 6], w: 1, name: 'i' }, { jobId: 10, t: 5, d: 59, anc: [7], w: 2, name: 'j' }, { jobId: 11, t: 5, d: 61, anc: [8], w: 3, name: 'k' }, ]; const template = createGantt(jobs); expect(template.length).toBe(1); expect(template[0].length).toBe(11); expect(template[0][0]).toEqual({ processor: 1, startTime: 0, endTime: 6, delayed: 0, name: 'c' }); expect(template[0][1]).toEqual({ processor: 1, startTime: 6, endTime: 14, delayed: 3, name: 'a' }); expect(template[0][2]).toEqual({ processor: 1, startTime: 14, endTime: 19, delayed: 5, name: 'd' }); expect(template[0][3]).toEqual({ processor: 1, startTime: 19, endTime: 24, delayed: 15, name: 'b' }); expect(template[0][4]).toEqual({ processor: 1, startTime: 24, endTime: 27, delayed: 13, name: 'f' }); expect(template[0][5]).toEqual({ processor: 1, startTime: 27, endTime: 36, delayed: 17, name: 'e' }); expect(template[0][6]).toEqual({ processor: 1, startTime: 36, endTime: 45, delayed: 9, name: 'g' }); expect(template[0][7]).toEqual({ processor: 1, startTime: 45, endTime: 50, delayed: 11, name: 'h' }); expect(template[0][8]).toEqual({ processor: 1, startTime: 50, endTime: 58, delayed: 27, name: 'i' }); expect(template[0][9]).toEqual({ processor: 1, startTime: 58, endTime: 63, delayed: 2, name: 'k' }); expect(template[0][10]).toEqual({ processor: 1, startTime: 63, endTime: 68, delayed: 9, name: 'j' }); });