UNPKG

@gracexwho/model-card-generator

Version:

Tool for generating model cards for Jupyter Notebook.

44 lines 2.01 kB
(function (factory) { if (typeof module === "object" && typeof module.exports === "object") { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === "function" && define.amd) { define(["require", "exports", "../control-flow", "../python-parser"], factory); } })(function (require, exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var control_flow_1 = require("../control-flow"); var python_parser_1 = require("../python-parser"); describe("ControlFlowGraph", function () { function makeCfg() { var codeLines = []; for (var _i = 0; _i < arguments.length; _i++) { codeLines[_i] = arguments[_i]; } var code = codeLines.concat("").join("\n"); // add newlines to end of every line. return new control_flow_1.ControlFlowGraph(python_parser_1.parse(code)); } it("builds the right successor structure for try-except", function () { var cfg = makeCfg("try:", " return 0", "except:", " return 1"); var handlerHead = cfg.blocks.filter(function (b) { return b.hint == "handlers"; }).pop(); expect(cfg.getPredecessors(handlerHead).pop().hint).toBe("try body"); }); it("builds a cfg for a function body", function () { var ast = python_parser_1.parse([ "def foo(n):", " if n < 4:", " return 1", " else:", " return 2" ].join("\n")); expect(ast.code).toHaveLength(1); expect(ast.code[0].type).toBe("def"); var cfg = new control_flow_1.ControlFlowGraph(ast.code[0]); expect(cfg.blocks).toBeDefined(); expect(cfg.blocks).toHaveLength(6); }); }); }); //# sourceMappingURL=cfg.test.js.map