Spaces:
Build error
Build error
| /* Copyright 2015 The TensorFlow Authors. All Rights Reserved. | |
| Licensed under the Apache License, Version 2.0 (the "License"); | |
| you may not use this file except in compliance with the License. | |
| You may obtain a copy of the License at | |
| http://www.apache.org/licenses/LICENSE-2.0 | |
| Unless required by applicable law or agreed to in writing, software | |
| distributed under the License is distributed on an "AS IS" BASIS, | |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| See the License for the specific language governing permissions and | |
| limitations under the License. | |
| ==============================================================================*/ | |
| namespace tensorflow { | |
| namespace { | |
| TEST(KernelDefBuilderTest, Basic) { | |
| const KernelDef* def = KernelDefBuilder("A").Device(DEVICE_CPU).Build(); | |
| KernelDef expected; | |
| protobuf::TextFormat::ParseFromString("op: 'A' device_type: 'CPU'", | |
| &expected); | |
| EXPECT_EQ(def->DebugString(), expected.DebugString()); | |
| delete def; | |
| } | |
| TEST(KernelDefBuilderTest, TypeConstraint) { | |
| const KernelDef* def = KernelDefBuilder("B") | |
| .Device(DEVICE_GPU) | |
| .TypeConstraint<float>("T") | |
| .Build(); | |
| KernelDef expected; | |
| protobuf::TextFormat::ParseFromString(R"proto( | |
| op: 'B' device_type: 'GPU' | |
| constraint { name: 'T' allowed_values { list { type: DT_FLOAT } } } )proto", | |
| &expected); | |
| EXPECT_EQ(def->DebugString(), expected.DebugString()); | |
| delete def; | |
| def = KernelDefBuilder("C") | |
| .Device(DEVICE_GPU) | |
| .TypeConstraint<int32>("U") | |
| .TypeConstraint<bool>("V") | |
| .Build(); | |
| protobuf::TextFormat::ParseFromString(R"proto( | |
| op: 'C' device_type: 'GPU' | |
| constraint { name: 'U' allowed_values { list { type: DT_INT32 } } } | |
| constraint { name: 'V' allowed_values { list { type: DT_BOOL } } } )proto", | |
| &expected); | |
| EXPECT_EQ(def->DebugString(), expected.DebugString()); | |
| delete def; | |
| def = KernelDefBuilder("D") | |
| .Device(DEVICE_CPU) | |
| .TypeConstraint("W", {DT_DOUBLE, DT_STRING}) | |
| .Build(); | |
| protobuf::TextFormat::ParseFromString(R"proto( | |
| op: 'D' device_type: 'CPU' | |
| constraint { name: 'W' | |
| allowed_values { list { type: [DT_DOUBLE, DT_STRING] } } } )proto", | |
| &expected); | |
| EXPECT_EQ(def->DebugString(), expected.DebugString()); | |
| delete def; | |
| } | |
| TEST(KernelDefBuilderTest, HostMemory) { | |
| const KernelDef* def = KernelDefBuilder("E") | |
| .Device(DEVICE_GPU) | |
| .HostMemory("in") | |
| .HostMemory("out") | |
| .Build(); | |
| KernelDef expected; | |
| protobuf::TextFormat::ParseFromString( | |
| "op: 'E' device_type: 'GPU' " | |
| "host_memory_arg: ['in', 'out']", | |
| &expected); | |
| EXPECT_EQ(def->DebugString(), expected.DebugString()); | |
| delete def; | |
| } | |
| } // namespace | |
| } // namespace tensorflow | |