def test_can_compute_median_one_element(self):
     # Arrange
     stat = StatisticalValues(1)
     # Act
     median = stat.median()
     # Assert
     self.assertEqual(median, 1)
 def test_can_compute_begining_moment(self):
     # Arrange
     stat = StatisticalValues([1, 2, 3, 2])
     # Act
     bmoment = stat.begining_moment(k=1)
     # Assert
     self.assertEqual(bmoment, 2.0)
 def test_can_compute_var_one_element(self):
     # Arrange
     stat = StatisticalValues(1)
     # Act
     var = stat.variance()
     # Assert
     self.assertEqual(var, 0)
 def test_can_compute_even_median(self):
     # Arrange
     stat = StatisticalValues([1, 2, 3, 3, 5])
     # Act
     median = stat.median()
     # Assert
     self.assertEqual(median, 3.0)
 def test_can_compute_var(self):
     # Arrange
     stat = StatisticalValues([1, 2, 3, 2])
     # Act
     var = stat.variance()
     # Assert
     self.assertEqual(var, 0.5)
 def test_can_compute_kth_central_moment(self):
     # Arrange
     stat = StatisticalValues([1, 2, 3, 2])
     # Act
     cmoment = stat.central_moment(k=4)
     # Assert
     self.assertEqual(cmoment, 0.5)
 def test_can_compute_mean(self):
     # Arrange
     stat = StatisticalValues([1, 2, 3, 2])
     # Act
     mean = stat.mean()
     # Assert
     self.assertEqual(mean, 2.0)
 def compute(self):
     try:
         calculator = StatisticalValues(self.x)
         if (self.statistic == 'mean'):
             self.result = calculator.mean()
         elif (self.statistic == 'variance'):
             self.result = calculator.variance()
         elif (self.statistic == 'median'):
             self.result = calculator.median()
         elif (self.statistic == 'begining moment'):
             self.result = calculator.begining_moment(self.k)
         elif (self.statistic == 'central moment'):
             self.result = calculator.central_moment(self.k)
     except Exception as exp:
         self.error_msg = "Error: {}". format(exp)
 def compute(self):
     try:
         calculator = StatisticalValues(self.x)
         if (self.statistic == 'mean'):
             self.result = calculator.mean()
         elif (self.statistic == 'variance'):
             self.result = calculator.variance()
         elif (self.statistic == 'median'):
             self.result = calculator.median()
         elif (self.statistic == 'begining moment'):
             self.result = calculator.begining_moment(self.k)
         elif (self.statistic == 'central moment'):
             self.result = calculator.central_moment(self.k)
         self.logger.log(
             "Statistics with name `{}` was calculated. Result value is {}".
             format(self.statistic, self.result))
     except Exception as exp:
         self.error_msg = "Error: {}".format(exp)
         self.logger.log(self.error_msg)
 def test_can_create_from_array(self):
     # Arrange
     stat = StatisticalValues([1, 2, 3])
     # Act & Assert
     self.assertTrue(isinstance(stat, StatisticalValues))
 def test_raises_on_empty(self):
     with self.assertRaises(TypeError):
         StatisticalValues()
 def test_raises_on_incorrect_type(self):
     with self.assertRaises(TypeError):
         StatisticalValues('d')
 def test_can_create_from_float(self):
     # Arrange
     stat = StatisticalValues(1.0)
     # Act & Assert
     self.assertTrue(isinstance(stat, StatisticalValues))
 def test_cmoment_raises_on_neg_k(self):
     # Arrange
     stat = StatisticalValues([1, 2, 3, 2])
     # Act & Assert
     with self.assertRaises(ValueError):
         stat.central_moment(k=-1)
 def test_bmoment_raises_on_incorrect_k(self):
     # Arrange
     stat = StatisticalValues([1, 2, 3, 2])
     # Act & Assert
     with self.assertRaises(ValueError):
         stat.begining_moment(k=0)