asd
This commit is contained in:
@ -0,0 +1,57 @@
|
||||
from scipy.constants import find, value, ConstantWarning, c, speed_of_light
|
||||
from numpy.testing import (assert_equal, assert_, assert_almost_equal,
|
||||
suppress_warnings)
|
||||
import scipy.constants._codata as _cd
|
||||
|
||||
|
||||
def test_find():
|
||||
keys = find('weak mixing', disp=False)
|
||||
assert_equal(keys, ['weak mixing angle'])
|
||||
|
||||
keys = find('qwertyuiop', disp=False)
|
||||
assert_equal(keys, [])
|
||||
|
||||
keys = find('natural unit', disp=False)
|
||||
assert_equal(keys, sorted(['natural unit of velocity',
|
||||
'natural unit of action',
|
||||
'natural unit of action in eV s',
|
||||
'natural unit of mass',
|
||||
'natural unit of energy',
|
||||
'natural unit of energy in MeV',
|
||||
'natural unit of momentum',
|
||||
'natural unit of momentum in MeV/c',
|
||||
'natural unit of length',
|
||||
'natural unit of time']))
|
||||
|
||||
|
||||
def test_basic_table_parse():
|
||||
c_s = 'speed of light in vacuum'
|
||||
assert_equal(value(c_s), c)
|
||||
assert_equal(value(c_s), speed_of_light)
|
||||
|
||||
|
||||
def test_basic_lookup():
|
||||
assert_equal('%d %s' % (_cd.c, _cd.unit('speed of light in vacuum')),
|
||||
'299792458 m s^-1')
|
||||
|
||||
|
||||
def test_find_all():
|
||||
assert_(len(find(disp=False)) > 300)
|
||||
|
||||
|
||||
def test_find_single():
|
||||
assert_equal(find('Wien freq', disp=False)[0],
|
||||
'Wien frequency displacement law constant')
|
||||
|
||||
|
||||
def test_2002_vs_2006():
|
||||
assert_almost_equal(value('magn. flux quantum'),
|
||||
value('mag. flux quantum'))
|
||||
|
||||
|
||||
def test_exact_values():
|
||||
# Check that updating stored values with exact ones worked.
|
||||
with suppress_warnings() as sup:
|
||||
sup.filter(ConstantWarning)
|
||||
for key in _cd.exact_values:
|
||||
assert_((_cd.exact_values[key][0] - value(key)) / value(key) == 0)
|
||||
@ -0,0 +1,89 @@
|
||||
import pytest
|
||||
|
||||
import scipy.constants as sc
|
||||
from scipy.conftest import array_api_compatible
|
||||
from scipy._lib._array_api import xp_assert_equal, xp_assert_close
|
||||
|
||||
|
||||
pytestmark = [array_api_compatible, pytest.mark.usefixtures("skip_xp_backends")]
|
||||
skip_xp_backends = pytest.mark.skip_xp_backends
|
||||
|
||||
|
||||
class TestConvertTemperature:
|
||||
def test_convert_temperature(self, xp):
|
||||
xp_assert_equal(sc.convert_temperature(xp.asarray(32.), 'f', 'Celsius'),
|
||||
xp.asarray(0.0))
|
||||
xp_assert_equal(sc.convert_temperature(xp.asarray([0., 0.]),
|
||||
'celsius', 'Kelvin'),
|
||||
xp.asarray([273.15, 273.15]))
|
||||
xp_assert_equal(sc.convert_temperature(xp.asarray([0., 0.]), 'kelvin', 'c'),
|
||||
xp.asarray([-273.15, -273.15]))
|
||||
xp_assert_equal(sc.convert_temperature(xp.asarray([32., 32.]), 'f', 'k'),
|
||||
xp.asarray([273.15, 273.15]))
|
||||
xp_assert_equal(sc.convert_temperature(xp.asarray([273.15, 273.15]),
|
||||
'kelvin', 'F'),
|
||||
xp.asarray([32., 32.]))
|
||||
xp_assert_equal(sc.convert_temperature(xp.asarray([0., 0.]), 'C', 'fahrenheit'),
|
||||
xp.asarray([32., 32.]))
|
||||
xp_assert_close(sc.convert_temperature(xp.asarray([0., 0.], dtype=xp.float64),
|
||||
'c', 'r'),
|
||||
xp.asarray([491.67, 491.67], dtype=xp.float64),
|
||||
rtol=0., atol=1e-13)
|
||||
xp_assert_close(sc.convert_temperature(xp.asarray([491.67, 491.67],
|
||||
dtype=xp.float64),
|
||||
'Rankine', 'C'),
|
||||
xp.asarray([0., 0.], dtype=xp.float64), rtol=0., atol=1e-13)
|
||||
xp_assert_close(sc.convert_temperature(xp.asarray([491.67, 491.67],
|
||||
dtype=xp.float64),
|
||||
'r', 'F'),
|
||||
xp.asarray([32., 32.], dtype=xp.float64), rtol=0., atol=1e-13)
|
||||
xp_assert_close(sc.convert_temperature(xp.asarray([32., 32.], dtype=xp.float64),
|
||||
'fahrenheit', 'R'),
|
||||
xp.asarray([491.67, 491.67], dtype=xp.float64),
|
||||
rtol=0., atol=1e-13)
|
||||
xp_assert_close(sc.convert_temperature(xp.asarray([273.15, 273.15],
|
||||
dtype=xp.float64),
|
||||
'K', 'R'),
|
||||
xp.asarray([491.67, 491.67], dtype=xp.float64),
|
||||
rtol=0., atol=1e-13)
|
||||
xp_assert_close(sc.convert_temperature(xp.asarray([491.67, 0.],
|
||||
dtype=xp.float64),
|
||||
'rankine', 'kelvin'),
|
||||
xp.asarray([273.15, 0.], dtype=xp.float64), rtol=0., atol=1e-13)
|
||||
|
||||
@skip_xp_backends(np_only=True, reasons=['Python list input uses NumPy backend'])
|
||||
def test_convert_temperature_array_like(self):
|
||||
xp_assert_close(sc.convert_temperature([491.67, 0.], 'rankine', 'kelvin'),
|
||||
[273.15, 0.], rtol=0., atol=1e-13)
|
||||
|
||||
|
||||
@skip_xp_backends(np_only=True, reasons=['Python int input uses NumPy backend'])
|
||||
def test_convert_temperature_errors(self, xp):
|
||||
with pytest.raises(NotImplementedError, match="old_scale="):
|
||||
sc.convert_temperature(1, old_scale="cheddar", new_scale="kelvin")
|
||||
with pytest.raises(NotImplementedError, match="new_scale="):
|
||||
sc.convert_temperature(1, old_scale="kelvin", new_scale="brie")
|
||||
|
||||
|
||||
class TestLambdaToNu:
|
||||
def test_lambda_to_nu(self, xp):
|
||||
xp_assert_equal(sc.lambda2nu(xp.asarray([sc.speed_of_light, 1])),
|
||||
xp.asarray([1, sc.speed_of_light]))
|
||||
|
||||
|
||||
@skip_xp_backends(np_only=True, reasons=['Python list input uses NumPy backend'])
|
||||
def test_lambda_to_nu_array_like(self, xp):
|
||||
xp_assert_equal(sc.lambda2nu([sc.speed_of_light, 1]),
|
||||
[1, sc.speed_of_light])
|
||||
|
||||
|
||||
class TestNuToLambda:
|
||||
def test_nu_to_lambda(self, xp):
|
||||
xp_assert_equal(sc.nu2lambda(xp.asarray([sc.speed_of_light, 1])),
|
||||
xp.asarray([1, sc.speed_of_light]))
|
||||
|
||||
@skip_xp_backends(np_only=True, reasons=['Python list input uses NumPy backend'])
|
||||
def test_nu_to_lambda_array_like(self, xp):
|
||||
xp_assert_equal(sc.nu2lambda([sc.speed_of_light, 1]),
|
||||
[1, sc.speed_of_light])
|
||||
|
||||
Reference in New Issue
Block a user