"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const assert_1 = __importDefault(require("assert"));
const debug_1 = require("../../../debug");
const fromSpec_1 = require("../../../spec/fromSpec");
const _specs_1 = __importDefault(require("../../../system/_specs"));
const system_1 = require("../../util/system");
const spec = require('../../../system/core/array/FilterValueEquals/spec.json');
const FilterPropEqual = (0, fromSpec_1.fromSpec)(spec, _specs_1.default);
const filterPropEqual = new FilterPropEqual(system_1.system);
false && (0, debug_1.watchUnitAndLog)(filterPropEqual);
false && (0, debug_1.watchGraphAndLog)(filterPropEqual);
filterPropEqual.play();
filterPropEqual.push('a', []);
filterPropEqual.push('key', 'a');
filterPropEqual.push('value', 0);
assert_1.default.deepEqual(filterPropEqual.take('b'), []);
assert_1.default.deepEqual(filterPropEqual.peakInput('a'), undefined);
assert_1.default.deepEqual(filterPropEqual.peakInput('key'), undefined);
assert_1.default.deepEqual(filterPropEqual.peakInput('value'), undefined);
filterPropEqual.push('a', [{ a: 0 }]);
filterPropEqual.push('key', 'a');
filterPropEqual.push('value', 0);
assert_1.default.deepEqual(filterPropEqual.take('b'), [{ a: 0 }]);
assert_1.default.deepEqual(filterPropEqual.peakInput('a'), undefined);
assert_1.default.deepEqual(filterPropEqual.peakInput('key'), undefined);
assert_1.default.deepEqual(filterPropEqual.peakInput('value'), undefined);
filterPropEqual.push('a', [{ a: 1 }]);
filterPropEqual.push('key', 'a');
filterPropEqual.push('value', 0);
assert_1.default.deepEqual(filterPropEqual.take('b'), []);
assert_1.default.deepEqual(filterPropEqual.peakInput('a'), undefined);
assert_1.default.deepEqual(filterPropEqual.peakInput('key'), undefined);
assert_1.default.deepEqual(filterPropEqual.peakInput('value'), undefined);
filterPropEqual.push('a', [
    { a: 0, b: 1 },
    { a: 0, b: 2 },
]);
filterPropEqual.push('key', 'a');
filterPropEqual.push('value', 0);
assert_1.default.deepEqual(filterPropEqual.take('b'), [
    { a: 0, b: 1 },
    { a: 0, b: 2 },
]);
assert_1.default.deepEqual(filterPropEqual.peakInput('a'), undefined);
assert_1.default.deepEqual(filterPropEqual.peakInput('key'), undefined);
assert_1.default.deepEqual(filterPropEqual.peakInput('value'), undefined);
filterPropEqual.push('a', [
    { a: 0, b: 1 },
    { a: 0, b: 2 },
]);
filterPropEqual.push('key', 'a');
filterPropEqual.push('value', 0);
assert_1.default.deepEqual(filterPropEqual.takeInput('a'), [
    { a: 0, b: 1 },
    { a: 0, b: 2 },
]);
assert_1.default.deepEqual(filterPropEqual.peakOutput('b'), undefined);
assert_1.default.deepEqual(filterPropEqual.peakInput('a'), undefined);
assert_1.default.deepEqual(filterPropEqual.peakInput('key'), 'a');
assert_1.default.deepEqual(filterPropEqual.peakInput('value'), 0);
filterPropEqual.push('a', [
    { a: 0, b: 1 },
    { a: 0, b: 2 },
]);
assert_1.default.deepEqual(filterPropEqual.peakOutput('b'), [
    { a: 0, b: 1 },
    { a: 0, b: 2 },
]);
filterPropEqual.push('key', 'b');
assert_1.default.deepEqual(filterPropEqual.peakOutput('b'), []);
filterPropEqual.push('value', 1);
assert_1.default.deepEqual(filterPropEqual.peak('b'), [{ a: 0, b: 1 }]);
filterPropEqual.push('key', 'c');
assert_1.default.notEqual(filterPropEqual.getErr(), null);
assert_1.default.deepEqual(filterPropEqual.peakInput('a'), [
    { a: 0, b: 1 },
    { a: 0, b: 2 },
]);
assert_1.default.deepEqual(filterPropEqual.peakInput('key'), 'c');
assert_1.default.deepEqual(filterPropEqual.peakInput('value'), 1);
//# sourceMappingURL=FilterValueEquals.js.map