'use strict'; require('../../support/test-helper'); var assert = require('../../support/assert'); var testClient = require('./support/test-client'); describe('torque png renderer', function () { var IMAGE_TOLERANCE_PER_MIL = 20; var torquePngPointsMapConfig = { version: '1.2.0', layers: [ { type: 'torque', options: { sql: 'SELECT * FROM populated_places_simple_reduced where the_geom' + ' && ST_MakeEnvelope(-90, 0, 90, 65)', cartocss: [ 'Map {', ' buffer-size:0;', ' -torque-frame-count:1;', ' -torque-animation-duration:30;', ' -torque-time-attribute:"cartodb_id";', ' -torque-aggregation-function:"count(cartodb_id)";', ' -torque-resolution:1;', ' -torque-data-aggregation:linear;', '}', '#populated_places_simple_reduced{', ' comp-op: multiply;', ' marker-fill-opacity: 1;', ' marker-line-color: #FFF;', ' marker-line-width: 0;', ' marker-line-opacity: 1;', ' marker-type: rectangle;', ' marker-width: 3;', ' marker-fill: #FFCC00;', '}' ].join(' '), cartocss_version: '2.3.0' } } ] }; var tileRequests = [ { z: 2, x: 2, y: 1, layer: 0, format: 'torque.png' }, { z: 2, x: 1, y: 1, layer: 0, format: 'torque.png' } ]; function torquePngFixture (zxy) { return './test/fixtures/torque/populated_places_simple_reduced-' + zxy.join('.') + '.png'; } tileRequests.forEach(function (tileRequest) { var z = tileRequest.z; var x = tileRequest.x; var y = tileRequest.y; var zxy = [z, x, y]; it('tile ' + zxy.join('/') + '.torque.png', function (done) { testClient.getTileLayer(torquePngPointsMapConfig, tileRequest, function (err, res) { assert.imageBufferIsSimilarToFile(res.body, torquePngFixture(zxy), IMAGE_TOLERANCE_PER_MIL, function (err) { assert.ok(!err); done(); } ); }); }); }); var mapConfigTorqueOffset = { version: '1.3.0', layers: [ { type: 'torque', options: { sql: 'SELECT * FROM populated_places_simple_reduced', cartocss: [ 'Map {', 'buffer-size:0;', '-torque-frame-count:1;', '-torque-animation-duration:30;', '-torque-time-attribute:"cartodb_id";', '-torque-aggregation-function:"count(cartodb_id)";', '-torque-resolution:2;', '-torque-data-aggregation:linear;', '}', '', '#populated_places_simple_reduced{', ' comp-op: lighter;', ' marker-fill-opacity: 0.9;', ' marker-line-color: #2167AB;', ' marker-line-width: 5;', ' marker-line-opacity: 1;', ' marker-type: ellipse;', ' marker-width: 6;', ' marker-fill: #FF9900;', '}', '#populated_places_simple_reduced[frame-offset=1] {', ' marker-width:8;', ' marker-fill-opacity:0.45; ', '}', '#populated_places_simple_reduced[frame-offset=2] {', ' marker-width:10;', ' marker-fill-opacity:0.225; ', '}' ].join(' '), cartocss_version: '2.3.0' } } ] }; it('torque static map with offset', function (done) { var w = 600; var h = 400; testClient.getStaticBbox(mapConfigTorqueOffset, -170, -87, 170, 87, w, h, function (err, res, img) { if (err) { return done(err); } assert.strictEqual(img.width(), w); assert.strictEqual(img.height(), h); done(); }); }); });