Example #1
0
class TestThreshold(unittest.TestCase):
    def setUp(self):
        today = date.today()
        self.last_month = [
            Equity(today - timedelta(days=40), 100.0),
            Equity(today - timedelta(days=42), 100.0),
            Equity(today - timedelta(days=44), 100.0)
        ]
        self.last_month_value = 300
        self.next_month = [
            Equity(today + timedelta(days=46), 10.0),
            Equity(today + timedelta(days=48), 10.0)
        ]
        self.next_month_value = 20
        self.next_year = [Equity(today + timedelta(days=365), 1.0)]
        self.next_year_value = 1
        self.instance = EquityGroup(self.last_month + self.next_month +
                                    self.next_year)

    def test_normal_path(self):
        # To leave no more than 15.0 unvested, one of next_month needs to vest
        amount = 15.0
        exp_result = Threshold(amount, self.next_month[0].date)
        result = self.instance.compute_threshold(amount)
        self.assertEqual(result, exp_result)

    def test_threshold_0(self):
        # To leave nothing unvested, everything needs to vest
        amount = 0.0
        exp_result = Threshold(amount, self.next_year[0].date)
        result = self.instance.compute_threshold(amount)
        self.assertEqual(result, exp_result)
Example #2
0
 def setUp(self):
     today = date.today()
     self.last_month = [
         Equity(today - timedelta(days=40), 100.0),
         Equity(today - timedelta(days=42), 100.0),
         Equity(today - timedelta(days=44), 100.0)
     ]
     self.last_month_value = 300
     self.next_month = [
         Equity(today + timedelta(days=46), 10.0),
         Equity(today + timedelta(days=48), 10.0)
     ]
     self.next_month_value = 20
     self.next_year = [Equity(today + timedelta(days=365), 1.0)]
     self.next_year_value = 1
     self.instance = EquityGroup(self.last_month + self.next_month +
                                 self.next_year)
Example #3
0
 def test_value_at_far_future(self):
     instance = EquityGroup(self.last_month + self.next_month +
                            self.next_year)
     result = instance.value_at(date.today() + timedelta(weeks=100))
     exp_result = self.last_month_value + self.next_month_value + self.next_year_value
     self.assertEqual(result, exp_result)
Example #4
0
 def test_value_at_past(self):
     instance = EquityGroup(self.last_month + self.next_month +
                            self.next_year)
     result = instance.value_at(date.today() - timedelta(weeks=8))
     exp_result = 0
     self.assertEqual(result, exp_result)
Example #5
0
 def test_value_at_today(self):
     instance = EquityGroup(self.last_month + self.next_month +
                            self.next_year)
     result = instance.value_at(date.today())
     exp_result = self.last_month_value
     self.assertEqual(result, exp_result)
Example #6
0
 def test_vested_value(self):
     instance = EquityGroup(self.last_month + self.next_month +
                            self.next_year)
     result = instance.vested_value()
     exp_result = self.last_month_value
     self.assertEqual(result, exp_result)
Example #7
0
 def test_total_value_group(self):
     instance = EquityGroup(self.last_month)
     self.assertEqual(instance.total_value(), self.last_month_value)
Example #8
0
 def test_total_value_single(self):
     single_equity = self.last_month[0]
     instance = EquityGroup([single_equity])
     self.assertEqual(instance.total_value(), single_equity.value)
Example #9
0
 def test_total_value_empty(self):
     instance = EquityGroup([])
     self.assertEqual(instance.total_value(), 0.0)