def test_string_formatting(self): p = Pressure(dbar=100) s = "{:.1f %u}".format(p) self.assertEqual(s, "100.0 dbar") s = repr(p) self.assertEqual(s, "Pressure(dbar=100.0)") p.unit = "m_seawater" self.assertRaises(ApproximatedDepthError, "{:.1f %u}".format, p) p = Pressure(dbar=4) p.unit = "m_seawater" self.assertRaises(ApproximatedDepthError, "{:.3f %u}".format, p) self.assertEqual("4.0 m", "{:.1f %u}".format(p)) self.assertEqual("4.0 m", "{}".format(p))
def test_kpa_to_dbar(self): kpa = Pressure(kPa=100000) expected_dbar = 10000 self.assertEqual(kpa.dbar, expected_dbar)
def test_meters_of_seawater(self): dbars = [5e2, 1e3, 2e3, 3e3, 4e3, 5e3, 6e3, 7e3, 8e3, 9e3, 10e3] lats = [0, 30, 45, 60, 90] expected = [ 496.65, 496.00, 495.34, 494.69, 494.03, 992.12, 990.81, 989.50, 988.19, 986.88, 1979.55, 1976.94, 1974.33, 1971.72, 1969.11, 2962.43, 2958.52, 2954.61, 2950.71, 2946.81, 3940.88, 3935.68, 3930.49, 3925.30, 3920.10, 4915.04, 4908.56, 4902.08, 4895.60, 4889.13, 5885.03, 5877.27, 5869.51, 5861.76, 5854.01, 6850.95, 6841.92, 6832.89, 6823.86, 6814.84, 7812.93, 7802.63, 7792.33, 7782.04, 7771.76, 8771.07, 8759.51, 8747.95, 8736.40, 8724.85, 9725.47, 9712.65, 9699.84, 9687.03, 9674.23, ] for inputs, output in zip(iproduct(dbars, lats), expected): kw = dict(dbar=inputs[0], latitude=inputs[1]) p = Pressure(**kw) kw['expected_output'] = output with self.subTest(**kw): self.assertAlmostEqual(p.m_seawater, output, 2) self.assertRaises(NotImplementedError, meters_of_seawater_to_dbar, 1, 0) self.assertRaises(AttributeError, Pressure, **dict(m_seawater=100))
def test_conversion_to_non_si(self): dbar = Pressure(dbar=10000) expected_psi = 14503.7737796859 self.assertAlmostEqual(dbar.psi, expected_psi, 3)
def test_conversion_to_mbar(self): hpa = Pressure(hPa=1000.5) expected_mbar = 1000.5 self.assertAlmostEqual(hpa.mbar, expected_mbar)
def test_bar_to_pa(self): bar = Pressure(bar=1000) expected_pa = 100000000 self.assertAlmostEqual(bar.Pa, expected_pa)
def test_dbar_to_kpa(self): dbar = Pressure(dbar=10000) expected_kpa = 100000 self.assertEqual(dbar.kPa, expected_kpa)
def test_sanity(self): bar = Pressure(bar=2) atm = Pressure(atm=Decimal('1.973846533432')) self.assertAlmostEqual(bar.Pa, atm.Pa)
def test_ensure_that_we_always_output_decimal(self): bar = Pressure(bar=2) atm = bar.atm self.assertTrue(isinstance(atm, Decimal))
def test_conversion_to_non_si(self): bar = Pressure(bar=2) expected_torr = Decimal('1500.1275108384') self.assertAlmostEqual(bar.torr, expected_torr)