UNPKG

qminer

Version:

A C++ based data analytics platform for processing large-scale real-time streams containing structured and unstructured data

97 lines (82 loc) 3.44 kB
/** * Copyright (c) 2015, Jozef Stefan Institute, Quintelligence d.o.o. and contributors * All rights reserved. * * This source code is licensed under the FreeBSD license found in the * LICENSE file in the root directory of this source tree. */ // console.log(__filename) var assert = require('../../src/nodejs/scripts/assert.js'); //adds assert.run function var qm = require('../../index.js'); var fs = qm.fs; var now = Date.parse("2016-01-01T05:20:12"); var slot0 = Date.parse("2016-01-01T05:20:00"); var slot1 = Date.parse("2016-01-01T05:25:00"); var slot2 = Date.parse("2016-01-01T05:30:00"); ////////////////////////////////////////////////////////////////////////////////////// // Store creation var store_name = "test"; describe('Query-aggregates tests ', function () { var base = undefined; var store = undefined; beforeEach(function () { base = new qm.Base({ mode: 'createClean' }); base.createStore({ "name": store_name, "fields": [ { "name": "title", "type": "string", "store" : "cache" }, { "name": "src", "type": "string", "store" : "cache" }, { "name": "ts", "type": "datetime", "store": "cache" } ] }); store = base.store(store_name); store.push({title: "title1", src: "src1", ts: now}); store.push({title: "title2", src: "src1", ts: now + 2 * 60 * 1000 }); store.push({title: "title3", src: "src2", ts: now + 7 * 60 * 1000 }); store.push({title: "title4", src: "src3", ts: now + 14 * 60 * 1000 }); }); afterEach(function () { base.close(); }); ////////////////// it('should execute count', function () { var query = { $from : store_name }; var rs = base.search(query); var aggrs = rs.aggr([ { type: "count", field: "src", name: "aggr_src" }, { type: "timeline", field: "ts", name: "aggr_ts" }, { type: "timespan", field: "ts", name: "aggr_ts2", slot_length: 5 * 60 * 1000 } // 5 minutes ]); //console.log(JSON.stringify(aggrs)); //console.log(JSON.stringify(aggr.aggr_src.values)); { var aggr0 = aggrs[0]; assert.strictEqual(aggr0.type, "count"); assert.strictEqual(aggr0.values.length, 3); assert.strictEqual(aggr0.values[0].value, "src1"); assert.strictEqual(aggr0.values[1].value, "src2"); assert.strictEqual(aggr0.values[2].value, "src3"); assert.strictEqual(aggr0.values[0].frequency, 2); assert.strictEqual(aggr0.values[1].frequency, 1); assert.strictEqual(aggr0.values[2].frequency, 1); } { var aggr1 = aggrs[1]; assert.strictEqual(aggr1.type, "timeline"); //assert.strictEqual(aggr1.slots.length, 3); } { var aggr2 = aggrs[2]; assert.strictEqual(aggr2.type, "timespan"); assert.strictEqual(aggr2.slots.length, 3); assert.strictEqual(aggr2.slots[0].count, 2); assert.strictEqual(aggr2.slots[1].count, 1); assert.strictEqual(aggr2.slots[2].count, 1); assert.strictEqual(aggr2.slots[0].slot, slot0); assert.strictEqual(aggr2.slots[1].slot, slot1); assert.strictEqual(aggr2.slots[2].slot, slot2); } }) })