Best Python code snippet using molecule_python
integral.py
Source:integral.py  
1# -------------------------------------------------------------------2# Library Program:3# The following program contains various functions to solve ordinary4# integrals using various methods.5# -------------------------------------------------------------------6# PRIMITIVE RULES (SINGLE VARIABLE FUNCTIONS)7def rectangular(a,b,N,f): #removed ELs8    '''9    a ; lower-bound for integration10    b ; upper-bound for integration11    N ; number of iterations/subintervals (must be integer)12    f ; function of x (can be user-defined)13    14    The (left/right) rectangular approximation method computes the15    integral of a function by assuming that the area between the16    function and the axis over which the function is being integrated17    can be defined as the area of a series of rectangles, for a18    series of subintervals bound by successive values of x with19    constant step size ;20        xn - xn-121    For this approximation method, the left/right uppermost corner of22    a rectangle has coordinates computed using the given function,23    then calculates the rectangular area ;24        f(xn) * (xn - xn-1) [for LRAM], or25        f(xn) * (xn+1 - xn) [for RRAM]26    27    These areas are iterated for all subintervals n in N, with the28    sum of the recatangular areas approximating the integral for the29    given function between its lower/upper bounds.30    '''31    dx = (b-a)/N32    Rl = 033    Rr = 034    for n in range(0,N):35        Rl += dx * f(a+n*dx)36    for n in range(1,N+1):37        Rr += dx * f(a+n*dx)38    return Rl,Rr39def midpoint(a,b,N,f): #removed ELs40    '''41    a ; lower-bound for integration42    b ; upper-bound for integration43    N ; number of iterations/subintervals (must be integer)44    f ; function of x (can be user-defined)45    The midpoint approximation method operates similarly to the46    rectangular approximation method, in that it approximates the47    area coinciding to the integral of a given function using48    rectangles over a series of subintervals.49    Where the midpoint approximation method differs is that it50    computes the midpoint of two subinterval bounds ;51        Mn = (xn - xn-1) / 252    53    Once again, like the rectangular method a rectangular area is54    computed using two consecutive subintervals as the x bounds for55    the area and the function of the midpoint as the height ;56        A = f(Mn) * (xn - xn-1)57    58    As for all methods using shapes to approximate the integral of a59    given function within bounds, the areas of the rectangles are60    summed to give a value.61    '''62    dx = (b-a)/N63    M = 064    for n in range(1,N+1):65        M += f((a+n*dx-a+(n-1)*dx)/2) * dx66    return M67def trapezoid(a,b,N,f): #removed ELs68    '''69    a ; lower-bound for integration70    b ; upper-bound for integration71    N ; number of iterations/subintervals (must be integer)72    f ; function of x (can be user-defined)73    '''74    dx = (b-a)/N75    T = dx/2 * (f(a) + f(b))76    for n in range(1,N):77        T += dx * f(a+n*dx)78    return T79def simpson(a,b,N,f): #removed ELs80    '''81    a ; lower-bound for integration82    b ; upper-bound for integration83    N ; number of iterations/subintervals (must be integer)84    f ; function of x (can be user-defined)85    '''86    dx = (b-a)/N87    S = dx/3 * (f(a) + f(b))88    if N%2 == 0:89        for n in range(1,int(N/2)):90            S += dx/3 * (4*f(a+(2*n-1)*dx) + 2*f(a+2*n*dx))91    if N%2 != 0:92        for n in range(1,int((N+1)/2)):93            S += dx/3 * (4*f(a+(2*n-1)*dx) + 2*f(a+2*n*dx))94    return S95# LARGE UNCERTAINTY AT LOW ITERATIONS (REQUIRES HIGH ITERATIONS TO PRODUCE SIMILAR INTEGRALS TO OTHER METHODS/VERY INCONSISTENT)96def boole(a,b,N,f): #removed ELs97    '''98    a ; lower-bound for integration99    b ; upper-bound for integration100    N ; number of iterations/subintervals (must be integer)101    f ; function of x (can be user-defined)102    '''103    # SECOND TERM (32) IS 2,6,10,...,-10,-6,-2104    # THIRD TERM (12) IS 4,8,12,...,-12,-8,-4105    dx = (b-a)/N106    B = 2*dx/45 * 7*(f(a) + f(b))107    108    Ns_1 = []109    Ns_2 = []110    Ns_3 = []111    112    if N%2 == 0:113        Nrange = int(N/2)114    else:115        Nrange = int((N-1)/2 + 1)116    for n in range(1,Nrange):117        if n%2 == 1:118            Ns_1.append(n)119        if n%4 == 2:120            Ns_2.append(n)121        if n%4 == 0:122            Ns_3.append(n)123    124    for n in Ns_1:125        B += 2*dx/45 * (32*f(a+n*dx) + 32*f(b-n*dx))126    for n in Ns_2:127        B += 2*dx/45 * (12*f(a+n*dx) + 12*f(b-n*dx))128    for n in Ns_3:129        B += 2*dx/45 * (14*f(a+n*dx) + 14*f(b-n*dx))130    return B131def romberg(a,b,f): #removed ELs132    '''133    a ; lower-bound for integration134    b ; upper-bound for integration135    f ; function of x (can be user-defined)136    '''137    test_converge = 1E-9138    dx = (b-a)/2139    CRT = dx/2 * (f(a) + f(b))140    for n in range(1,3):141        CRT += dx * f(a+n*dx)142    R_matrix = [CRT]143    144    i = 2145    while i >= 2:146        dx = (b-a)/(2**(i-1))147        R_j = 0148        for n in range(0,int(2**(i-1)+1)):149            R_j += dx * f(a+n*dx)150        151        Rs = [R_j]152        for j in range(2,i+1):153            R = lambda j: (4**(j-1)*R_j - R_matrix[(j-2)]) / (4**(j-1) - 1)154            Rs.append(R(j))155            R_j = R(j)156            if abs(R(j) - R_j) <= test_converge:157                return Rs[-1]158        R_matrix = Rs159        160        i += 1161# MULTI-VARIABLE FUNCTIONS162def double_rectangular(a,b,c,d,N,M,f): #removed ELs163    '''164    a ; lower-bound for integration over x165    b ; upper-bound for integration over x166    c ; lower-bound for integration over y167    d ; upper-bound for integration over y168    N ; number of x iterations/subintervals (must be integer)169    M ; number of y iterations/subintervals (must be integer)170    f ; function of x and y (can be user-defined)171    '''172    dx = (b-a)/N173    dy = (d-c)/M174    dA = dx*dy175    DR = 0176    for n in range(1,N+1):177        for m in range(1,M+1):178            DR += dA * f(a+n*dx,c+m*dy)...test_jacobian.py
Source:test_jacobian.py  
...13                input_vector = (0, 0, 0)))14        npt.assert_almost_equal(matrix, f_solver._jacobian_matrix(15                input_vector = (1, 2, 3)))16class JacobianInverseSolverTestCase(unittest.TestCase):17    def test_converge(self):18        matrix = ((1, 0, 3), (0, 2, 2), (1, 2, 1))19        f = lambda x: np.dot(matrix, x)20        f_solver = JacobianInverseSolver(function = f)21        # For a linear map the unconstrained solver reaches the target22        # output vector after a single iteration.23        npt.assert_almost_equal((1, 1, 0), f_solver.converge(24                input_vector = (0, 0, 0),25                target_output_vector = (1, 2, 3)))26    def test_converge_max_input_fix(self):27        matrix = ((1, 0, 3), (0, 2, 2), (1, 2, 1))28        f = lambda x: np.dot(matrix, x)29        f_solver = JacobianInverseSolver(30                function = f,31                max_input_fix = 0.5)32        # The input vector has to go from (0, 0, 0) to (1, 1, 0). The solver33        # input fix is limited to 0.5 per component. The solver gets halfway34        # there after a single iteration.35        input_vector = (0, 0, 0)36        input_vector = input_vector = f_solver.converge(37               input_vector = input_vector,38               target_output_vector = (1, 2, 3))39        npt.assert_almost_equal((0.5, 0.5, 0), input_vector)40        # And reaches the goal after a second iteration.41        input_vector = f_solver.converge(42                input_vector = input_vector,43                target_output_vector = (1, 2, 3))44        npt.assert_almost_equal((1, 1, 0), input_vector)45    def test_converge_max_output_error(self):46        matrix = ((1, 0, 3), (0, 2, 2), (1, 2, 1))47        f = lambda x: np.dot(matrix, x)48        f_solver = JacobianInverseSolver(49                function = f,50                max_output_error = np.sqrt(14) / 2)51        # The output vector has to go from (0, 0, 0) to (1, 2, 3). The52        # initial output vector error norm is hence sqrt(14). The solver53        # output error norm is limited to sqrt(14)/2. The solver gets54        # halfway there after a single iteration.55        input_vector = (0, 0, 0)56        input_vector = f_solver.converge(57                input_vector = input_vector,58                target_output_vector = (1, 2, 3))59        npt.assert_almost_equal((0.5, 0.5, 0), input_vector)60        # And reaches the goal after a second iteration.61        input_vector = f_solver.converge(62                input_vector = input_vector,63                target_output_vector = (1, 2, 3))64        npt.assert_almost_equal((1, 1, 0), input_vector)65class DampedLeastSquaresSolverTest(unittest.TestCase):66    def test_converge(self):67        matrix = ((1, 0, 3), (0, 2, 2), (1, 2, 1))68        f = lambda x: np.dot(matrix, x)69        # For a linear map the solver reaches the target output vector70        # after enough iterations.71        f_solver = DampedLeastSquaresSolver(function = f, constant = 1)72        input_vector = (0, 0, 0)73        for n in xrange(50):74            input_vector = f_solver.converge(75                    input_vector = input_vector,76                    target_output_vector = (1, 2, 3))...test1.py
Source:test1.py  
...4from .newsvendor import *5class MyTestCase(unittest.TestCase):6    def setUp(self):7        pass8    def test_converge(self):9        self.news = newsvendormodel()10        status = solve_default(self.news,11                               iteration_limit=20,12                               cut_selection_frequency=10,13                               simulation=MonteCarloSimulation(14                                   frequency=10,15                                   steps=list(range(10, 501, 10))16                               ),17                               bound_stalling=BoundStalling(18                                   iterations=5,19                                   atol=1e-320                               )21                               )22        self.assertEqual(status, Staus.stalling_convergence)...Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
