shear stress is a component of stress that is coplanar to the material crosssection it arises due to a shear force the component of the force vector parallel to the material crosssection https en wikipedia orgwikishearstress this function can calculate any one of the three 1 shear stress 2 tangential force 3 crosssectional area this is calculated from the other two provided values examples shearstressstress25 tangentialforce100 area0 area 4 0 shearstressstress0 tangentialforce1600 area200 stress 8 0 shearstressstress1000 tangentialforce0 area1200 tangentialforce 1200000 shear stress is a component of stress that is coplanar to the material cross section it arises due to a shear force the component of the force vector parallel to the material cross section https en wikipedia org wiki shear_stress this function can calculate any one of the three 1 shear stress 2 tangential force 3 cross sectional area this is calculated from the other two provided values examples shear_stress stress 25 tangential_force 100 area 0 area 4 0 shear_stress stress 0 tangential_force 1600 area 200 stress 8 0 shear_stress stress 1000 tangential_force 0 area 1200 tangential_force 1200000
from __future__ import annotations




def shear_stress(
    stress: float,
    tangential_force: float,
    area: float,
) -> tuple[str, float]:
    
    if (stress, tangential_force, area).count(0) != 1:
        raise ValueError("You cannot supply more or less than 2 values")
    elif stress < 0:
        raise ValueError("Stress cannot be negative")
    elif tangential_force < 0:
        raise ValueError("Tangential Force cannot be negative")
    elif area < 0:
        raise ValueError("Area cannot be negative")
    elif stress == 0:
        return (
            "stress",
            tangential_force / area,
        )
    elif tangential_force == 0:
        return (
            "tangential_force",
            stress * area,
        )
    else:
        return (
            "area",
            tangential_force / stress,
        )


if __name__ == "__main__":
    import doctest

    doctest.testmod()