mirror of
https://github.com/TheAlgorithms/Python.git
synced 2025-01-18 00:07:00 +00:00
* Function conversion rectangular number to polar * #9943 : adding test to elelectronics/electric_conductivity.py * updating DIRECTORY.md * Apply suggestions from code review * updating DIRECTORY.md * Rename rec_to_pol.py to rectangular_to_polar.py * updating DIRECTORY.md * Update conversions/rectangular_to_polar.py * Update conversions/rectangular_to_polar.py --------- Co-authored-by: Julia <julia.de-jesus-aragao@imt-atlantique.net> Co-authored-by: juliaaragao <juliaaragao@users.noreply.github.com> Co-authored-by: Christian Clauss <cclauss@me.com> Co-authored-by: cclauss <cclauss@users.noreply.github.com>
This commit is contained in:
parent
7fa9b4bf1b
commit
a2be5adf67
|
@ -169,6 +169,7 @@
|
|||
* [Prefix Conversions](conversions/prefix_conversions.py)
|
||||
* [Prefix Conversions String](conversions/prefix_conversions_string.py)
|
||||
* [Pressure Conversions](conversions/pressure_conversions.py)
|
||||
* [Rectangular To Polar](conversions/rectangular_to_polar.py)
|
||||
* [Rgb Cmyk Conversion](conversions/rgb_cmyk_conversion.py)
|
||||
* [Rgb Hsv Conversion](conversions/rgb_hsv_conversion.py)
|
||||
* [Roman Numerals](conversions/roman_numerals.py)
|
||||
|
|
32
conversions/rectangular_to_polar.py
Normal file
32
conversions/rectangular_to_polar.py
Normal file
|
@ -0,0 +1,32 @@
|
|||
import math
|
||||
|
||||
|
||||
def rectangular_to_polar(real: float, img: float) -> tuple[float, float]:
|
||||
"""
|
||||
https://en.wikipedia.org/wiki/Polar_coordinate_system
|
||||
|
||||
>>> rectangular_to_polar(5,-5)
|
||||
(7.07, -45.0)
|
||||
>>> rectangular_to_polar(-1,1)
|
||||
(1.41, 135.0)
|
||||
>>> rectangular_to_polar(-1,-1)
|
||||
(1.41, -135.0)
|
||||
>>> rectangular_to_polar(1e-10,1e-10)
|
||||
(0.0, 45.0)
|
||||
>>> rectangular_to_polar(-1e-10,1e-10)
|
||||
(0.0, 135.0)
|
||||
>>> rectangular_to_polar(9.75,5.93)
|
||||
(11.41, 31.31)
|
||||
>>> rectangular_to_polar(10000,99999)
|
||||
(100497.76, 84.29)
|
||||
"""
|
||||
|
||||
mod = round(math.sqrt((real**2) + (img**2)), 2)
|
||||
ang = round(math.degrees(math.atan2(img, real)), 2)
|
||||
return (mod, ang)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
import doctest
|
||||
|
||||
doctest.testmod()
|
|
@ -21,6 +21,26 @@ def electric_conductivity(
|
|||
('conductivity', 5.12672e-14)
|
||||
>>> electric_conductivity(conductivity=1000, electron_conc=0, mobility=1200)
|
||||
('electron_conc', 5.201506356240767e+18)
|
||||
>>> electric_conductivity(conductivity=-10, electron_conc=100, mobility=0)
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: Conductivity cannot be negative
|
||||
>>> electric_conductivity(conductivity=50, electron_conc=-10, mobility=0)
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: Electron concentration cannot be negative
|
||||
>>> electric_conductivity(conductivity=50, electron_conc=0, mobility=-10)
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: mobility cannot be negative
|
||||
>>> electric_conductivity(conductivity=50, electron_conc=0, mobility=0)
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: You cannot supply more or less than 2 values
|
||||
>>> electric_conductivity(conductivity=50, electron_conc=200, mobility=300)
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: You cannot supply more or less than 2 values
|
||||
"""
|
||||
if (conductivity, electron_conc, mobility).count(0) != 1:
|
||||
raise ValueError("You cannot supply more or less than 2 values")
|
||||
|
|
Loading…
Reference in New Issue
Block a user