Example #1
0
    def double_initialize_test(self):
        """Test for the error ocuring when the same error measure is initialized twice."""
        data = [[0.0, 0.0], [1, 0.1], [2, 0.2], [3, 0.3], [4, 0.4]]
        tsOrg = TimeSeries.from_twodim_list(data)
        tsCalc = TimeSeries.from_twodim_list(data)

        bem = BaseErrorMeasure()

        bem_calculate = bem._calculate
        bem_local_error = bem.local_error

        def return_zero(ignoreMe, ignoreMeToo):
            return 0

        # remove the NotImplementedErrors for initialization
        bem.local_error = return_zero
        bem._calculate = return_zero

        # correct initialize call
        bem.initialize(tsOrg, tsCalc)

        # incorrect initialize call
        for cnt in range(10):
            try:
                bem.initialize(tsOrg, tsCalc)
            except Exception:
                pass
            else:
                assert False  # pragma: no cover

        bem.local_error = bem_calculate
        bem._calculate = bem_local_error
Example #2
0
    def test_optimization_enabled(self):
        error = BaseErrorMeasure()
        error._enable_instance_optimization()

        cerror.initialize = Mock()
        
        error.initialize(None, None) #parameters irrelevant for this test
        assert cerror.initialize.called, "If optimization is enabled the c method should be called"
Example #3
0
    def get_error_initialization_test(self):
        """Test the get_error of BaseErrorMeasure for the initialization exception."""
        bem = BaseErrorMeasure()

        try:
            bem.get_error()
        except StandardError:
            pass
        else:
            assert False    # pragma: no cover
Example #4
0
    def confidence_interval_test(self):
        bem = BaseErrorMeasure()

        bem._errorValues = [10, -5, 3, -4, None, 0, 2, -3]

        self.assertRaises(ValueError, bem.confidence_interval, -0.5)
        self.assertRaises(ValueError, bem.confidence_interval, 2)

        self.assertEquals(bem.confidence_interval(0.5), (-3.0, 2.0))
        self.assertEquals(bem.confidence_interval(0.1), (0.0, 0.0))
Example #5
0
    def get_error_initialization_test(self):
        """Test the get_error of BaseErrorMeasure for the initialization exception."""
        bem = BaseErrorMeasure()

        try:
            bem.get_error()
        except Exception:
            pass
        else:
            assert False  # pragma: no cover
Example #6
0
    def confidence_interval_test(self):
        bem = BaseErrorMeasure()

        bem._errorValues = [10, -5, 3, -4, None, 0, 2, -3]

        self.assertRaises(ValueError, bem.confidence_interval, -0.5)
        self.assertRaises(ValueError, bem.confidence_interval, 2)

        self.assertEquals(bem.confidence_interval(0.5), (-3.0, 2.0))
        self.assertEquals(bem.confidence_interval(0.1), (0.0, 0.0))
Example #7
0
    def double_initialize_test(self):
        """Test for the error ocuring when the same error measure is initialized twice."""
        data   = [[0.0, 0.0], [1, 0.1], [2, 0.2], [3, 0.3], [4, 0.4]]
        tsOrg  = TimeSeries.from_twodim_list(data)
        tsCalc = TimeSeries.from_twodim_list(data)


        bem = BaseErrorMeasure()

        bem_calculate  = bem._calculate
        bem_local_error = bem.local_error

        def return_zero(ignoreMe, ignoreMeToo):
            return 0

        # remove the NotImplementedErrors for initialization
        bem.local_error = return_zero
        bem._calculate   = return_zero

        # correct initialize call
        bem.initialize(tsOrg, tsCalc)

        # incorrect initialize call
        for cnt in xrange(10):
            try:
                bem.initialize(tsOrg, tsCalc)
            except StandardError:
                pass
            else:
                assert False    # pragma: no cover

        bem.local_error = bem_calculate
        bem._calculate   = bem_local_error
Example #8
0
    def test_optimization_disabled(self):
        error = BaseErrorMeasure()
        error._disable_instance_optimization

        cerror.initialize = Mock()
        
        try:
            error.initialize(None, None) #parameters irrelevant for this test
        except:
            pass
        assert not cerror.initialize.called, "If optimization is disabled the c method should not be called"
Example #9
0
    def local_error_test(self):
        """Test local_error of BaseErrorMeasure."""
        data   = [[0.0, 0.0], [1, 0.1], [2, 0.2], [3, 0.3], [4, 0.4]]
        tsOrg  = TimeSeries.from_twodim_list(data)
        tsCalc = TimeSeries.from_twodim_list(data)

        bem = BaseErrorMeasure()

        for idx in xrange(len(tsOrg)):
            try:
                bem.local_error([tsOrg[idx][1]], [tsCalc[idx][1]])
            except NotImplementedError:
                pass
            else:
                assert False    # pragma: no cover
Example #10
0
    def local_error_test(self):
        """Test local_error of BaseErrorMeasure."""
        data = [[0.0, 0.0], [1, 0.1], [2, 0.2], [3, 0.3], [4, 0.4]]
        tsOrg = TimeSeries.from_twodim_list(data)
        tsCalc = TimeSeries.from_twodim_list(data)

        bem = BaseErrorMeasure()

        for idx in range(len(tsOrg)):
            try:
                bem.local_error([tsOrg[idx][1]], [tsCalc[idx][1]])
            except NotImplementedError:
                pass
            else:
                assert False  # pragma: no cover
Example #11
0
    def initialize_test(self):
        """Test if calculate throws an error as expected."""
        data   = [[0.0, 0.0], [1, 0.1], [2, 0.2], [3, 0.3], [4, 0.4]]
        tsOrg  = TimeSeries.from_twodim_list(data)
        tsCalc = TimeSeries.from_twodim_list(data)

        bem = BaseErrorMeasure()

        try:
            bem.initialize(tsOrg, tsCalc)
        except NotImplementedError:
            pass
        else:
            assert False    # pragma: no cover

        assert not bem.initialize(tsOrg, TimeSeries())
Example #12
0
    def test_function_call_is_transparent(self):
        """
        With and without optimization the method
        should be called with the same parameters.
        """
        old_error = BaseErrorMeasure.local_error
        BaseErrorMeasure.local_error = Mock()
        ts = TimeSeries.from_twodim_list([[1,1]])

        error = BaseErrorMeasure()
        error._enable_instance_optimization()
        error.initialize(ts, ts)

        error = BaseErrorMeasure()
        error._disable_instance_optimization()
        error.initialize(ts, ts)
Example #13
0
    def initialize_test(self):
        """Test if calculate throws an error as expected."""
        data = [[0.0, 0.0], [1, 0.1], [2, 0.2], [3, 0.3], [4, 0.4]]
        tsOrg = TimeSeries.from_twodim_list(data)
        tsCalc = TimeSeries.from_twodim_list(data)

        bem = BaseErrorMeasure()

        try:
            bem.initialize(tsOrg, tsCalc)
        except NotImplementedError:
            pass
        else:
            assert False  # pragma: no cover

        assert not bem.initialize(tsOrg, TimeSeries())
Example #14
0
    def initialization_test(self):
        """Test the BaseErrorMeasure initialization."""
        BaseErrorMeasure()

        for percentage in [-1.2, -0.1, 100.1, 123.9]:
            try:
                BaseErrorMeasure(percentage)
            except ValueError:
                pass
            else:
                assert False  # pragma: no cover

        for percentage in [0.0, 12.3, 53.4, 100.0]:
            try:
                BaseErrorMeasure(percentage)
            except ValueError:  # pragma: no cover
                assert False  # pragma: no cover
Example #15
0
    def get_error_values_test(self):
        bem = BaseErrorMeasure()
        bem._errorValues = [1, -1, 3, -5, 8]
        bem._errorDates = [1, 2, 3, 4, 5]

        self.assertEquals(bem._get_error_values(0, 100, None, None),
                          [1, -1, 3, -5, 8])
        self.assertEquals(bem._get_error_values(0, 100, 2, None),
                          [-1, 3, -5, 8])
        self.assertEquals(bem._get_error_values(0, 100, None, 4),
                          [1, -1, 3, -5])
        self.assertEquals(bem._get_error_values(0, 100, 2, 4), [-1, 3, -5])
        self.assertRaises(ValueError, bem._get_error_values, 0, 100, None, 0)
Example #16
0
    def number_of_comparisons_test(self):
        """ Test BaseErrorMeasure.initialize for behaviour if not enough dates match."""
        dataOrg  = [[0,0],[1,1],[2,2],[3,3],[4,4],[5,5],[6,6],[7,7],[8,8],[9,9]]
        dataCalc = [[0,0],[1,1],[2,2],[3,3],[4,4],[5.1,5],[6.1,6],[7.1,7],[8.1,8],[9.1,9]]

        tsOrg  = TimeSeries.from_twodim_list(dataOrg)
        tsCalc = TimeSeries.from_twodim_list(dataCalc)

        bem = BaseErrorMeasure(60.0)

        #prevent NotImplementedError
        bem.local_error = lambda a,b: 1

        mse = MeanSquaredError(80.0)
        # only 50% of the original TimeSeries have a corresponding partner
        if mse.initialize(tsOrg, tsCalc):
            assert False    # pragma: no cover

        if not mse.initialize(tsOrg, tsOrg):
            assert False    # pragma: no cover
Example #17
0
    def test_optimization_enabled(self):
        error = BaseErrorMeasure()
        error._enable_instance_optimization()

        cerror.initialize = Mock()

        error.initialize(None, None)  #parameters irrelevant for this test
        assert cerror.initialize.called, "If optimization is enabled the c method should be called"
Example #18
0
    def get_error_values_test(self):
        bem = BaseErrorMeasure()
        bem._errorValues = [1, -1, 3, -5, 8]
        bem._errorDates = [1,2,3,4,5]

        self.assertEquals(bem._get_error_values(0,100, None, None), [1,-1,3,-5,8])
        self.assertEquals(bem._get_error_values(0,100, 2, None), [-1,3,-5,8])
        self.assertEquals(bem._get_error_values(0,100, None, 4), [1,-1,3,-5])
        self.assertEquals(bem._get_error_values(0,100, 2, 4), [-1,3,-5])
        self.assertRaises(ValueError, bem._get_error_values, 0, 100, None, 0)
Example #19
0
    def test_optimization_disabled(self):
        error = BaseErrorMeasure()
        error._disable_instance_optimization()

        cerror.initialize = Mock()

        try:
            error.initialize(None, None)  #parameters irrelevant for this test
        except:
            pass
        assert not cerror.initialize.called, "If optimization is disabled the c method should not be called"
Example #20
0
    def get_error_parameter_test(self):
        """Test for the parameter validity of get_error()."""
        data   = [[0.0, 0.0], [1, 0.1], [2, 0.2], [3, 0.3], [4, 0.4]]
        tsOrg  = TimeSeries.from_twodim_list(data)
        tsCalc = TimeSeries.from_twodim_list(data)

        bem = BaseErrorMeasure()

        bem_calculate  = bem._calculate
        bem_local_error = bem.local_error

        def return_zero(ignoreMe, ignoreMeToo, andMe=None, andMeToo=None):
            return 0

        # remove the NotImplementedErrors for initialization
        bem.local_error = return_zero
        bem._calculate   = return_zero
        bem.initialize(tsOrg, tsCalc)

        bem.local_error = bem_local_error
        bem._calculate  = bem_calculate

        try:
            bem.get_error(10.0, 90.0)
        except NotImplementedError:
            pass
        else:
            assert False    # pragma: no cover

        for start in [-1.0, 80.0, 103.0]:
            for end in [-5.0, 10.0, 105.0]:
                try:
                    bem.get_error(start, end)
                except ValueError:
                    pass
                else:
                    assert False    # pragma: no cover
Example #21
0
    def get_error_parameter_test(self):
        """Test for the parameter validity of get_error()."""
        data = [[0.0, 0.0], [1, 0.1], [2, 0.2], [3, 0.3], [4, 0.4]]
        tsOrg = TimeSeries.from_twodim_list(data)
        tsCalc = TimeSeries.from_twodim_list(data)

        bem = BaseErrorMeasure()

        bem_calculate = bem._calculate
        bem_local_error = bem.local_error

        def return_zero(ignoreMe, ignoreMeToo, andMe=None, andMeToo=None):
            return 0

        # remove the NotImplementedErrors for initialization
        bem.local_error = return_zero
        bem._calculate = return_zero
        bem.initialize(tsOrg, tsCalc)

        bem.local_error = bem_local_error
        bem._calculate = bem_calculate

        try:
            bem.get_error(10.0, 90.0)
        except NotImplementedError:
            pass
        else:
            assert False  # pragma: no cover

        for start in [-1.0, 80.0, 103.0]:
            for end in [-5.0, 10.0, 105.0]:
                try:
                    bem.get_error(start, end)
                except ValueError:
                    pass
                else:
                    assert False  # pragma: no cover
Example #22
0
    def test_function_call_is_transparent(self):
        """
        With and without optimization the method
        should be called with the same parameters.
        """
        oldError = BaseErrorMeasure.local_error
        BaseErrorMeasure.local_error = Mock()
        ts = TimeSeries.from_twodim_list([[1, 1]])

        error = BaseErrorMeasure()
        error._enable_instance_optimization()
        error.initialize(ts, ts)

        error = BaseErrorMeasure()
        error._disable_instance_optimization()
        error.initialize(ts, ts)
        BaseErrorMeasure.local_error = oldError