Skip to content

Commit

Permalink
Measurement from Float with Units
Browse files Browse the repository at this point in the history
  • Loading branch information
Saptak625 committed Feb 6, 2023
1 parent df3f0d9 commit 6c7d0a8
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 8 deletions.
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "hatchling.build"

[project]
name = "pymeasurement"
version = "1.0.1"
version = "1.0.2"
authors = [
{ name="Saptak Das", email="saptak.das625@gmail.com" },
]
Expand Down
6 changes: 2 additions & 4 deletions src/pymeasurement/measurement.py
Original file line number Diff line number Diff line change
Expand Up @@ -161,11 +161,11 @@ def fromStr(string):
sample = sample.replace('a', '')
return Measurement(sample.strip(), precision=precision, uncertainty=(uncertainty.strip() if isinstance(uncertainty, str) else uncertainty), digital=digital, analog=analog, units=units)

def fromFloat(f): #Assume float is a constant with infinite precision and no uncertainty.
def fromFloat(f, units=''): #Assume float is a constant with infinite precision and no uncertainty.
"""
Creates a Measurement constant from a float.
"""
return Measurement.fromStr(f'{f}c')
return Measurement.fromStr(f'{f}c {units}')

def toAbsolute(self):
"""
Expand Down Expand Up @@ -287,8 +287,6 @@ def __add__(self, other):
"""
Returns the sum of the two Measurement objects.
"""
if isinstance(other, float) or isinstance(other, int):
other = Measurement.fromStr(f'{other}c {self.units}')
if self.nUnits != other.nUnits or self.dUnits != other.dUnits:
raise Exception(f'Measurement Error: Cannot add {self} and {other} with different units.')
uSum = SigFig('0', constant=True)
Expand Down
6 changes: 3 additions & 3 deletions tests/test_pymeasurement.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,15 +72,15 @@ def test_divide_measurements(self):

def test_add_measurement_to_scalar(self):
m1 = Measurement("2.0", uncertainty="0.13", units="m")
m2 = m1 + 2
m2 = m1 + Measurement.fromFloat(2, units="m")
self.assertEqual(m2.sample, SigFig("4.0"))
self.assertEqual(m2.uncertainty, SigFig("0.1"))
self.assertEqual(m2.units, "m")
self.assertEqual(str(m2), "4.0 +/- 0.1 m")

def test_subtract_scalar_from_measurement(self):
m1 = Measurement("2.0", uncertainty="0.13", units="m")
m2 = m1 - 2
m2 = m1 - Measurement.fromFloat(2, units="m")
self.assertEqual(m2.sample, SigFig("0.0"))
self.assertEqual(m2.uncertainty, SigFig("0.1"))
self.assertEqual(m2.units, "m")
Expand Down Expand Up @@ -126,7 +126,7 @@ def test_sum_measurements(self):
m1 = Measurement.fromStr("2.0 +/- 0.13 m")
m2 = Measurement.fromStr("3.0 +/- 0.1 m")
m3 = Measurement.fromStr("4.0 +/- 0.1 m")
m4 = sum([m1, m2, m3])
m4 = Measurement.sum([m1, m2, m3])
self.assertEqual(m4.sample, SigFig("9.0"))
self.assertEqual(m4.uncertainty, SigFig("0.3"))
self.assertEqual(m4.units, "m")
Expand Down

0 comments on commit 6c7d0a8

Please sign in to comment.