File tree Expand file tree Collapse file tree 1 file changed +49
-0
lines changed Expand file tree Collapse file tree 1 file changed +49
-0
lines changed Original file line number Diff line number Diff line change 1+ import math
2+
3+
4+ def real_power (apparent_power : float , power_factor : float ) -> float :
5+ """
6+ Calculate real power from apparent power and power factor.
7+
8+ Examples:
9+ >>> real_power(100, 0.9)
10+ 90.0
11+ >>> real_power(0, 0.8)
12+ 0.0
13+ >>> real_power(100, -0.9)
14+ -90.0
15+ """
16+ if (
17+ not isinstance (power_factor , (int , float ))
18+ or power_factor < - 1
19+ or power_factor > 1
20+ ):
21+ raise ValueError ("power_factor must be a valid float value between -1 and 1." )
22+ return apparent_power * power_factor
23+
24+
25+ def reactive_power (apparent_power : float , power_factor : float ) -> float :
26+ """
27+ Calculate reactive power from apparent power and power factor.
28+
29+ Examples:
30+ >>> reactive_power(100, 0.9)
31+ 43.58898943540673
32+ >>> reactive_power(0, 0.8)
33+ 0.0
34+ >>> reactive_power(100, -0.9)
35+ 43.58898943540673
36+ """
37+ if (
38+ not isinstance (power_factor , (int , float ))
39+ or power_factor < - 1
40+ or power_factor > 1
41+ ):
42+ raise ValueError ("power_factor must be a valid float value between -1 and 1." )
43+ return apparent_power * math .sqrt (1 - power_factor ** 2 )
44+
45+
46+ if __name__ == "__main__" :
47+ import doctest
48+
49+ doctest .testmod ()
You can’t perform that action at this time.
0 commit comments