Пример #1
0
    def test_YEAR(self):
        sample_date_2008 = date.DATE(2008, 5, 7)
        serial_number_2008 = int(sample_date_2008)
        self.assertEqual(date.YEAR(serial_number_2008), 2008)

        sample_date_2010 = date.DATE(2010, 5, 7)
        serial_number_2010 = int(sample_date_2010)
        self.assertEqual(date.YEAR(serial_number_2010), 2010)
Пример #2
0
 def test_XIRR_not_converge(self):
     dates = [date.DATE(2020, 8, 31),
              date.DATE(2020, 5, 5),
              date.DATE(2020, 2, 28),
              date.DATE(2020, 8, 31),
              date.DATE(2018, 6, 30)]
     values = [50289.0, -75000.0, 0.0, 0.0, 0.0]
     self.assertIsInstance(
         financial.XIRR(values, dates, 0), xlerrors.NumExcelError)
Пример #3
0
    def test_DATEDIF_year(self):
        start_date = date.DATE(2011, 1, 1)
        end_date = date.DATE(2011, 12, 31)

        self.assertEqual(date.DATEDIF(start_date, end_date, 'Y'), 0)

        start_date = date.DATE(2011, 1, 1)
        end_date = date.DATE(2012, 12, 31)
        self.assertEqual(date.DATEDIF(start_date, end_date, 'Y'), 1)
Пример #4
0
 def test_XNPV_rate_lt_minus_one(self):
     range_00 = func_xltypes.Array(
         [[-10000, 2750, 4250, 3250, 2750]])
     range_01 = func_xltypes.Array([[
         date.DATE(2008, 1, 1),
         date.DATE(2008, 3, 1),
         date.DATE(2008, 10, 30),
         date.DATE(2009, 2, 15),
         date.DATE(2009, 4, 1)
     ]])
     self.assertEqual(
         financial.XNPV(-1.1, range_00, range_01), float('inf'))
Пример #5
0
 def test_XNPV(self):
     range_00 = func_xltypes.Array(
         [[-10000, 2750, 4250, 3250, 2750]])
     range_01 = func_xltypes.Array([[
         date.DATE(2008, 1, 1),
         date.DATE(2008, 3, 1),
         date.DATE(2008, 10, 30),
         date.DATE(2009, 2, 15),
         date.DATE(2009, 4, 1)
     ]])
     self.assertAlmostEqual(
         financial.XNPV(0.09, range_00, range_01), 2086.65, 2)
Пример #6
0
    def test_XIRR(self):
        range_00 = func_xltypes.Array(
            [[-10000, 2750, 4250, 3250, 2750]])
        range_01 = func_xltypes.Array([[
            date.DATE(2008, 1, 1),
            date.DATE(2008, 3, 1),
            date.DATE(2008, 10, 30),
            date.DATE(2009, 2, 15),
            date.DATE(2009, 4, 1)
        ]])

        self.assertAlmostEqual(
            financial.XIRR(range_00, range_01, 0.1), 0.373362535)
Пример #7
0
    def test_ISEVEN(self):
        self.assertFalse(information.ISEVEN(func_xltypes.Number(1)))
        self.assertTrue(information.ISEVEN(func_xltypes.Number(2)))

        self.assertFalse(information.ISEVEN(-1))
        self.assertTrue(information.ISEVEN(2.5))
        self.assertFalse(information.ISEVEN(5))
        self.assertTrue(information.ISEVEN(0))
        self.assertTrue(information.ISEVEN(date.DATE(2011, 12, 23)))
Пример #8
0
 def test_DATE(self):
     self.assertEqual(date.DATE(2000, 1, 1), dt(2000, 1, 1))
     self.assertEqual(date.DATE(2008, 11, 3), dt(2008, 11, 3))
     self.assertEqual(date.DATE(2024, 1, 1), dt(2024, 1, 1))
     self.assertEqual(date.DATE(2025, 1, 1), dt(2025, 1, 1))
     self.assertEqual(date.DATE(2026, 1, 1), dt(2026, 1, 1))
     self.assertEqual(date.DATE(1911, 1, 15), dt(1911, 1, 15))
Пример #9
0
    def test_WEEKDAY_error(self):
        sample_date = date.DATE(2008, 2, 14)
        serial_number = int(sample_date)

        self.assertIsInstance(date.WEEKDAY(serial_number, 0),
                              xlerrors.NumExcelError)
        self.assertIsInstance(date.WEEKDAY(serial_number, 4),
                              xlerrors.NumExcelError)
        self.assertIsInstance(date.WEEKDAY(serial_number, 5),
                              xlerrors.NumExcelError)
        self.assertIsInstance(date.WEEKDAY(serial_number, 6),
                              xlerrors.NumExcelError)
        self.assertIsInstance(date.WEEKDAY(serial_number, 7),
                              xlerrors.NumExcelError)
        self.assertIsInstance(date.WEEKDAY(serial_number, 8),
                              xlerrors.NumExcelError)
        self.assertIsInstance(date.WEEKDAY(serial_number, 9),
                              xlerrors.NumExcelError)
        self.assertIsInstance(date.WEEKDAY(serial_number, 10),
                              xlerrors.NumExcelError)
        self.assertIsInstance(date.WEEKDAY(serial_number, 18),
                              xlerrors.NumExcelError)
Пример #10
0
 def test_DATE_not_stricly_positive_day_substracts(self):
     self.assertEqual(date.DATE(2009, 1, -1), dt(2008, 12, 30))
Пример #11
0
 def test_DATE_not_stricly_positive_month_substracts(self):
     self.assertEqual(date.DATE(2009, -1, 1), dt(2008, 11, 1))
Пример #12
0
 def test_DATE_result_must_be_positive(self):
     self.assertIsInstance(date.DATE(1900, 1, -1), xlerrors.NumExcelError)
Пример #13
0
    def test_MONTH(self):
        sample_date = date.DATE(1911, 4, 15)
        serial_number = int(sample_date)

        self.assertEqual(date.MONTH(serial_number), 4)
Пример #14
0
    def test_DATEDIF_M_start_beyond_end(self):
        start_date = date.DATE(2002, 8, 15)
        end_date = date.DATE(2001, 6, 1)

        self.assertIsInstance(date.DATEDIF(start_date, end_date, 'M'),
                              xlerrors.NumExcelError)
Пример #15
0
    def test_DATEDIF_YM(self):
        start_date = date.DATE(2011, 1, 1)
        end_date = date.DATE(2011, 12, 31)

        self.assertEqual(date.DATEDIF(start_date, end_date, 'YM'), 11)
Пример #16
0
 def test_EOMONTH_must_be_greater_than_epoch(self):
     the_date = date.DATE(1901, 1, 1)
     self.assertIsInstance(date.EOMONTH(the_date, -24),
                           xlerrors.NumExcelError)
Пример #17
0
 def test_DATE_year_must_be_number(self):
     self.assertIsInstance(date.DATE('bad', 1, 1), xlerrors.ValueExcelError)
Пример #18
0
    def test_WEEKDAY_return_type_17(self):
        sample_date = date.DATE(2008, 2, 14)
        serial_number = int(sample_date)

        self.assertEqual(date.WEEKDAY(serial_number, 17), 5)
Пример #19
0
 def test_DATE_with_string_components(self):
     self.assertEqual(date.DATE('2026', '1', '1'), dt(2026, 1, 1))
Пример #20
0
 def test_DATE_with_short_year(self):
     self.assertEqual(date.DATE(99, 1, 1), dt(1999, 1, 1))
Пример #21
0
 def test_DATE_month_superior_to_12_change_year(self):
     self.assertEqual(date.DATE(2009, 14, 1), dt(2010, 2, 1))
Пример #22
0
 def test_EOMONTH(self):
     the_date = date.DATE(2011, 1, 1)
     target_serial_number = utils.datetime_to_number(dt(2011, 2, 28))
     self.assertEqual(date.EOMONTH(the_date, 1), target_serial_number)
Пример #23
0
 def test_DATE_day_superior_to_365_change_year(self):
     self.assertEqual(date.DATE(2009, 1, 400), dt(2010, 2, 4))
Пример #24
0
 def test_DATE_day_must_be_integer(self):
     self.assertIsInstance(date.DATE(2000, 1, 'bad'),
                           xlerrors.ValueExcelError)
Пример #25
0
    def test_DATEDIF_MD(self):
        start_date = date.DATE(2011, 1, 1)
        end_date = date.DATE(2011, 12, 31)

        self.assertEqual(date.DATEDIF(start_date, end_date, 'MD'), 30)
Пример #26
0
 def test_DATE_year_must_be_positive(self):
     self.assertIsInstance(date.DATE(-1, 1, 1), xlerrors.NumExcelError)
Пример #27
0
    def test_DATEDIF_YD(self):
        start_date = date.DATE(2001, 6, 1)
        end_date = date.DATE(2002, 8, 15)

        self.assertEqual(date.DATEDIF(start_date, end_date, 'YD'), 75)
Пример #28
0
 def test_DATE_year_must_have_less_than_10000(self):
     self.assertIsInstance(date.DATE(10000, 1, 1), xlerrors.NumExcelError)
Пример #29
0
 def test_DATE_month_must_be_number(self):
     self.assertIsInstance(date.DATE(2000, 'bad', 1),
                           xlerrors.ValueExcelError)
Пример #30
0
    def test_ISOWEEKNUM(self):
        sample_date = date.DATE(2012, 3, 9)

        self.assertEqual(date.ISOWEEKNUM(sample_date), 10)