test_deg2rad.py 2.5 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
#   Copyright (c) 2019 PaddlePaddle 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 unittest
16

17
import numpy as np
18

19
import paddle
20 21
from paddle import fluid
from paddle.fluid import core
22 23 24 25 26 27 28

paddle.enable_static()


class TestDeg2radAPI(unittest.TestCase):
    def setUp(self):
        self.x_dtype = 'float64'
29 30 31
        self.x_np = np.array(
            [180.0, -180.0, 360.0, -360.0, 90.0, -90.0]
        ).astype(np.float64)
32 33 34 35 36 37 38
        self.x_shape = [6]
        self.out_np = np.deg2rad(self.x_np)

    def test_static_graph(self):
        startup_program = fluid.Program()
        train_program = fluid.Program()
        with fluid.program_guard(startup_program, train_program):
39 40 41
            x = paddle.static.data(
                name='input', dtype=self.x_dtype, shape=self.x_shape
            )
42 43
            out = paddle.deg2rad(x)

44 45 46 47 48
            place = (
                fluid.CUDAPlace(0)
                if core.is_compiled_with_cuda()
                else fluid.CPUPlace()
            )
49
            exe = fluid.Executor(place)
50 51 52 53 54
            res = exe.run(
                fluid.default_main_program(),
                feed={'input': self.x_np},
                fetch_list=[out],
            )
55 56 57 58 59 60
            self.assertTrue((np.array(out[0]) == self.out_np).all())

    def test_dygraph(self):
        paddle.disable_static()
        x1 = paddle.to_tensor([180.0, -180.0, 360.0, -360.0, 90.0, -90.0])
        result1 = paddle.deg2rad(x1)
61
        np.testing.assert_allclose(self.out_np, result1.numpy(), rtol=1e-05)
62 63 64 65 66 67 68

        paddle.enable_static()


class TestDeg2radAPI2(TestDeg2radAPI):
    # Test input data type is int
    def setUp(self):
69
        self.x_np = [180]
70 71 72 73 74 75 76 77 78
        self.x_shape = [1]
        self.out_np = np.pi
        self.x_dtype = 'int64'

    def test_dygraph(self):
        paddle.disable_static()

        x2 = paddle.to_tensor(180)
        result2 = paddle.deg2rad(x2)
79
        np.testing.assert_allclose(np.pi, result2.numpy(), rtol=1e-05)
80 81

        paddle.enable_static()