コード例 #1
0
    def test_multiplication(self):
        val = CV(None)
        total = val * None

        self.assertIsNone(total)
        self.assertIsNone(total)

        total = None * val

        self.assertIsNone(total)
        self.assertIsNone(total)

        val = CV(Decimal("1000"))
        total = None * val

        self.assertIsNone(total)
        self.assertIsNone(total)

        total = val * None

        self.assertIsNone(total)
        self.assertIsNone(total)

        total = val * Decimal("2")

        self.assertEquals(Decimal("2000"), total.as_local(Decimal("500")))
        self.assertEquals(Decimal("4"), total.as_usd(Decimal("500")))

        total = Decimal("2") * val

        self.assertEquals(Decimal("2000"), total.as_local(Decimal("500")))
        self.assertEquals(Decimal("4"), total.as_usd(Decimal("500")))

        total = val
        total *= Decimal("2")

        self.assertEquals(Decimal("2000"), total.as_local(Decimal("500")))
        self.assertEquals(Decimal("4"), total.as_usd(Decimal("500")))

        val = CV(Decimal("4"), Decimal("500")) + CV(Decimal("1000"))
        total = Decimal("-2") * val

        self.assertEquals(Decimal("-6000"), total.as_local(Decimal("500")))
        self.assertEquals(Decimal("-12"), total.as_usd(Decimal("500")))

        # test invalid combinations
        val1 = CV(Decimal("10"))
        val2 = CV(Decimal("20"))

        try:
            total = val1 * val2
            self.assertFalse(True, "Should have thrown, invalid operation")
        except:
            pass
コード例 #2
0
    def test_division(self):
        val = CV(None)
        total = val / None

        self.assertIsNone(total)
        self.assertIsNone(total)

        total = None / val

        self.assertIsNone(total)
        self.assertIsNone(total)

        val = CV(Decimal("1000"))
        total = None / val

        self.assertIsNone(total)
        self.assertIsNone(total)

        total = val / None

        self.assertIsNone(total)
        self.assertIsNone(total)

        total = val / Decimal("2")

        self.assertEquals(Decimal("500"), total.as_local(Decimal("500")))
        self.assertEquals(Decimal("1"), total.as_usd(Decimal("500")))

        total = val
        total /= Decimal("2")

        self.assertEquals(Decimal("500"), total.as_local(Decimal("500")))
        self.assertEquals(Decimal("1"), total.as_usd(Decimal("500")))

        try:
            total = Decimal("2") / val
            self.assertTrue(
                False,
                "Should have raised exception as numerator must always be CurrencyValue"
            )
        except Exception as e:
            pass

        val = CV(Decimal("4"), Decimal("500")) + CV(Decimal("1000"))
        total = val / Decimal("-2")

        self.assertEquals(Decimal("-1500"), total.as_local(Decimal("500")))
        self.assertEquals(Decimal("-3"), total.as_usd(Decimal("500")))