#!/usr/bin/python3

"""
PE002: Even Fibonnaci numbers


Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be:

1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...

By considering the terms in the Fibonacci sequence whose values do not exceed four million, find the sum of the even-valued terms.
"""

import itertools
from .utils import fibonacci


def main(n=4_000_000):
    """ Return the sum of all even values in the Fibonacci sequence <= n. """
    return sum(f for f in itertools.takewhile(n.__ge__, fibonacci(1, 2)) if f % 2 == 0)