| /* Copyright 2019 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. |
| ==============================================================================*/ |
| |
| #import <XCTest/XCTest.h> |
| |
| #include "tensorflow/lite/delegates/gpu/common/status.h" |
| #include "tensorflow/lite/delegates/gpu/common/tasks/elementwise_test_util.h" |
| #include "tensorflow/lite/delegates/gpu/metal/kernels/test_util.h" |
| |
| @interface ElementwiseTest : XCTestCase |
| @end |
| |
| @implementation ElementwiseTest { |
| tflite::gpu::metal::MetalExecutionEnvironment exec_env_; |
| } |
| |
| - (void)testAbsUnit { |
| auto status = AbsTest(&exec_env_); |
| XCTAssertTrue(status.ok(), @"%s", std::string(status.message()).c_str()); |
| } |
| |
| - (void)testCosUnit { |
| auto status = CosTest(&exec_env_); |
| XCTAssertTrue(status.ok(), @"%s", std::string(status.message()).c_str()); |
| } |
| |
| - (void)testCopyUnit { |
| auto status = CopyTest(&exec_env_); |
| XCTAssertTrue(status.ok(), @"%s", std::string(status.message()).c_str()); |
| } |
| |
| - (void)testEluUnit { |
| auto status = EluTest(&exec_env_); |
| XCTAssertTrue(status.ok(), @"%s", std::string(status.message()).c_str()); |
| } |
| |
| - (void)testExpUnit { |
| auto status = ExpTest(&exec_env_); |
| XCTAssertTrue(status.ok(), @"%s", std::string(status.message()).c_str()); |
| } |
| |
| - (void)testFloorUnit { |
| auto status = FloorTest(&exec_env_); |
| XCTAssertTrue(status.ok(), @"%s", std::string(status.message()).c_str()); |
| } |
| |
| - (void)testFloorDivUnit { |
| auto status = FloorDivTest(&exec_env_); |
| XCTAssertTrue(status.ok(), @"%s", std::string(status.message()).c_str()); |
| } |
| |
| - (void)testFloorModUnit { |
| auto status = FloorModTest(&exec_env_); |
| XCTAssertTrue(status.ok(), @"%s", std::string(status.message()).c_str()); |
| } |
| |
| - (void)testHardSwishUnit { |
| auto status = HardSwishTest(&exec_env_); |
| XCTAssertTrue(status.ok(), @"%s", std::string(status.message()).c_str()); |
| } |
| |
| - (void)testLogUnit { |
| auto status = LogTest(&exec_env_); |
| XCTAssertTrue(status.ok(), @"%s", std::string(status.message()).c_str()); |
| } |
| |
| - (void)testNegUnit { |
| auto status = NegTest(&exec_env_); |
| XCTAssertTrue(status.ok(), @"%s", std::string(status.message()).c_str()); |
| } |
| |
| - (void)testRsqrtUnit { |
| auto status = RsqrtTest(&exec_env_); |
| XCTAssertTrue(status.ok(), @"%s", std::string(status.message()).c_str()); |
| } |
| |
| - (void)testSigmoidUnit { |
| auto status = SigmoidTest(&exec_env_); |
| XCTAssertTrue(status.ok(), @"%s", std::string(status.message()).c_str()); |
| } |
| |
| - (void)testSinUnit { |
| auto status = SinTest(&exec_env_); |
| XCTAssertTrue(status.ok(), @"%s", std::string(status.message()).c_str()); |
| } |
| |
| - (void)testSqrtUnit { |
| auto status = SqrtTest(&exec_env_); |
| XCTAssertTrue(status.ok(), @"%s", std::string(status.message()).c_str()); |
| } |
| |
| - (void)testSquareUnit { |
| auto status = SquareTest(&exec_env_); |
| XCTAssertTrue(status.ok(), @"%s", std::string(status.message()).c_str()); |
| } |
| |
| - (void)testTanhUnit { |
| auto status = TanhTest(&exec_env_); |
| XCTAssertTrue(status.ok(), @"%s", std::string(status.message()).c_str()); |
| } |
| |
| - (void)testSubUnit { |
| auto status = SubTest(&exec_env_); |
| XCTAssertTrue(status.ok(), @"%s", std::string(status.message()).c_str()); |
| } |
| |
| - (void)testSquaredDiffUnit { |
| auto status = SquaredDiffTest(&exec_env_); |
| XCTAssertTrue(status.ok(), @"%s", std::string(status.message()).c_str()); |
| } |
| |
| - (void)testDivUnit { |
| auto status = DivTest(&exec_env_); |
| XCTAssertTrue(status.ok(), @"%s", std::string(status.message()).c_str()); |
| } |
| |
| - (void)testPowUnit { |
| auto status = PowTest(&exec_env_); |
| XCTAssertTrue(status.ok(), @"%s", std::string(status.message()).c_str()); |
| } |
| |
| - (void)testAddUnit { |
| auto status = AddTest(&exec_env_); |
| XCTAssertTrue(status.ok(), @"%s", std::string(status.message()).c_str()); |
| } |
| |
| - (void)testMaximumUnit { |
| auto status = MaximumTest(&exec_env_); |
| XCTAssertTrue(status.ok(), @"%s", std::string(status.message()).c_str()); |
| } |
| |
| - (void)testMaximumWithScalarUnit { |
| auto status = MaximumWithScalarTest(&exec_env_); |
| XCTAssertTrue(status.ok(), @"%s", std::string(status.message()).c_str()); |
| } |
| |
| - (void)testMaximumWithConstantLinearTensorUnit { |
| auto status = MaximumWithConstantLinearTensorTest(&exec_env_); |
| XCTAssertTrue(status.ok(), @"%s", std::string(status.message()).c_str()); |
| } |
| |
| - (void)testMaximumWithConstantHWCTensorUnit { |
| auto status = MaximumWithConstantHWCTensorTest(&exec_env_); |
| XCTAssertTrue(status.ok(), @"%s", std::string(status.message()).c_str()); |
| } |
| |
| - (void)testMaximumWithConstantHWCTensorBroadcastChannelsUnit { |
| auto status = MaximumWithConstantHWCTensorBroadcastChannelsTest(&exec_env_); |
| XCTAssertTrue(status.ok(), @"%s", std::string(status.message()).c_str()); |
| } |
| |
| - (void)testMinimumUnit { |
| auto status = MinimumTest(&exec_env_); |
| XCTAssertTrue(status.ok(), @"%s", std::string(status.message()).c_str()); |
| } |
| |
| - (void)testMinimumWithScalarUnit { |
| auto status = MinimumWithScalarTest(&exec_env_); |
| XCTAssertTrue(status.ok(), @"%s", std::string(status.message()).c_str()); |
| } |
| |
| - (void)testMulUnit { |
| auto status = MulTest(&exec_env_); |
| XCTAssertTrue(status.ok(), @"%s", std::string(status.message()).c_str()); |
| } |
| |
| - (void)testMulBroadcastHWUnit { |
| auto status = MulBroadcastHWTest(&exec_env_); |
| XCTAssertTrue(status.ok(), @"%s", std::string(status.message()).c_str()); |
| } |
| |
| - (void)testMulBroadcastChannelsUnit { |
| auto status = MulBroadcastChannelsTest(&exec_env_); |
| XCTAssertTrue(status.ok(), @"%s", std::string(status.message()).c_str()); |
| } |
| |
| - (void)testSubWithScalarAtFirstPositionUnit { |
| auto status = SubWithScalarAtFirstPositionTest(&exec_env_); |
| XCTAssertTrue(status.ok(), @"%s", std::string(status.message()).c_str()); |
| } |
| |
| - (void)testLessUnit { |
| auto status = LessTest(&exec_env_); |
| XCTAssertTrue(status.ok(), @"%s", std::string(status.message()).c_str()); |
| } |
| |
| - (void)testLessEqualUnit { |
| auto status = LessEqualTest(&exec_env_); |
| XCTAssertTrue(status.ok(), @"%s", std::string(status.message()).c_str()); |
| } |
| |
| - (void)testGreaterUnit { |
| auto status = GreaterTest(&exec_env_); |
| XCTAssertTrue(status.ok(), @"%s", std::string(status.message()).c_str()); |
| } |
| |
| - (void)testGreaterEqualUnit { |
| auto status = GreaterEqualTest(&exec_env_); |
| XCTAssertTrue(status.ok(), @"%s", std::string(status.message()).c_str()); |
| } |
| |
| - (void)testEqualUnit { |
| auto status = EqualTest(&exec_env_); |
| XCTAssertTrue(status.ok(), @"%s", std::string(status.message()).c_str()); |
| } |
| |
| - (void)testNotEqualUnit { |
| auto status = NotEqualTest(&exec_env_); |
| XCTAssertTrue(status.ok(), @"%s", std::string(status.message()).c_str()); |
| } |
| |
| - (void)testCosBroadcast { |
| auto status = CosBroadcastTest(&exec_env_); |
| XCTAssertTrue(status.ok(), @"%s", std::string(status.message()).c_str()); |
| } |
| |
| - (void)testMaximumScalarBroadcastInput { |
| auto status = MaximumScalarBroadcastInputTest(&exec_env_); |
| XCTAssertTrue(status.ok(), @"%s", std::string(status.message()).c_str()); |
| } |
| |
| - (void)testMulLinearBroadcastInput { |
| auto status = MulLinearBroadcastInputTest(&exec_env_); |
| XCTAssertTrue(status.ok(), @"%s", std::string(status.message()).c_str()); |
| } |
| |
| - (void)testMulBroadcastBothInputs { |
| auto status = MulBroadcastBothInputsTest(&exec_env_); |
| XCTAssertTrue(status.ok(), @"%s", std::string(status.message()).c_str()); |
| } |
| |
| @end |