@tensorflow/tfjs-core
Version:
Hardware-accelerated JavaScript library for machine intelligence
84 lines • 4.24 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var test_util_1 = require("../test_util");
var jasmine_util_1 = require("../jasmine_util");
var backend_webgl_1 = require("./backend_webgl");
jasmine_util_1.describeWithFlags('backendWebGL', test_util_1.WEBGL_ENVS, function () {
it('delayed storage, reading', function () {
var delayedStorage = true;
var backend = new backend_webgl_1.MathBackendWebGL(null, delayedStorage);
var texManager = backend.getTextureManager();
var dataId = {};
backend.register(dataId, [3], 'float32');
backend.write(dataId, new Float32Array([1, 2, 3]));
expect(texManager.getNumUsedTextures()).toBe(0);
backend.getTexture(dataId);
expect(texManager.getNumUsedTextures()).toBe(1);
test_util_1.expectArraysClose(backend.readSync(dataId), new Float32Array([1, 2, 3]));
expect(texManager.getNumUsedTextures()).toBe(0);
backend.getTexture(dataId);
expect(texManager.getNumUsedTextures()).toBe(1);
backend.disposeData(dataId);
expect(texManager.getNumUsedTextures()).toBe(0);
});
it('delayed storage, overwriting', function () {
var delayedStorage = true;
var backend = new backend_webgl_1.MathBackendWebGL(null, delayedStorage);
var texManager = backend.getTextureManager();
var dataId = {};
backend.register(dataId, [3], 'float32');
backend.write(dataId, new Float32Array([1, 2, 3]));
backend.getTexture(dataId);
expect(texManager.getNumUsedTextures()).toBe(1);
backend.write(dataId, new Float32Array([4, 5, 6]));
expect(texManager.getNumUsedTextures()).toBe(0);
test_util_1.expectArraysClose(backend.readSync(dataId), new Float32Array([4, 5, 6]));
backend.getTexture(dataId);
expect(texManager.getNumUsedTextures()).toBe(1);
test_util_1.expectArraysClose(backend.readSync(dataId), new Float32Array([4, 5, 6]));
expect(texManager.getNumUsedTextures()).toBe(0);
});
it('immediate storage reading', function () {
var delayedStorage = false;
var backend = new backend_webgl_1.MathBackendWebGL(null, delayedStorage);
var texManager = backend.getTextureManager();
var dataId = {};
backend.register(dataId, [3], 'float32');
backend.write(dataId, new Float32Array([1, 2, 3]));
expect(texManager.getNumUsedTextures()).toBe(1);
test_util_1.expectArraysClose(backend.readSync(dataId), new Float32Array([1, 2, 3]));
expect(texManager.getNumUsedTextures()).toBe(1);
backend.disposeData(dataId);
expect(texManager.getNumUsedTextures()).toBe(0);
});
it('immediate storage overwriting', function () {
var delayedStorage = false;
var backend = new backend_webgl_1.MathBackendWebGL(null, delayedStorage);
var texManager = backend.getTextureManager();
var dataId = {};
backend.register(dataId, [3], 'float32');
backend.write(dataId, new Float32Array([1, 2, 3]));
expect(texManager.getNumUsedTextures()).toBe(1);
backend.write(dataId, new Float32Array([4, 5, 6]));
expect(texManager.getNumUsedTextures()).toBe(1);
test_util_1.expectArraysClose(backend.readSync(dataId), new Float32Array([4, 5, 6]));
expect(texManager.getNumUsedTextures()).toBe(1);
backend.disposeData(dataId);
expect(texManager.getNumUsedTextures()).toBe(0);
});
it('disposal of backend disposes all textures', function () {
var delayedStorage = false;
var backend = new backend_webgl_1.MathBackendWebGL(null, delayedStorage);
var texManager = backend.getTextureManager();
var dataId = {};
backend.register(dataId, [3], 'float32');
backend.write(dataId, new Float32Array([1, 2, 3]));
var dataId2 = {};
backend.register(dataId2, [3], 'float32');
backend.write(dataId2, new Float32Array([4, 5, 6]));
expect(texManager.getNumUsedTextures()).toBe(2);
backend.dispose();
expect(texManager.getNumUsedTextures()).toBe(0);
});
});
//# sourceMappingURL=backend_webgl_test.js.map