File tree Expand file tree Collapse file tree 3 files changed +38
-0
lines changed
src/frequenz/sdk/timeseries Expand file tree Collapse file tree 3 files changed +38
-0
lines changed Original file line number Diff line number Diff line change 1313## New Features
1414
1515- Add quantity class ` Frequency ` for frequency values.
16+ - Add ` abs() ` support for quantities.
1617
1718## Bug Fixes
1819
Original file line number Diff line number Diff line change @@ -300,6 +300,16 @@ def __neg__(self) -> Self:
300300 negation ._base_value = - self ._base_value
301301 return negation
302302
303+ def __abs__ (self ) -> Self :
304+ """Return the absolute value of this quantity.
305+
306+ Returns:
307+ The absolute value of this quantity.
308+ """
309+ absolute = type (self ).__new__ (type (self ))
310+ absolute ._base_value = abs (self ._base_value )
311+ return absolute
312+
303313
304314class _NoDefaultConstructible (type ):
305315 """A metaclass that disables the default constructor."""
Original file line number Diff line number Diff line change @@ -350,3 +350,30 @@ def test_nan() -> None:
350350 assert f"{ Energy .from_watt_hours (float ('nan' ))} " == "nan Wh"
351351 assert f"{ Frequency .from_hertz (float ('nan' ))} " == "nan Hz"
352352 assert f"{ Percentage .from_fraction (float ('nan' ))} " == "nan %"
353+
354+
355+ def test_abs () -> None :
356+ """Test the absolute value of quantities."""
357+ power = Power .from_watts (1000.0 )
358+ assert abs (power ) == Power .from_watts (1000.0 )
359+ assert abs (- power ) == Power .from_watts (1000.0 )
360+
361+ voltage = Voltage .from_volts (230.0 )
362+ assert abs (voltage ) == Voltage .from_volts (230.0 )
363+ assert abs (- voltage ) == Voltage .from_volts (230.0 )
364+
365+ current = Current .from_amperes (2 )
366+ assert abs (current ) == Current .from_amperes (2 )
367+ assert abs (- current ) == Current .from_amperes (2 )
368+
369+ energy = Energy .from_kilowatt_hours (6.2 )
370+ assert abs (energy ) == Energy .from_kilowatt_hours (6.2 )
371+ assert abs (- energy ) == Energy .from_kilowatt_hours (6.2 )
372+
373+ freq = Frequency .from_hertz (50 )
374+ assert abs (freq ) == Frequency .from_hertz (50 )
375+ assert abs (- freq ) == Frequency .from_hertz (50 )
376+
377+ pct = Percentage .from_fraction (30 )
378+ assert abs (pct ) == Percentage .from_fraction (30 )
379+ assert abs (- pct ) == Percentage .from_fraction (30 )
You can’t perform that action at this time.
0 commit comments