Exemple #1
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)
Exemple #2
0
    def test_rgb_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",
            tol=self.PIXEL_TOLERANCE)
        assert_abs_max_diff(pys, gls, tol=self.PIXEL_TOLERANCE)
Exemple #3
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)
Exemple #4
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)
Exemple #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)
Exemple #6
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)
    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)
Exemple #8
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)
    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)
 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)
 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)