def test___rtruediv__(): assert 2 / m == si.Physical(2, si.Dimensions(0, -1, 0, 0, 0, 0, 0), 1) assert 10 / N == si.Physical(10, si.Dimensions(-1, -1, 2, 0, 0, 0, 0), 1) assert 1 / kip == si.Physical( value=0.00022480894309971045, dimensions=si.Dimensions(kg=-1, m=-1, s=2, A=0, cd=0, K=0, mol=0), factor=4448.221615260501, precision=3, )
def test___truediv__(): assert m / m == 1 assert m / s == si.Physical(1, si.Dimensions(0, 1, -1, 0, 0, 0, 0), 1) assert kN / m / m == kPa assert (5 * kN) / 2 == 2.5 * kN assert (kip / (2 * ft * 5 * ft)).value == pytest.approx( (0.100 * ksf).value)
def test___sub__(): assert kg - kg == 0.0 assert m - ft == si.Physical(0.6952, si.Dimensions(0, 1, 0, 0, 0, 0, 0), 1) assert ft - m == si.Physical(-0.6952, si.Dimensions(0, 1, 0, 0, 0, 0, 0), 1 / 0.3048) assert N - lb == si.Physical(-3.4482216152605005, si.Dimensions(1, 1, -2, 0, 0, 0, 0), 1) assert lb - N == si.Physical(3.4482216152605005, si.Dimensions(1, 1, -2, 0, 0, 0, 0), 0.22480894309971047) assert (ft - 3).value == pytest.approx( si.Physical(-0.6096, si.Dimensions(0, 1, 0, 0, 0, 0, 0), 1 / 0.3048).value) with pytest.raises(ValueError): kg - m N - psf
def test___mul__(): assert m * m == si.Physical(1, si.Dimensions(0, 2, 0, 0, 0, 0, 0), 1) assert m * kg == si.Physical(1, si.Dimensions(1, 1, 0, 0, 0, 0, 0), 1) assert ft * m == si.Physical(0.3048, si.Dimensions(0, 2, 0, 0, 0, 0, 0), 1 / 0.3048) assert N * m == si.Physical(1, si.Dimensions(1, 2, -2, 0, 0, 0, 0), 1) assert psf * m * m == si.Physical(47.88025898033584, si.Dimensions(1, 1, -2, 0, 0, 0, 0), 0.02088543423315013) assert 2 * ft == si.Physical(0.6096, si.Dimensions(0, 1, 0, 0, 0, 0, 0), 1 / 0.3048) assert (si.Physical(10, si.Dimensions(-1, -1, 0, 0, 0, 0, 0), 1) * si.Physical(2, si.Dimensions(1, 1, 0, 0, 0, 0, 0), 1)) == 20 assert (10 * ksf) * (5 * ft) * (2 * ft) == 100 * kip # TODO: Fix this gotcha assert m * ft == si.Physical(0.3048, si.Dimensions(0, 2, 0, 0, 0, 0, 0), 1.0)
def test___add__(): assert kg + kg == si.Physical(2, si.Dimensions(1, 0, 0, 0, 0, 0, 0), 1) assert m + ft == si.Physical(1.3048, si.Dimensions(0, 1, 0, 0, 0, 0, 0), 1) assert ft + m == si.Physical(1.3048, si.Dimensions(0, 1, 0, 0, 0, 0, 0), 1 / 0.3048) assert N + lb == si.Physical(5.4482216152605005, si.Dimensions(1, 1, -2, 0, 0, 0, 0), 1) assert lb + N == si.Physical(5.4482216152605005, si.Dimensions(1, 1, -2, 0, 0, 0, 0), 0.22480894309971047) assert ft + 3 == si.Physical(1.2192, si.Dimensions(0, 1, 0, 0, 0, 0, 0), 1 / 0.3048) with pytest.raises(ValueError): kg + m N + psf
def test___pow__(): assert N**2 == si.Physical(1, si.Dimensions(2, 2, -4, 0, 0, 0, 0), 1) assert ft**3 == si.Physical(0.3048**3, si.Dimensions(0, 3, 0, 0, 0, 0, 0), (1 / 0.3048)**3)
def test___rsub__(): assert 2 - ft == si.Physical(0.3048, si.Dimensions(0, 1, 0, 0, 0, 0, 0), 1 / 0.3048) assert 10 - N == si.Physical(9, si.Dimensions(1, 1, -2, 0, 0, 0, 0), 1)