MCPcopy
hub / github.com/TheAlgorithms/Python / electric_power

Function electric_power

electronics/electric_power.py:12–53  ·  view source on GitHub ↗

This function can calculate any one of the three (voltage, current, power), fundamental value of electrical system. examples are below: >>> electric_power(voltage=0, current=2, power=5) Result(name='voltage', value=2.5) >>> electric_power(voltage=2, current=2, power=0) R

(voltage: float, current: float, power: float)

Source from the content-addressed store, hash-verified

10
11
12def electric_power(voltage: float, current: float, power: float) -> tuple:
13 """
14 This function can calculate any one of the three (voltage, current, power),
15 fundamental value of electrical system.
16 examples are below:
17 >>> electric_power(voltage=0, current=2, power=5)
18 Result(name='voltage', value=2.5)
19 >>> electric_power(voltage=2, current=2, power=0)
20 Result(name='power', value=4.0)
21 >>> electric_power(voltage=-2, current=3, power=0)
22 Result(name='power', value=6.0)
23 >>> electric_power(voltage=2, current=4, power=2)
24 Traceback (most recent call last):
25 ...
26 ValueError: Exactly one argument must be 0
27 >>> electric_power(voltage=0, current=0, power=2)
28 Traceback (most recent call last):
29 ...
30 ValueError: Exactly one argument must be 0
31 >>> electric_power(voltage=0, current=2, power=-4)
32 Traceback (most recent call last):
33 ...
34 ValueError: Power cannot be negative in any electrical/electronics system
35 >>> electric_power(voltage=2.2, current=2.2, power=0)
36 Result(name='power', value=4.84)
37 >>> electric_power(current=0, power=6, voltage=2)
38 Result(name='current', value=3.0)
39 """
40 if (voltage, current, power).count(0) != 1:
41 raise ValueError("Exactly one argument must be 0")
42 elif power < 0:
43 raise ValueError(
44 "Power cannot be negative in any electrical/electronics system"
45 )
46 elif voltage == 0:
47 return Result("voltage", power / current)
48 elif current == 0:
49 return Result("current", power / voltage)
50 elif power == 0:
51 return Result("power", float(round(abs(voltage * current), 2)))
52 else:
53 raise AssertionError
54
55
56if __name__ == "__main__":

Callers

nothing calls this directly

Calls 2

ResultClass · 0.85
countMethod · 0.80

Tested by

no test coverage detected