Esempio n. 1
0
    def test_default_parameters(self):
        self.args = self.default_args
        py, gl = self.render_py_torch(), self.render_gl()

        assert_abs_mean_diff(
            py, gl,
            "The average absolute pixel difference of {} is too large!")
Esempio n. 2
0
    def test_brick_random(self):
        self.W = 50
        self.H = 100
        self.args = self.shader.get_parameters_list(False)
        self.args = funcs.randomize_inputs_torch(self.args, self.shader)
        self.shader.set_inputs(self.args)

        gls = []
        pys = []
        params = []

        def callback(gl):
            params.append(self.args)
            py = self.render_py_torch()
            pys.append(py)
            gls.append(gl)

            self.args = funcs.randomize_inputs_torch(self.args, self.shader)
            self.shader.set_inputs(self.args)

        render_opengl_callback_loop(self.W, self.H, self.program, callback, 5)

        assert_abs_mean_diff(
            pys,
            gls,
            "Average pixel difference of {} is too large when randomizing input!",
            test_name="test_brick_random")
Esempio n. 3
0
    def test_random_parameters(self):
        self.W = 100
        self.H = 100
        self.args = self.shader.get_parameters_list(False)
        gls = []
        pys = []
        params = []

        self.args = funcs.randomize_inputs_torch(self.args, self.shader)
        self.shader.set_inputs(self.args)

        def cb(gl):
            params.append(self.args)
            py = np.flip(render_iter(self.W, self.H, self.shader.shade,
                                     *self.args),
                         axis=0)
            pys.append(py)
            gls.append(gl)

            self.args = funcs.randomize_inputs_torch(self.args, self.shader)
            self.shader.set_inputs(self.args)

        funcs.render_opengl_callback_loop(self.W,
                                          self.H,
                                          self.program,
                                          cb,
                                          iter=5,
                                          freq=4)

        for py, gl in zip(pys, gls):
            assert_abs_mean_diff(
                py, gl,
                "The average absolute pixel difference of {} is too large when randomizing parameters!"
            )
            funcs.assert_abs_max_diff(py, gl, tol=0.01)
Esempio n. 4
0
    def test_default_parameters(self):
        py, gl = self.render_py_torch(), self.render_gl()

        assert_abs_mean_diff(
            py,
            gl,
            "The average absolute pixel difference of {} is too large!",
            tol=self.PIXEL_TOLERANCE)
        assert_abs_max_diff(py, gl, tol=self.PIXEL_TOLERANCE)
Esempio n. 5
0
    def test_smoothstep_for_high_res(self):
        self.W = 200
        self.H = 200
        py, op = self.render_both()

        assert_abs_mean_diff(py,
                             op,
                             tol=self.PIXEL_TOLERANCE,
                             test_name="test_smoothstep_for_high_res")
        assert_abs_max_diff(py, op, tol=self.PIXEL_TOLERANCE)
Esempio n. 6
0
    def test_smoothstep_for_very_low_res(self):
        self.W = 5
        self.H = 5
        py, op = self.render_both()

        assert_abs_mean_diff(py,
                             op,
                             tol=self.PIXEL_TOLERANCE,
                             test_name="test_smoothstep_for_low_res")
        assert_abs_max_diff(py, op, tol=self.PIXEL_TOLERANCE)
Esempio n. 7
0
    def test_brick_elongate_zero(self):
        key = "brick_elongate"
        self.set_arg(key, torch.tensor(0.0))
        self.set_arg("brick_scale", torch.tensor(10.))

        py, gl = self.render_both()
        assert_abs_mean_diff(
            py, gl,
            "Average pixel difference of {} is too large for zero 'brick_elongate'!"
        )
Esempio n. 8
0
    def test_color_clipping(self):
        self.set_arg('red', -1.)
        self.set_arg('green', 3.)
        self.set_arg('blue', 0.5)

        py, op = self.render_both()
        assert_abs_mean_diff(
            py,
            op,
            "Average pixel difference of {} is too large when clipping colors!",
            tol=self.PIXEL_TOLERANCE)
Esempio n. 9
0
    def test_color_clipping(self):
        val = torch.tensor((2.0, -1, 0.0))
        self.program['color_brick'] = val
        self.args = self.default_args
        self.args[4] = val

        py, op = self.render_both()
        assert_abs_mean_diff(
            py, op,
            "Average pixel difference of {} is too large when clipping colors!"
        )
Esempio n. 10
0
    def test_alignment_for_high_res(self):
        self.W = 200
        self.H = 200
        py, gl = self.render_both()

        # save_images(["python_alignment_HiRes", "opengl_alignment_HiRes"], [py, op])
        assert_abs_mean_diff(py,
                             gl,
                             tol=self.PIXEL_TOLERANCE,
                             test_name="test_alignment_for_high_res")
        assert_abs_max_diff(py, gl, self.PIXEL_TOLERANCE)
Esempio n. 11
0
    def test_frag_interpolation_for_very_low_res(self):
        self.W = 4
        self.H = 4
        py, op = self.render_both()

        # save_images(["python_frag_interpolation_LowRes", "opengl_frag_interpolation_LowRes"], [py, op])
        assert_abs_mean_diff(py,
                             op,
                             tol=self.PIXEL_TOLERANCE,
                             test_name="test_frag_interpolation_for_low_res")
        assert_abs_max_diff(py, op, self.PIXEL_TOLERANCE)
Esempio n. 12
0
    def test_brick_elongate_small(self):
        key = "brick_elongate"
        key_i = 2
        val = 1.0
        self.program[key] = val
        self.args = self.default_args
        self.args[key_i] = val

        py, op = self.render_both()
        assert_abs_mean_diff(
            py, op,
            "Average pixel difference of {} is too large when 'brick_elongate' is low."
        )
Esempio n. 13
0
    def test_all_params_min(self):
        for i, info in enumerate(self.shader.get_inputs()):
            min_ = info[3][0]
            arg = info[1]
            in_type = info[2]
            if "array" in in_type:
                shape = info[4].shape
                self.set_arg(arg, torch.ones(shape) * min_)
            else:
                self.set_arg(arg, torch.ones(1) * min_)

        py, gl = self.render_both()
        assert_abs_max_diff(py, gl, tol=self.PIXEL_TOLERANCE)
        assert_abs_mean_diff(py, gl, tol=self.PIXEL_TOLERANCE)
Esempio n. 14
0
    def test_size_random(self):
        pys = []
        gls = []

        self.set_arg('size', torch.rand((2, )))

        def cb(gl):
            py = self.render_py_torch()
            pys.append(py)
            gls.append(gl)
            self.set_arg('size', torch.rand((2, )))

        funcs.render_opengl_callback_loop(self.W, self.H, self.program, cb, 5)

        funcs.assert_abs_mean_diff(pys, gls, tol=self.PIXEL_TOLERANCE)
        funcs.assert_abs_max_diff(pys, gls, tol=self.PIXEL_TOLERANCE)
Esempio n. 15
0
 def test_size_max(self):
     self.set_arg('size', torch.tensor((1., 1.)))
     py, gl = self.render_both()
     funcs.assert_abs_mean_diff(py, gl, tol=self.PIXEL_TOLERANCE)
     funcs.assert_abs_max_diff(py, gl, tol=self.PIXEL_TOLERANCE)
Esempio n. 16
0
 def test_default(self):
     py, gl = self.render_both()
     funcs.assert_abs_mean_diff(py, gl, tol=self.PIXEL_TOLERANCE)
     funcs.assert_abs_max_diff(py, gl, tol=self.PIXEL_TOLERANCE)
Esempio n. 17
0
 def test_default_parameters(self):
     python_render, opengl_render = self.render_both()
     assert_abs_mean_diff(
         python_render, opengl_render,
         "The average absolute pixel difference of {} is too large!")