| 621 | } |
| 622 | |
| 623 | void DumpArray(const Model& model, string* output_file, |
| 624 | const string& array_id) { |
| 625 | Color color; |
| 626 | string shape; |
| 627 | GetArrayColorAndShape(model, array_id, &color, &shape); |
| 628 | string label = GetArrayLabel(model, array_id); |
| 629 | AppendF(output_file, kArrayNodeFmt, array_id, label, array_id, shape, |
| 630 | color.AsHexString(), color.TextColorString()); |
| 631 | |
| 632 | // Ops are placed in the same subgraph as their first output. |
| 633 | for (int op_index = 0; op_index < model.operators.size(); op_index++) { |
| 634 | const Operator& op = *model.operators[op_index]; |
| 635 | if (!op.outputs.empty() && (op.outputs[0] == array_id)) { |
| 636 | DumpOperator(model, output_file, op_index); |
| 637 | } |
| 638 | } |
| 639 | } |
| 640 | |
| 641 | void DumpNode(const Model& model, string* output_file, const string& node_name, |
| 642 | Node const& node) { |
no test coverage detected