# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: BSD-2-Clause

import math
from numba import cuda
from numba.cuda.testing import unittest, CUDATestCase


class TestCudaMonteCarlo(CUDATestCase):
    def test_montecarlo(self):
        """Just make sure we can compile this"""

        @cuda.jit(
            "void(double[:], double[:], double, double, double, double[:])"
        )
        def step(last, paths, dt, c0, c1, normdist):
            i = cuda.grid(1)
            if i >= paths.shape[0]:
                return
            noise = normdist[i]
            paths[i] = last[i] * math.exp(c0 * dt + c1 * noise)


if __name__ == "__main__":
    unittest.main()
