class testProblem2(unittest.TestCase):
    def setUp(self):
        self.fib = Fibonacci(1,2).generate()
        self.fib_number = [1,2,3,5,8,13,21,34,55,89]
    def testFibonacci(self):
        for number in range(0,len(self.fib_number)):
            self.assertEquals(self.fib.next(),self.fib_number[number])
    def testSumOfEvenValue(self):
        self.__first = 1
        self.__second = 2 
        self.assertEqual(Problem2(self.__first,self.__second).SumOfEvenValue(10),10)
        self.assertEqual(Problem2(self.__first,self.__second).SumOfEvenValue(100),44)
class Problem2(object):
    def __init__(self,first,second):
        self.__first = first
        self.__second = second
        self.__answer = 0
    def SumOfEvenValue(self,maxValue):
        self.__maxValue = maxValue
        self.__fib = Fibonacci(self.__first,self.__second).generate()
        while True:
            self.__fib_Value = self.__fib.next()
            if(self.__fib_Value <= self.__maxValue):
                if((self.__fib_Value % 2) == 0):
                    self.__answer += self.__fib_Value
            else:
                break
        return self.__answer