Esempio n. 1
0
    def test_append_different_append(self):
        """Append DiscRates with same and new values. The rates with repeated
        years are overwritten."""
        disc_rate = DiscRates()
        disc_rate.tag.file_name = 'file1.txt'
        disc_rate.tag.description = 'descr1'
        disc_rate.years = np.array([2000, 2001, 2002])
        disc_rate.rates = np.array([0.1, 0.2, 0.3])

        disc_rate_add = DiscRates()
        disc_rate_add.tag.file_name = 'file2.txt'
        disc_rate_add.tag.description = 'descr2'
        disc_rate_add.years = np.array([2000, 2001, 2003])
        disc_rate_add.rates = np.array([0.11, 0.22, 0.33])

        disc_rate.append(disc_rate_add)
        disc_rate.check()

        self.assertTrue(
            np.array_equal(disc_rate.years, np.array([2000, 2001, 2002,
                                                      2003])))
        self.assertTrue(
            np.array_equal(disc_rate.rates, np.array([0.11, 0.22, 0.3, 0.33])))
        self.assertTrue(
            np.array_equal(disc_rate.tag.file_name, 'file1.txt + file2.txt'))
        self.assertTrue(
            np.array_equal(disc_rate.tag.description, 'descr1 + descr2'))
Esempio n. 2
0
    def test_check_wrongRates_fail(self):
        """Wrong discount rates definition"""
        disc_rate = DiscRates()
        disc_rate.rates = np.array([3,4])
        disc_rate.years = np.array([1])

        with self.assertLogs('climada.util.checker', level='ERROR') as cm:
            with self.assertRaises(ValueError):
                disc_rate.check()
        self.assertIn('Invalid DiscRates.rates size: 1 != 2.', cm.output[0])
Esempio n. 3
0
 def test_net_present_value_wrong_pass(self):
     """Test net_present_value wrong time range."""
     disc_rate = DiscRates()
     disc_rate.tag.file_name = 'file1.txt'
     disc_rate.tag.description = 'descr1'
     disc_rate.years = np.arange(2000, 2050)
     disc_rate.rates = np.arange(disc_rate.years.size)
     val_years = np.ones(11)*6.512201157564418e9
     with self.assertRaises(ValueError):
         disc_rate.net_present_value(2050, 2060, val_years)
Esempio n. 4
0
    def test_select_wrong_pass(self):
        """Test select wrong time range."""
        disc_rate = DiscRates()
        disc_rate.tag.file_name = 'file1.txt'
        disc_rate.tag.description = 'descr1'
        disc_rate.years = np.arange(2000, 2050)
        disc_rate.rates = np.arange(disc_rate.years.size)

        year_range = np.arange(2050, 2060)
        self.assertEqual(None, disc_rate.select(year_range))
Esempio n. 5
0
    def test_check_wrongRates_fail(self):
        """Wrong discount rates definition"""
        disc_rate = DiscRates()
        disc_rate.rates = np.array([3, 4])
        disc_rate.years = np.array([1])

        with self.assertRaises(ValueError) as cm:
            disc_rate.check()
        self.assertIn('Invalid DiscRates.rates size: 1 != 2.',
                      str(cm.exception))
Esempio n. 6
0
    def test_net_present_value_pass(self):
        """Test net_present_value right time range."""
        disc_rate = DiscRates()
        disc_rate.tag.file_name = 'file1.txt'
        disc_rate.tag.description = 'descr1'
        disc_rate.years = np.arange(2000, 2050)
        disc_rate.rates = np.ones(disc_rate.years.size)*0.02

        val_years = np.ones(23)*6.512201157564418e9
        res = disc_rate.net_present_value(2018, 2040, val_years)
        self.assertEqual(res, 1.215049630691397e+11)
Esempio n. 7
0
    def test_append_equal_same(self):
        """Append the same DiscRates. The inital DiscRates is obtained."""
        disc_rate = DiscRates()
        disc_rate.tag.file_name = 'file1.txt'
        disc_rate.tag.description = 'descr1'
        disc_rate.years = np.array([2000, 2001, 2002])
        disc_rate.rates = np.array([0.1, 0.2, 0.3])

        disc_rate_add = DiscRates()
        disc_rate_add.tag.file_name = 'file1.txt'
        disc_rate_add.tag.description = 'descr1'
        disc_rate_add.years = np.array([2000, 2001, 2002])
        disc_rate_add.rates = np.array([0.1, 0.2, 0.3])

        disc_rate.append(disc_rate_add)
        disc_rate.check()

        self.assertTrue(np.array_equal(disc_rate.years, disc_rate_add.years))
        self.assertTrue(np.array_equal(disc_rate.rates, disc_rate_add.rates))
        self.assertTrue(np.array_equal(disc_rate.tag.file_name, disc_rate_add.tag.file_name))
        self.assertEqual(disc_rate.tag.description, disc_rate_add.tag.description)
Esempio n. 8
0
    def test_select_pass(self):
        """Test select right time range."""
        disc_rate = DiscRates()
        disc_rate.tag.file_name = 'file1.txt'
        disc_rate.tag.description = 'descr1'
        disc_rate.years = np.arange(2000, 2050)
        disc_rate.rates = np.arange(disc_rate.years.size)

        year_range = np.arange(2010, 2020)
        sel_disc = disc_rate.select(year_range)

        self.assertTrue(np.array_equal(sel_disc.years, year_range))
        self.assertTrue(np.array_equal(sel_disc.rates, disc_rate.rates[10:20]))
Esempio n. 9
0
    def test_write_read_pass(self):
        """ Read demo excel file."""      
        disc_rate = DiscRates()
        disc_rate.years = np.arange(1950, 2150)
        disc_rate.rates = np.ones(disc_rate.years.size)*0.03

        file_name = os.path.join(os.path.join(CURR_DIR, 'data'), 'test_disc.xlsx')
        disc_rate.write_excel(file_name)
        
        disc_read = DiscRates()
        disc_read.read_excel(file_name)

        self.assertTrue(np.array_equal(disc_read.years, disc_rate.years))
        self.assertTrue(np.array_equal(disc_read.rates, disc_rate.rates))

        self.assertEqual(disc_read.tag.file_name, file_name)
        self.assertEqual(disc_read.tag.description, '')
Esempio n. 10
0
    def test_append_to_empty_same(self):
        """Append DiscRates to empty one."""
        disc_rate = DiscRates()
        disc_rate_add = DiscRates()
        disc_rate_add.tag.file_name = 'file1.txt'
        disc_rate_add.tag.description = 'descr1'
        disc_rate_add.years = np.array([2000, 2001, 2002])
        disc_rate_add.rates = np.array([0.1, 0.2, 0.3])

        disc_rate.append(disc_rate_add)
        disc_rate.check()

        self.assertTrue(np.array_equal(disc_rate.years, disc_rate_add.years))
        self.assertTrue(np.array_equal(disc_rate.rates, disc_rate_add.rates))
        self.assertTrue(np.array_equal(disc_rate.tag.file_name, \
                                       disc_rate_add.tag.file_name))
        self.assertTrue(np.array_equal(disc_rate.tag.description, \
                                       disc_rate_add.tag.description))
Esempio n. 11
0
    def test_write_read_pass(self):
        """Read demo excel file."""
        disc_rate = DiscRates()
        disc_rate.years = np.arange(1950, 2150)
        disc_rate.rates = np.ones(disc_rate.years.size) * 0.03

        file_name = CONFIG.disc_rates.test_data.dir().joinpath(
            'test_disc.xlsx')
        disc_rate.write_excel(file_name)

        disc_read = DiscRates()
        disc_read.read_excel(file_name)

        self.assertTrue(np.array_equal(disc_read.years, disc_rate.years))
        self.assertTrue(np.array_equal(disc_read.rates, disc_rate.rates))

        self.assertEqual(disc_read.tag.file_name, str(file_name))
        self.assertEqual(disc_read.tag.description, '')