Dane Sabo 3299181c70 Auto sync: 2025-09-02 22:47:53 (10335 files changed)
M  lazy-lock.json

M  lua/custom/configs/lspconfig.lua

M  lua/custom/init.lua

A  lua/custom/journal.lua

A  nvim_venv/bin/Activate.ps1

A  nvim_venv/bin/activate

A  nvim_venv/bin/activate.csh

A  nvim_venv/bin/activate.fish
2025-09-02 22:47:53 -04:00

62 lines
2.4 KiB
Python

from mpmath import *
def test_diff():
mp.dps = 15
assert diff(log, 2.0, n=0).ae(log(2))
assert diff(cos, 1.0).ae(-sin(1))
assert diff(abs, 0.0) == 0
assert diff(abs, 0.0, direction=1) == 1
assert diff(abs, 0.0, direction=-1) == -1
assert diff(exp, 1.0).ae(e)
assert diff(exp, 1.0, n=5).ae(e)
assert diff(exp, 2.0, n=5, direction=3*j).ae(e**2)
assert diff(lambda x: x**2, 3.0, method='quad').ae(6)
assert diff(lambda x: 3+x**5, 3.0, n=2, method='quad').ae(540)
assert diff(lambda x: 3+x**5, 3.0, n=2, method='step').ae(540)
assert diffun(sin)(2).ae(cos(2))
assert diffun(sin, n=2)(2).ae(-sin(2))
def test_diffs():
mp.dps = 15
assert [chop(d) for d in diffs(sin, 0, 1)] == [0, 1]
assert [chop(d) for d in diffs(sin, 0, 1, method='quad')] == [0, 1]
assert [chop(d) for d in diffs(sin, 0, 2)] == [0, 1, 0]
assert [chop(d) for d in diffs(sin, 0, 2, method='quad')] == [0, 1, 0]
def test_taylor():
mp.dps = 15
# Easy to test since the coefficients are exact in floating-point
assert taylor(sqrt, 1, 4) == [1, 0.5, -0.125, 0.0625, -0.0390625]
def test_diff_partial():
mp.dps = 15
x,y,z = xyz = 2,3,7
f = lambda x,y,z: 3*x**2 * (y+2)**3 * z**5
assert diff(f, xyz, (0,0,0)).ae(25210500)
assert diff(f, xyz, (0,0,1)).ae(18007500)
assert diff(f, xyz, (0,0,2)).ae(10290000)
assert diff(f, xyz, (0,1,0)).ae(15126300)
assert diff(f, xyz, (0,1,1)).ae(10804500)
assert diff(f, xyz, (0,1,2)).ae(6174000)
assert diff(f, xyz, (0,2,0)).ae(6050520)
assert diff(f, xyz, (0,2,1)).ae(4321800)
assert diff(f, xyz, (0,2,2)).ae(2469600)
assert diff(f, xyz, (1,0,0)).ae(25210500)
assert diff(f, xyz, (1,0,1)).ae(18007500)
assert diff(f, xyz, (1,0,2)).ae(10290000)
assert diff(f, xyz, (1,1,0)).ae(15126300)
assert diff(f, xyz, (1,1,1)).ae(10804500)
assert diff(f, xyz, (1,1,2)).ae(6174000)
assert diff(f, xyz, (1,2,0)).ae(6050520)
assert diff(f, xyz, (1,2,1)).ae(4321800)
assert diff(f, xyz, (1,2,2)).ae(2469600)
assert diff(f, xyz, (2,0,0)).ae(12605250)
assert diff(f, xyz, (2,0,1)).ae(9003750)
assert diff(f, xyz, (2,0,2)).ae(5145000)
assert diff(f, xyz, (2,1,0)).ae(7563150)
assert diff(f, xyz, (2,1,1)).ae(5402250)
assert diff(f, xyz, (2,1,2)).ae(3087000)
assert diff(f, xyz, (2,2,0)).ae(3025260)
assert diff(f, xyz, (2,2,1)).ae(2160900)
assert diff(f, xyz, (2,2,2)).ae(1234800)