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()
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)
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])
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))
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])
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])
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()
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")
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)
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
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]
def ans(): total = 0 num = 1 while num < 4000000: if num % 2 == 0: total += num num = Fibonacci.after(num) return total
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)))
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))
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)
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')
def test_fibonacci(self): """.""" self.assertEqual([i for i in Fibonacci(5)], [0, 1, 1, 2, 3])
def main(): F = Fibonacci() ans = F.get_fibs_by_upper_limit(4000000) print sum([l for l in ans if l % 2 == 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)] == []
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]
def test_4_for_2(): """Test to check what value is returned for 2""" assert [fib for fib in Fibonacci(2)] == [0, 1, 1]
def test_3_for_1(): """Test to check what value is returned for 1""" assert [fib for fib in Fibonacci(1)] == [0, 1]
def test_2_for_0(): """Test to check what value is returned for 0""" assert [fib for fib in Fibonacci(0)] == [0]
def test_fib_raises_type_error_input_list(self): self.assertRaises(TypeError, Fibonacci().fib, [1,2,3] )
def test_fib_raises_type_error_input_string(self): self.assertRaises(TypeError, Fibonacci().fib, "one")
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]")
def setUpClass(self): self.fibonacci = Fibonacci()
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]
def setUp(self): self._fib = Fibonacci()
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))
def test_fib_three_numbers(self): self.assertEqual(Fibonacci().fib(3), [0, 1, 1], msg="Expected [0, 1, 1]")