Ejemplo n.º 1
0
 def __init__(self, host='127.0.0.1', port=8080):
     self._host = host
     self._port = port
     self._app = Flask(__name__)
     self._init_logging()
     self._add_routes()
     self._fib = Fibonacci()
Ejemplo n.º 2
0
def set_json(length, seed, parent_win):
    """Setuj JSON reprezentaciju niza zadate dužine i početne vrednosti.

    Funkcija setuje globalnu promenljivu ``json_sequence`` koja sadrži JSON
    prikaz niza sa dodatnim podacima koja se prikazuje u korisničkom
    interfejsu.

    Args:
        length (int): Dužina niza.
        seed (int): Početna vrednost niza.
        parent_win (tk.Toplevel): Prozor iz kog se funkcija pokreće.  Služi za
            prosleđivanje te informacije dijalogu za izveštaj o grešci.

    """
    # Ukoliko je uneta nevalidna vrednost za dužinu ili početnu vrednost, to
    # hvatamo ovde i prikazujemo poruku u dijalogu.
    try:
        f = Fibonacci(length, seed)
        json_fib_sequence.set(f.json())
    except ValueError:
        messagebox.showerror(
            "Pogrešna vrednost",
            "Dužina niza mora biti različita od 0, a početna vrednost mora "
            "biti validan Fibonačijev broj.",
            parent=parent_win)
Ejemplo n.º 3
0
class FibonacciTestCase(unittest.TestCase):
    def setUp(self):
        self.fibonacci = Fibonacci()

    def test_it_returns_the_first_two_numbers_of_the_fibonacci_sequence(self):
        num = 2
        result = self.fibonacci.sequence(num)
        self.assertEqual(result, [0, 1])

    def test_it_returns_the_first_three_numbers_of_the_fibonacci_sequence(
            self):
        num = 3
        result = self.fibonacci.sequence(num)
        self.assertEqual(result, [0, 1, 1])

    def test_it_returns_the_first_four_numbers_of_the_fibonacci_sequence(self):
        num = 4
        result = self.fibonacci.sequence(num)
        self.assertEqual(result, [0, 1, 1, 2])

    def test_it_returns_the_first_fifteen_numbers_of_the_fib_sequence(self):
        num = 15
        result = self.fibonacci.sequence(num)
        self.assertEqual(
            result, [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377])
Ejemplo n.º 4
0
def main():
    fibbo = Fibonacci()
    # print_fibonacci_numbers(fibbo)
    N = 2
    nth_fibbo = fibbo.get_nth_fibbo_number(N)
    print("Fibbonacci number for {} is {}".format(
        N, nth_fibbo))
Ejemplo n.º 5
0
 def test_fib(self):
     self.assertEqual(Fib.fib(0, 0), [0])
     self.assertEqual(Fib.fib(0, 1), [0, 1, 1])
     self.assertEqual(Fib.fib(0, 6), [0, 1, 1, 2, 3, 5])
     self.assertEqual(Fib.fib(0, 144),
                      [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144])
     self.assertEqual(Fib.fib(144, 0),
                      [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144])
Ejemplo n.º 6
0
class FibonacciTest(unittest.TestCase):
    def setUp(self):
        self._fib = Fibonacci()

    def test_limit(self):
        self.assertEqual(self._fib.sequence(0, 0), [0])
        self.assertEqual(self._fib.sequence(1, 1), [1])

    def test_normal(self):
        self.assertEqual(self._fib.sequence(3, 5), [2, 3, 5])

    def test_large(self):
        x = self._fib.sequence(0, 100)
        self.assertEqual(len(x), 101)
        self.assertEqual(x[97], 83621143489848422977)
        self.assertEqual(x[98], 135301852344706746049)
        self.assertEqual(x[99], 218922995834555169026)

    def test_xlarge(self):
        """Result is too long so just verify the first and last 32 digits of
        the last number
        """
        x = self._fib.sequence(0, 100000)
        self.assertEqual(len(x), 100001)
        s = str(x[99999])
        self.assertEqual(len(s), 20899)
        self.assertEqual(s[:32], '16052857682729819697035016991663')
        self.assertEqual(s[-32:], '35545120747688390605016278790626')

    def test_reset_cache(self):
        self._fib.sequence(0, 5)
        self._fib.reset_cache()
        self.assertEqual(self._fib.get_cache(), [0, 1])
Ejemplo n.º 7
0
 def __init__(self, host=config.HOST, port=config.PORT):
     self._host = host
     self._port = port
     self._app = flask.Flask(__name__)
     self._add_routes()
     self._fib = Fibonacci()
     self._init_env()
     self._init_logging()
     self._health = HealthCheck(self._app, "/health")
     self._add_mongo_check()
     self._add_fib_service_check()
Ejemplo n.º 8
0
def test_1_limit_type():
    """
    Using the class for anythin other than int ValueError should be raised.
    """
    fib = Fibonacci("12.15")
    with pytest.raises(ValueError):
        if not isinstance(fib, int):
            raise ValueError("Function only workS for Integers")
    fib = Fibonacci(12.15)
    with pytest.raises(ValueError):
        if not isinstance(fib, int):
            raise ValueError("Function only workS for Integers")
Ejemplo n.º 9
0
class TestFibonacci(unittest.TestCase):
    @classmethod
    def setUpClass(self):
        self.fibonacci = Fibonacci()

    def test_fib(self):
        result = self.fibonacci.fib(9)
        self.assertEqual(result, 34)

    def test_fib_recursive(self):
        result = self.fibonacci.fib_recursive(9)
        self.assertEqual(result, 34)
Ejemplo n.º 10
0
class TestFibonacci(unittest.TestCase):

    @classmethod
    def setUpClass(self):
        self.fibonacci = Fibonacci()

    def test_fib(self):
        result = self.fibonacci.fib(9)
        self.assertEqual(result, 34)

    def test_fib_recursive(self):
        result = self.fibonacci.fib_recursive(9)
        self.assertEqual(result, 34)
Ejemplo n.º 11
0
def get_single_fibonacci():
    """ POST new fibonnaci number """
    if not request.json or not 'position' in request.json:
        abort(400)
    position = request.json['position']
    viewedFibonacci[position] = Fibonacci().calc_fib(position)
    return jsonify({'Position %s' % position: viewedFibonacci[position]}), 201
Ejemplo n.º 12
0
class FibonacciShouldReturn(TestCase):
    def setUp(self):
        self.fibonacci = Fibonacci()

    def test_zeroForFirstNumber(self):
        self.assertEqual(0, self.getNumberAtIndex(0))

    def test_oneForSecondNumber(self):
        self.assertEqual(1, self.getNumberAtIndex(1))

    def test_oneForThirdNumber(self):
        self.assertEqual(1, self.getNumberAtIndex(2))

    def test_twoForFourthNumber(self):
        self.assertEqual(2, self.getNumberAtIndex(3))

    def test_threeForFifthNumber(self):
        self.assertEqual(3, self.getNumberAtIndex(4))

    def test_fiveForSixthNumber(self):
        self.assertEqual(5, self.getNumberAtIndex(5))

    def test_hugeValueForFiftiethNumber(self):
        self.assertTrue(self.getNumberAtIndex(49) > 1000000000)

    def getNumberAtIndex(self, index):
        return self.fibonacci.generate(index + 1)[index]
Ejemplo n.º 13
0
def ans():
    total = 0
    num = 1
    while num < 4000000:
        if num % 2 == 0:
            total += num
        num = Fibonacci.after(num)
    return total
Ejemplo n.º 14
0
def result():
    number = request.args.get("number")
    number = int(number)
    response = Fibonacci(number).iter()
    paragraphe = lorem.paragraph()
    return render_template("results.html",
                           response=response,
                           paragraphe=paragraphe)
    def test_challenge4(self):
        # print("go to ...")

        f = Fibonacci()
        fibo = f.fibo

        for i in range(1, 49):
            print("The numerical value of level", i,
                  "of the fibonacci sequence is", int_to_english(fibo(i)))
Ejemplo n.º 16
0
def set_sequence(length, seed, parent_win):
    """Setuj niz sa određenom dužinom i početnom vrednošću.

    Funkcija setuje globalnu promenljivu ``fib_sequence`` koja se ispisuje u
    korisničkom interfejsu.

    Args:
        length (int): Dužina niza.
        seed (int): Početna vrednost niza.
        parent_win (tk.Toplevel): Prozor iz kog se funkcija pokreće.  Služi za
            prosleđivanje te informacije dijalogu za izveštaj o grešci.

    """
    # Ukoliko je uneta nevalidna vrednost za dužinu ili početnu vrednost, to
    # hvatamo ovde i prikazujemo poruku u dijalogu.
    try:
        f = Fibonacci(length, seed)
        fib_sequence.set(str(f.sequence()))
    except ValueError:
        messagebox.showerror(
            "Pogrešna vrednost",
            "Dužina niza mora biti različita od 0, a početna vrednost mora "
            "biti validan Fibonačijev broj.",
            parent=parent_win)
class Challenge4(unittest.TestCase):

    def setUp(self):
        # code to startup webdriver
        self.driver = webdriver.Chrome("../chromedriver")
        self.fib = Fibonacci()
        self.numberSpeller = NumberSpeller()

    def tearDown(self):
        # code to close webdriver
        self.driver.close()

    def test_challenge4(self):
        # code for our test steps
        fibonacci_number = self.fib.getFibonacciNumber(50)
        print(str(fibonacci_number) + " - " + self.numberSpeller.spellNumber(fibonacci_number))
Ejemplo n.º 18
0
def set_nth(position, parent_win):
    """Setuj vrednost Fibonačijevog broja na datoj poziciji.

    Funkcija setuje globalnu promenljivu ``fib_ord_num`` na vrednost
    Fibonačijevog broja na zadatoj poziciji.

    Args:
        position (int): Pozicija (redni broj) u Fibonačijevom nizu.
        parent_win (tk.Toplevel): Prozor iz kog se funkcija pokreće.  Služi za
            prosleđivanje te informacije dijalogu za izveštaj o grešci.

    """
    # Kao i u prethodnim funkcijama, hvatamo nevalidne vrednosti.
    try:
        fib_ord_num.set(Fibonacci.nth(position))
    except ValueError:
        messagebox.showerror("Pogrešna vrednost",
                             "Redni broj mora biti pozitivan.",
                             parent=parent_win)
Ejemplo n.º 19
0
class FibonacciTest(unittest.TestCase):

    def setUp(self):
        self._fib = Fibonacci()

    def test_generator(self):
        x = self._fib.generate(4)
        self.assertEqual(next(x), 0)
        self.assertEqual(next(x), 1)
        self.assertEqual(next(x), 1)
        self.assertEqual(next(x), 2)
        self.assertRaises(StopIteration, next, x)

    def test_minimal(self):
        self.assertEqual(self._fib.sequence(0), [])
        self.assertEqual(self._fib.sequence(1), [0])
        self.assertEqual(self._fib.sequence(2), [0, 1])

    def test_normal(self):
        self.assertEqual(self._fib.sequence(6), [0, 1, 1, 2, 3, 5])

    def test_large(self):
        x = self._fib.sequence(100)
        self.assertEqual(len(x), 100)
        self.assertEqual(x[97], 83621143489848422977)
        self.assertEqual(x[98], 135301852344706746049)
        self.assertEqual(x[99], 218922995834555169026)

    def test_xlarge(self):
        """Result is too long so just verify the first and last 32 digits of
        the last number
        """
        x = self._fib.sequence(100000)
        self.assertEqual(len(x), 100000)
        s = str(x[99999])
        self.assertEqual(len(s), 20899)
        self.assertEqual(s[:32], '16052857682729819697035016991663')
        self.assertEqual(s[-32:], '35545120747688390605016278790626')
Ejemplo n.º 20
0
class FibonacciTest(unittest.TestCase):
    def setUp(self):
        self._fib = Fibonacci()

    def test_generator(self):
        x = self._fib.generate(4)
        self.assertEqual(next(x), 0)
        self.assertEqual(next(x), 1)
        self.assertEqual(next(x), 1)
        self.assertEqual(next(x), 2)
        self.assertRaises(StopIteration, next, x)

    def test_minimal(self):
        self.assertEqual(self._fib.sequence(0), [])
        self.assertEqual(self._fib.sequence(1), [0])
        self.assertEqual(self._fib.sequence(2), [0, 1])

    def test_normal(self):
        self.assertEqual(self._fib.sequence(6), [0, 1, 1, 2, 3, 5])

    def test_large(self):
        x = self._fib.sequence(100)
        self.assertEqual(len(x), 100)
        self.assertEqual(x[97], 83621143489848422977)
        self.assertEqual(x[98], 135301852344706746049)
        self.assertEqual(x[99], 218922995834555169026)

    def test_xlarge(self):
        """Result is too long so just verify the first and last 32 digits of
        the last number
        """
        x = self._fib.sequence(100000)
        self.assertEqual(len(x), 100000)
        s = str(x[99999])
        self.assertEqual(len(s), 20899)
        self.assertEqual(s[:32], '16052857682729819697035016991663')
        self.assertEqual(s[-32:], '35545120747688390605016278790626')
Ejemplo n.º 21
0
    def test_fibonacci(self):
        """."""

        self.assertEqual([i for i in Fibonacci(5)], [0, 1, 1, 2, 3])
Ejemplo n.º 22
0
Archivo: 002.py Proyecto: m-a-t-h/peppy
def main():
    F = Fibonacci()
    ans = F.get_fibs_by_upper_limit(4000000)
    print sum([l for l in ans if l % 2 == 0])
Ejemplo n.º 23
0
def test_7_for_negative():
    """Test to check an empty list is returned on entering a negative number"""
    assert [fib for fib in Fibonacci(-10)] == []
Ejemplo n.º 24
0
def test_6_for_10():
    """Test to check what value is returned for 10"""
    assert [fib
            for fib in Fibonacci(10)] == [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55]
Ejemplo n.º 25
0
def test_4_for_2():
    """Test to check what value is returned for 2"""
    assert [fib for fib in Fibonacci(2)] == [0, 1, 1]
Ejemplo n.º 26
0
def test_3_for_1():
    """Test to check what value is returned for 1"""
    assert [fib for fib in Fibonacci(1)] == [0, 1]
Ejemplo n.º 27
0
def test_2_for_0():
    """Test to check what value is returned for 0"""
    assert [fib for fib in Fibonacci(0)] == [0]
Ejemplo n.º 28
0
 def test_fib_raises_type_error_input_list(self):
     self.assertRaises(TypeError, Fibonacci().fib, [1,2,3] )
Ejemplo n.º 29
0
 def test_fib_raises_type_error_input_string(self):
     self.assertRaises(TypeError, Fibonacci().fib, "one")
Ejemplo n.º 30
0
 def test_fib_ten_numbers(self):
     self.assertEqual(Fibonacci().fib(10), [0, 1, 1, 2, 3, 5, 8, 13, 21, 34], msg="Expected [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]")
Ejemplo n.º 31
0
 def setUpClass(self):
     self.fibonacci = Fibonacci()
Ejemplo n.º 32
0
def test_5_for_4():
    """Test to check what value is returned for 4"""
    assert [fib for fib in Fibonacci(4)] == [0, 1, 1, 2, 3]
Ejemplo n.º 33
0
 def setUp(self):
     self._fib = Fibonacci()
Ejemplo n.º 34
0
from app import app
from flask import render_template, request, redirect, jsonify
from fibonacci import Fibonacci

F = Fibonacci()


@app.route('/')
def index():
    return render_template('index.html')


@app.route('/fibonacci', methods=['GET', 'POST'])
def fibonacci():
    if request.method == 'POST':
        try:
            req = request.form
            n = req['Entry']
            result = F.get_n(n)
            return render_template('result.html', n=n, result=result)
        except (TypeError, ValueError):
            return render_template('error.html')
    return render_template('index.html')


@app.route('/history')
def history():
    hist = [int(x) for x in F.get_history()]
    fibo = F.get_dict()
    hist_val = [fibo[str(x)] for x in hist]
    return render_template('history.html', items=zip(hist, hist_val))
Ejemplo n.º 35
0
 def test_fib_three_numbers(self):
     self.assertEqual(Fibonacci().fib(3), [0, 1, 1], msg="Expected [0, 1, 1]")