"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 Add_1 = __importDefault(require("../../../../system/f/arithmetic/Add"));
const system_1 = require("../../../util/system");
const add = new Add_1.default(system_1.system);
add.play();
add.push('a', 1);
add.push('b', 2);
assert_1.default.equal(add.peakInput('a'), 1);
assert_1.default.equal(add.peakInput('b'), 2);
assert_1.default.equal(add.take('a + b'), 3);
add.push('a', 3);
add.push('b', 4);
assert_1.default.equal(add.peakInput('a'), 3);
assert_1.default.equal(add.peakInput('b'), 4);
assert_1.default.equal(add.take('a + b'), 7);
add.setInputConstant('b', true);
add.push('b', 1);
add.push('a', 1);
assert_1.default.equal(add.take('a + b'), 2);
add.push('a', 5);
assert_1.default.equal(add.take('a + b'), 6);
add.setInputConstant('a', true);
add.push('a', 99);
assert_1.default.equal(add.peakInput('a'), 99);
assert_1.default.equal(add.peakInput('b'), 1);
assert_1.default.equal(add.take('a + b'), 100);
assert_1.default.equal(add.take('a + b'), 100);
// infinite loop
// add.setInputConstant('a', true)
// add.setInputConstant('b', true)
// add.setOutputIgnored('a + b', true)
// add.push('a', 1)
// add.push('b', 2)
//# sourceMappingURL=Add.js.map