3 changed files with 74 additions and 10 deletions
@ -1,7 +0,0 @@
|
||||
import { HASTIC_PORT } from '../src/config'; |
||||
|
||||
describe("When importing from .ts files", function() { |
||||
it("config should be correct", function() { |
||||
expect(HASTIC_PORT).toBe(8000); |
||||
}) |
||||
}) |
@ -0,0 +1,66 @@
|
||||
import { deleteNonpredictedSegments } from '../src/controllers/analytics_controller'; |
||||
import * as AnalyticUnit from '../src/models/analytic_unit_model'; |
||||
import * as Segment from '../src/models/segment_model'; |
||||
|
||||
import * as _ from 'lodash'; |
||||
|
||||
let id: AnalyticUnit.AnalyticUnitId = 'testid'; |
||||
let baseSegments = segmentBuilder([[0,1], [2,3], [4,5]]); |
||||
|
||||
beforeAll(async () => { |
||||
clearDB(); |
||||
}); |
||||
|
||||
beforeEach(async ()=> { |
||||
await Segment.insertSegments(baseSegments); |
||||
}); |
||||
|
||||
afterEach(async () => { |
||||
clearDB(); |
||||
}); |
||||
|
||||
describe('Check deleted segments', function() { |
||||
let payload = { |
||||
lastPredictionTime: 0, |
||||
segments: [], |
||||
cache: null |
||||
}; |
||||
|
||||
it('previous segments not found', async function() { |
||||
payload.segments = segmentBuilder([[0,1], [4,5]]); |
||||
expect(await getDeletedSegments(id, payload)).toEqual(segmentBuilder([[2,3]])); |
||||
}); |
||||
|
||||
it('all previous segments found', async function() { |
||||
payload.segments = segmentBuilder([[0,1], [2,3], [4,5]]); |
||||
expect(await getDeletedSegments(id, payload)).toEqual([]); |
||||
}); |
||||
|
||||
}); |
||||
|
||||
async function getDeletedSegments(id, payload): Promise<Segment.Segment[]> { |
||||
let preSegments = await Segment.findMany(id, {labeled: false, deleted:false}); |
||||
await deleteNonpredictedSegments(id, payload); |
||||
let postSegments = await Segment.findMany(id, {labeled: false, deleted:false}); |
||||
let deleted = setDifference(preSegments, postSegments); |
||||
deleted = deleted.map(s => { |
||||
s.id = undefined; |
||||
return s; |
||||
}); |
||||
return deleted; |
||||
} |
||||
|
||||
function setDifference(a, b: Segment.Segment[]): Segment.Segment[] { |
||||
return _.differenceWith(a, b, (x, y: Segment.Segment) => x.equals(y)); |
||||
} |
||||
|
||||
function segmentBuilder(times) { |
||||
return times.map(t => { |
||||
return new Segment.Segment(id, t[0], t[1], false, false, undefined); |
||||
}); |
||||
} |
||||
|
||||
async function clearDB() { |
||||
let segments = await Segment.findMany(id, {labeled: false, deleted: false}); |
||||
await Segment.removeSegments(segments.map(s => s.id)); |
||||
} |
Loading…
Reference in new issue