Spaces:
Sleeping
Sleeping
| // Copyright (c) ONNX Project Contributors | |
| /* | |
| * SPDX-License-Identifier: Apache-2.0 | |
| */ | |
| namespace ONNX_NAMESPACE { | |
| namespace Test { | |
| static bool IsValidIdentifier(const std::string& name) { | |
| if (name.empty()) { | |
| return false; | |
| } | |
| if (!isalpha(name[0]) && name[0] != '_') { | |
| return false; | |
| } | |
| for (size_t i = 1; i < name.size(); ++i) { | |
| if (!isalnum(name[i]) && name[i] != '_') { | |
| return false; | |
| } | |
| } | |
| return true; | |
| } | |
| TEST(IR, ValidIdentifierTest) { | |
| Graph* g = new Graph(); | |
| g->setName("test"); | |
| Value* x = g->addInput(); | |
| x->setUniqueName("x"); | |
| x->setElemType(ONNX_NAMESPACE::TensorProto_DataType_FLOAT); | |
| x->setSizes({Dimension("M"), Dimension("N")}); | |
| Node* node1 = g->create(kNeg, 1); | |
| node1->addInput(x); | |
| g->appendNode(node1); | |
| Value* temp1 = node1->outputs()[0]; | |
| Node* node2 = g->create(kNeg, 1); | |
| node2->addInput(temp1); | |
| g->appendNode(node2); | |
| Value* y = node2->outputs()[0]; | |
| g->registerOutput(y); | |
| ModelProto model; | |
| ExportModelProto(&model, std::shared_ptr<Graph>(g)); | |
| for (auto& node : model.graph().node()) { | |
| for (auto& name : node.output()) { | |
| EXPECT_TRUE(IsValidIdentifier(name)); | |
| } | |
| } | |
| } | |
| } // namespace Test | |
| } // namespace ONNX_NAMESPACE | |