Exemplo n.º 1
0
 def test_SinCoords(self):
     coords = podpac.Coordinates([
         podpac.crange(-90, 90, 1.0),
         podpac.crange("2018-01-01", "2018-01-30", "1,D")
     ],
                                 dims=["lat", "time"])
     node = SinCoords()
     output = node.eval(coords)
     assert output.shape == coords.shape
Exemplo n.º 2
0
    def test_evaluate(self):
        with podpac.settings:
            podpac.settings.set_unsafe_eval(True)

            coords = podpac.Coordinates(
                [podpac.crange(-90, 90, 1.0),
                 podpac.crange(-180, 180, 1.0)],
                dims=["lat", "lon"])
            sine_node = SinCoords()
            node = Arithmetic(A=sine_node,
                              B=sine_node,
                              eqn="2*abs(A) - B + {offset}",
                              params={"offset": 1})
            output = node.eval(coords)

            a = sine_node.eval(coords)
            b = sine_node.eval(coords)
            np.testing.assert_allclose(output, 2 * abs(a) - b + 1)
Exemplo n.º 3
0
    def test_init(self):
        a = SinCoords()
        b = Arange()

        with podpac.settings:
            podpac.settings.set_unsafe_eval(True)
            node = Generic(code="import numpy as np\noutput = np.minimum(a,b)",
                           a=a,
                           b=b)

            podpac.settings.set_unsafe_eval(False)
            with pytest.warns(UserWarning, match="Insecure evaluation"):
                node = Generic(
                    code="import numpy as np\noutput = np.minimum(a,b)",
                    a=a,
                    b=b)
Exemplo n.º 4
0
    def test_init(self):
        sine_node = SinCoords()

        with podpac.settings:
            podpac.settings.set_unsafe_eval(True)
            node = Arithmetic(A=sine_node,
                              B=sine_node,
                              eqn="2*abs(A) - B + {offset}",
                              params={"offset": 1})

            podpac.settings.set_unsafe_eval(False)
            with pytest.warns(UserWarning, match="Insecure evaluation"):
                node = Arithmetic(A=sine_node,
                                  B=sine_node,
                                  eqn="2*abs(A) - B + {offset}",
                                  params={"offset": 1})
Exemplo n.º 5
0
    def test_evaluate_not_allowed(self):
        with podpac.settings:
            podpac.settings.set_unsafe_eval(False)

            coords = podpac.Coordinates(
                [podpac.crange(-90, 90, 1.0),
                 podpac.crange(-180, 180, 1.0)],
                dims=["lat", "lon"])
            sine_node = SinCoords()

            with pytest.warns(UserWarning, match="Insecure evaluation"):
                node = Arithmetic(A=sine_node,
                                  B=sine_node,
                                  eqn="2*abs(A) - B + {offset}",
                                  params={"offset": 1})

            with pytest.raises(PermissionError):
                node.eval(coords)
Exemplo n.º 6
0
    def test_evaluate(self):
        with podpac.settings:
            podpac.settings.set_unsafe_eval(True)

            coords = podpac.Coordinates(
                [podpac.crange(-90, 90, 1.0),
                 podpac.crange(-180, 180, 1.0)],
                dims=["lat", "lon"])
            a = SinCoords()
            b = Arange()
            node = Generic(code="import numpy as np\noutput = np.minimum(a,b)",
                           a=a,
                           b=b)
            output = node.eval(coords)

            a = node.eval(coords)
            b = node.eval(coords)
            np.testing.assert_allclose(output, np.minimum(a, b))
Exemplo n.º 7
0
    def test_evaluate_not_allowed(self):
        with podpac.settings:
            podpac.settings.set_unsafe_eval(False)

            coords = podpac.Coordinates(
                [podpac.crange(-90, 90, 1.0),
                 podpac.crange(-180, 180, 1.0)],
                dims=["lat", "lon"])
            a = SinCoords()
            b = Arange()

            with pytest.warns(UserWarning, match="Insecure evaluation"):
                node = Generic(
                    code="import numpy as np\noutput = np.minimum(a,b)",
                    a=a,
                    b=b)

            with pytest.raises(PermissionError):
                node.eval(coords)
Exemplo n.º 8
0
 def test_missing_equation(self):
     sine_node = SinCoords()
     with pytest.raises(ValueError), warnings.catch_warnings():
         warnings.filterwarnings("ignore", "Insecure evaluation.*")
         Arithmetic(A=sine_node, B=sine_node)
Exemplo n.º 9
0
 def test_reserved_name(self):
     with pytest.raises(RuntimeError, match="Trait .* is reserved"):
         GenericInputs(style=SinCoords())
Exemplo n.º 10
0
 def test_base_definition(self):
     node = GenericInputs(a=Arange(), b=SinCoords())
     d = node._base_definition
     assert "inputs" in d
     assert "a" in d["inputs"]
     assert "b" in d["inputs"]
Exemplo n.º 11
0
 def test_init(self):
     node = GenericInputs(a=Arange(), b=SinCoords())
     assert node.inputs["a"] == Arange()
     assert node.inputs["b"] == SinCoords()