Пример #1
0
def test_convert_to():
    A = Quantity("A")
    A.set_global_relative_scale_factor(S.One, ampere)

    Js = Quantity("Js")
    Js.set_global_relative_scale_factor(S.One, joule * second)

    mksa = UnitSystem((m, kg, s, A), (Js, ))
    assert convert_to(Js, mksa._base_units) == m**2 * kg * s**-1 / 1000
Пример #2
0
def test_convert_to_tuples_of_quantities():
    assert convert_to(speed_of_light,
                      [meter, second]) == 299792458 * meter / second
    assert convert_to(speed_of_light,
                      (meter, second)) == 299792458 * meter / second
    assert convert_to(speed_of_light,
                      Tuple(meter, second)) == 299792458 * meter / second
    assert convert_to(
        joule, [meter, kilogram, second]) == kilogram * meter**2 / second**2
    assert convert_to(joule, [centimeter, gram, second
                              ]) == 10000000 * centimeter**2 * gram / second**2
    assert convert_to(299792458 * meter / second,
                      [speed_of_light]) == speed_of_light
    assert convert_to(
        speed_of_light / 2,
        [meter, second, kilogram]) == meter / second * 299792458 / 2
    # This doesn't make physically sense, but let's keep it as a conversion test:
    assert convert_to(
        2 * speed_of_light,
        [meter, second, kilogram]) == 2 * 299792458 * meter / second
    assert convert_to(G, [G, speed_of_light, planck]) == 1.0 * G

    assert NS(
        convert_to(meter, [G, speed_of_light, hbar]), n=7
    ) == '6.187142e+34*gravitational_constant**0.5000000*hbar**0.5000000/speed_of_light**1.500000'
    assert NS(convert_to(planck_mass, kilogram), n=7) == '2.176434e-8*kilogram'
    assert NS(convert_to(planck_length, meter), n=7) == '1.616255e-35*meter'
    assert NS(convert_to(planck_time, second), n=6) == '5.39125e-44*second'
    assert NS(convert_to(planck_temperature, kelvin),
              n=7) == '1.416784e+32*kelvin'
    assert NS(convert_to(convert_to(meter, [G, speed_of_light, planck]),
                         meter),
              n=10) == '1.000000000*meter'
Пример #3
0
def test_convert_to_quantities():
    assert convert_to(3, meter) == 3

    assert convert_to(mile, kilometer) == 25146 * kilometer / 15625
    assert convert_to(meter / second,
                      speed_of_light) == speed_of_light / 299792458
    assert convert_to(299792458 * meter / second,
                      speed_of_light) == speed_of_light
    assert convert_to(2 * 299792458 * meter / second,
                      speed_of_light) == 2 * speed_of_light
    assert convert_to(speed_of_light,
                      meter / second) == 299792458 * meter / second
    assert convert_to(2 * speed_of_light,
                      meter / second) == 599584916 * meter / second
    assert convert_to(day, second) == 86400 * second
    assert convert_to(2 * hour, minute) == 120 * minute
    assert convert_to(mile, meter) == 201168 * meter / 125
    assert convert_to(mile / hour,
                      kilometer / hour) == 25146 * kilometer / (15625 * hour)
    assert convert_to(3 * newton, meter / second) == 3 * newton
    assert convert_to(3 * newton, kilogram * meter /
                      second**2) == 3 * meter * kilogram / second**2
    assert convert_to(kilometer + mile, meter) == 326168 * meter / 125
    assert convert_to(2 * kilometer + 3 * mile, meter) == 853504 * meter / 125
    assert convert_to(inch**2, meter**2) == 16129 * meter**2 / 25000000
    assert convert_to(3 * inch**2, meter) == 48387 * meter**2 / 25000000
    assert convert_to(2 * kilometer / hour + 3 * mile / hour,
                      meter / second) == 53344 * meter / (28125 * second)
    assert convert_to(2 * kilometer / hour + 3 * mile / hour, centimeter /
                      second) == 213376 * centimeter / (1125 * second)
    assert convert_to(kilometer * (mile + kilometer),
                      meter) == 2609344 * meter**2

    assert convert_to(steradian, coulomb) == steradian
    assert convert_to(radians, degree) == 180 * degree / pi
    assert convert_to(radians, [meter, degree]) == 180 * degree / pi
    assert convert_to(pi * radians, degree) == 180 * degree
    assert convert_to(pi, degree) == 180 * degree
Пример #4
0
def test_convert_to_tuples_of_quantities():
    assert convert_to(speed_of_light, [meter, second]) == 299792458 * meter / second
    assert convert_to(speed_of_light, (meter, second)) == 299792458 * meter / second
    assert convert_to(speed_of_light, Tuple(meter, second)) == 299792458 * meter / second
    assert convert_to(joule, [meter, kilogram, second]) == kilogram*meter**2/second**2
    assert convert_to(joule, [centimeter, gram, second]) == 10000000*centimeter**2*gram/second**2
    assert convert_to(299792458*meter/second, [speed_of_light]) == speed_of_light
    assert convert_to(speed_of_light / 2, [meter, second, kilogram]) == meter/second*299792458 / 2
    # This doesn't make physically sense, but let's keep it as a conversion test:
    assert convert_to(2 * speed_of_light, [meter, second, kilogram]) == 2 * 299792458 * meter / second
    assert convert_to(G, [G, speed_of_light, planck]) == 1.0*G

    assert NS(convert_to(meter, [G, speed_of_light, hbar]), n=7) == '6.187242e+34*gravitational_constant**0.5000000*hbar**0.5000000*speed_of_light**(-1.500000)'
    assert NS(convert_to(planck_mass, kilogram), n=7) == '2.176471e-8*kilogram'
    assert NS(convert_to(planck_length, meter), n=7) == '1.616229e-35*meter'
    assert NS(convert_to(planck_time, second), n=6) == '5.39116e-44*second'
    assert NS(convert_to(planck_temperature, kelvin), n=7) == '1.416809e+32*kelvin'
    assert NS(convert_to(convert_to(meter, [G, speed_of_light, planck]), meter), n=10) == '1.000000000*meter'
Пример #5
0
def test_convert_to_quantities():
    assert convert_to(3, meter) == 3

    assert convert_to(mile, kilometer) == 1.609344*kilometer
    assert convert_to(meter/second, speed_of_light) == speed_of_light/299792458
    assert convert_to(299792458*meter/second, speed_of_light) == speed_of_light
    assert convert_to(2*299792458*meter/second, speed_of_light) == 2*speed_of_light
    assert convert_to(speed_of_light, meter/second) == 299792458*meter/second
    assert convert_to(2*speed_of_light, meter/second) == 599584916*meter/second
    assert convert_to(day, second) == 86400*second
    assert convert_to(2*hour, minute) == 120*minute
    assert convert_to(mile, meter) == 1609.344*meter
    assert convert_to(mile/hour, kilometer/hour) == 25146*kilometer/(15625*hour)
    assert convert_to(3*newton, meter/second) == 3*newton
    assert convert_to(3*newton, kilogram*meter/second**2) == 3*meter*kilogram/second**2
    assert convert_to(kilometer + mile, meter) == 2609.344*meter
    assert convert_to(2*kilometer + 3*mile, meter) == 6828.032*meter
    assert convert_to(inch**2, meter**2) == 16129*meter**2/25000000
    assert convert_to(3*inch**2, meter) == 48387*meter**2/25000000
    assert convert_to(2*kilometer/hour + 3*mile/hour, meter/second) == 53344*meter/(28125*second)
    assert convert_to(2*kilometer/hour + 3*mile/hour, centimeter/second) == 213376*centimeter/(1125*second)
    assert convert_to(kilometer * (mile + kilometer), meter) == 2609344 * meter ** 2

    assert convert_to(steradian, coulomb) == steradian
    assert convert_to(radians, degree) == 180*degree/pi
    assert convert_to(radians, [meter, degree]) == 180*degree/pi
    assert convert_to(pi*radians, degree) == 180*degree
    assert convert_to(pi, degree) == 180*degree
Пример #6
0
def test_convert_to_quantities():
    assert convert_to(mile, kilometer) == 1.609344 * kilometer
    assert convert_to(meter / second,
                      speed_of_light) == speed_of_light / 299792458
    assert convert_to(299792458 * meter / second,
                      speed_of_light) == speed_of_light
    assert convert_to(2 * 299792458 * meter / second,
                      speed_of_light) == 2 * speed_of_light
    assert convert_to(speed_of_light,
                      meter / second) == 299792458 * meter / second
    assert convert_to(2 * speed_of_light,
                      meter / second) == 599584916 * meter / second
    assert convert_to(day, second) == 86400 * second
    assert convert_to(2 * hour, minute) == 120 * minute
    assert convert_to(mile, meter) == 1609.344 * meter
    assert convert_to(mile / hour,
                      kilometer / hour) == 25146 * kilometer / (15625 * hour)
    assert convert_to(3 * newton, meter / second) == 3 * newton
    assert convert_to(3 * newton, kilogram * meter /
                      second**2) == 3 * meter * kilogram / second**2
    assert convert_to(kilometer + mile, meter) == 2609.344 * meter
    assert convert_to(2 * kilometer + 3 * mile, meter) == 6828.032 * meter
    assert convert_to(inch**2, meter**2) == 16129 * meter**2 / 25000000
    assert convert_to(3 * inch**2, meter) == 48387 * meter**2 / 25000000
    assert convert_to(2 * kilometer / hour + 3 * mile / hour,
                      meter / second) == 53344 * meter / (28125 * second)
    assert convert_to(2 * kilometer / hour + 3 * mile / hour, centimeter /
                      second) == 213376 * centimeter / (1125 * second)
    assert convert_to(steradian, coulomb) == steradian