def run_new(): s = create_state() us = create_state() commands = { 'adaugare': new_UI_add_tz, 'print': new_UI_print, 'stergeri': new_UI_stergeri_section, 'cautari': new_UI_cautari_section, 'rapoarte': new_UI_rapoarte_section, 'undo': new_UI_undo } while True: new_UI_help() command = input("Dati comanda: ") x = command.split(' ') cmd = x[0] if cmd == 'exit': print("Iesire din aplicatie...") return if cmd in commands: try: commands[cmd](s, us, x) except ValueError as ex: print(str(ex)) else: print("Comanda invalida")
def run(): s = create_state() us = create_state() commands = { 'adaugare': UI_add_tz, 'print': UI_print, 'stergeri': UI_stergeri_section, 'cautari': UI_cautari_section, 'filtrari': UI_filtrari_section, 'rapoarte': UI_rapoarte_section, 'undo': UI_undo } while True: UI_help() command = input("Dati comanda: ") if command == 'exit': print("Iesire din aplicatie...") return if command in commands: try: commands[command](s, us) except ValueError as ex: print(str(ex)) else: print("Comanda invalida")
def test_add_tz(): s = create_state() s2 = create_state() zi = 1 suma = 100 tip = 'intrare' tz = create_tz(zi, suma, tip) add_tz(s, tz) add_tz(s2, tz) assert (s == s2)
def test_sv_el_tz_small_and_type(): s = create_state() s2 = create_state() tz1 = create_tz(10, 100, 'intrare') add_tz(s, tz1) tz2 = create_tz(15, 150, 'iesire') add_tz(s, tz2) tz3 = create_tz(50, 200, 'intrare') add_tz(s, tz3) T = 'intrare' S = 120 add_tz(s2, tz2) add_tz(s2, tz3) assert (sv_el_tz_small_and_type(S, T, s) == s2)
def test_sv_tz_tip_ord(): s = create_state() T = 'intrare' assert (sv_tz_tip_ord(T, s) == 'Lista este goala!') tz1 = create_tz(1, 100, 'intrare') add_tz(s, tz1) tz2 = create_tz(3, 200, 'intrare') add_tz(s, tz2) tz3 = create_tz(2, 50, 'iesire') add_tz(s, tz3) tz4 = create_tz(4, 20, 'iesire') add_tz(s, tz4) s2 = create_state() add_tz(s2, tz1) add_tz(s2, tz2) assert (sv_tz_tip_ord(T, s) == s2)
def test_sv_del_tz_zi(): s = create_state() Z = 2 assert (sv_del_tz_zi(s, Z) == 'Lista este goala!') tz1 = create_tz(1, 100, 'intrare') add_tz(s, tz1) tz2 = create_tz(1, 200, 'intrare') add_tz(s, tz2) tz3 = create_tz(2, 50, 'iesire') add_tz(s, tz3) tz4 = create_tz(2, 20, 'iesire') add_tz(s, tz4) s2 = create_state() add_tz(s2, tz1) add_tz(s2, tz2) assert (sv_del_tz_zi(s, Z) == s2)
def test_undo(): s = create_state() us = create_state() tz1 = create_tz(1, 100, 'intrare') add_tz(s, tz1) us.append(tz1) tz2 = create_tz(2, 200, 'iesire') add_tz(s, tz2) us2 = create_state() us2.append(tz1) us2.append(tz1) us.append(us2.copy()) s2 = create_state() add_tz(s2, tz1) del s[:] s += sv_undo(s, us).copy() assert (us == s2)
def test_sv_el_tz_tip(): s = create_state() s2 = create_state() tz1 = create_tz(10, 100, 'intrare') add_tz(s, tz1) tz2 = create_tz(15, 150, 'iesire') add_tz(s, tz2) tz3 = create_tz(50, 200, 'intrare') add_tz(s, tz3) add_tz(s2, tz1) add_tz(s2, tz3) T = 'iesire' assert (sv_el_tz_tip(T, s) == s2) s2 = create_state() add_tz(s2, tz2) T = 'intrare' assert (sv_el_tz_tip(T, s) == s2)
def test_sv_del_tz_tip(): s = create_state() T = 'intrare' assert (sv_del_tz_tip(s, T) == 'Lista este goala!') tz1 = create_tz(1, 100, 'intrare') add_tz(s, tz1) tz2 = create_tz(1, 200, 'intrare') add_tz(s, tz2) tz3 = create_tz(2, 50, 'iesire') add_tz(s, tz3) tz4 = create_tz(3, 20, 'iesire') add_tz(s, tz4) s2 = create_state() add_tz(s2, tz3) add_tz(s2, tz4) assert (sv_del_tz_tip(s, T) == s2) s3 = create_state() T = 'iesire' assert (sv_del_tz_tip(s, T) == s3)
def sv_el_tz_small_and_type(S,T,s): ''' Functie ce elimina toate tranzactiile de tipul : T mai mici decat suma : S din lista : s input : T - up tip, S - o suma, s - lista tranzactiilor output : el_list : lista dupa eliminari ''' s2=create_state() for tz in s: if tz_anumit_tip(tz,T)==False or get_suma(tz)>=S: add_tz(s2,tz) return s2
def sv_el_tz_tip(T,s): ''' Functie ce elimina toate tranzactiile de tipul : T din lista : s input - T - tipul dorit, s : lista tranzactiilor output : el_list : lista dupa eliminari ''' s2=create_state() for tz in s: if tz_anumit_tip(tz,T)==False: add_tz(s2, tz) return s2
def test_sv_del_tz_per(): s = create_state() Z1 = 2 Z2 = 5 assert (sv_del_tz_per(s, Z1, Z2) == 'Lista este goala!') tz1 = create_tz(1, 100, 'intrare') add_tz(s, tz1) tz2 = create_tz(1, 200, 'intrare') add_tz(s, tz2) tz3 = create_tz(2, 50, 'iesire') add_tz(s, tz3) tz4 = create_tz(3, 20, 'iesire') add_tz(s, tz4) Z1 = 1 Z2 = 2 s2 = create_state() add_tz(s2, tz4) assert (sv_del_tz_per(s, Z1, Z2) == s2) Z1 = 2 Z2 = 1 assert (sv_del_tz_per(s, Z1, Z2) == s2)
def UI_el_tz_tip(s, us): while True: try: T = input("Introduceti tipul: ") if T != 'intrare' and T != 'iesire': raise Exception("Tip incorect!") break except Exception as ex: print(ex) s2 = create_state() s2 = sv_el_tz_tip(T, s).copy() print('Lista fara tranzactii de tipul ' + T + ' este: ') UI_print(s2, us)
def sv_undo(s,us): if lenght(us)==0: return "Can't undo no more" elif lenght(us)==1: del s[:] return s else: us.pop(len(us)-1) s2=create_state() s2+=us[lenght(us)-1] del s[:] s=s2.copy() return s
def sv_sum_gr8_than(S,s): ''' Functie ce creeaza o lista cu tranzactii din lista : s care are tranzactii mai mari decat suma : S input - S : suma cu care trebuie comparate tranzactiile, s : lista de tranzactii output - gr_list : lista cu tranzactii mai mari decat suma : S ''' if S<0: raise ValueError("Suma trebuie sa fie un numar pozitiv!") gr8_s=create_state() for tz in s: if sum_gr8_than(S,tz)==True: gr8_s.append(tz) return gr8_s
def sv_tz_anumit_tip(T,s): ''' Functie ce creeaza o lista cu tranzactii din lista : s care are tranzactii de tipul : T input - T : tipul dorit, s : lista tranzactiilor output : lista de tranzactii de tipul : T ''' #if T!=str('intrare') or T!=str('iesire'): # raise ValueError("Tipul trebuie sa fie 'intrare' sau 'iesire'!") tip_s=create_state() for tz in s: if tz_anumit_tip(tz,T)==True: tip_s.append(tz) return tip_s
def test_sv_sold(): s = create_state() Z = 5 assert (sv_sold(Z, s) == 'Lista este goala!') tz1 = create_tz(1, 100, 'intrare') add_tz(s, tz1) tz2 = create_tz(3, 200, 'intrare') add_tz(s, tz2) tz3 = create_tz(2, 50, 'iesire') add_tz(s, tz3) tz4 = create_tz(4, 20, 'iesire') add_tz(s, tz4) assert (sv_sold(Z, s) == 230) Z = 2 assert (sv_sold(Z, s) == 50)
def UI_el_tz_small_and_type(s, us): while True: try: T = input("Introduceti tipul: ") S = input("Introduceti suma: ") if T != 'intrare' and T != 'iesire': raise Exception("Tip incorect!") S = float(S) break except Exception as ex: print(ex) s2 = create_state() s2 = sv_el_tz_small_and_type(S, T, s).copy() print('Lista fara tranzactii de tipul ', T, ' si mai mici decat ', S, ' este: ') UI_print(s2, us)
def test_sv_sum_tip(): s = create_state() T = 'intrare' assert (sv_sum_tip(T, s) == 'Lista este goala!') tz1 = create_tz(10, 100, 'intrare') add_tz(s, tz1) T = 'iesire' assert (sv_sum_tip(T, s) == 0) tz2 = create_tz(15, 150, 'iesire') add_tz(s, tz2) tz3 = create_tz(50, 200, 'intrare') add_tz(s, tz3) T = 'intrare' assert (sv_sum_tip(T, s) == 300) T = 'iesire' assert (sv_sum_tip(T, s) == 150)
def new_UI_stergeri_section(s, us, x): s2 = create_state() if s == s2: print("Lista este goala!") return commands = {"1": UI_del_tz_zi, "2": UI_del_tz_per, "3": UI_del_tz_tip} while True: UI_help_stergeri_section() command = input("Dati comanda: ") if command == "return": print("Iesire din sectiunea de stergeri...") return if command in commands: commands[command](s, us) else: print("Comanda invalida!")
def new_UI_rapoarte_section(s, us, x): s2 = create_state() if s == s2: print("Lista este goala") return commands = {"1": UI_sum_tip, "2": UI_sold, "3": UI_tz_tip_ord} while True: UI_help_rapoarte_section() command = input("Dati comanda: ") if command == "return": print("Iesire din sectiunea de rapoarte...") return if command in commands: commands[command](s, us) else: print("Comanda invalida!")
def sv_b4_day_gr8_than(S,Z,s): ''' Functie ce creeaza o lista cu tranzactii din lista : s care are tranzactii cu suma mai mare decat suma : S si cu ziua mai mare decat ziua : Z input - S : suma cu care trebuie comparate tranzactiile, Z : ziua cu care trebuie comparate tranzactiile, s : lista de tranzactii output - b4_gr_list : lista care are tranzactii cu suma mai mare decat suma : S si cu ziua mai mare decat ziua : Z ''' if S<0: raise ValueError("Suma trebuie sa fie un numar pozitiv!") if Z<=0: raise ValueError("Ziua trebuie sa fie un numar pozitiv!") b4_gr8_s=create_state() for tz in s: if b4_day_gr8_than(S, Z, tz)==True: b4_gr8_s.append(tz) return b4_gr8_s
def sv_tz_tip_ord(T,s): ''' Functie ce tipareste toate tranzactiile de un anumit tip, ordonate dupa suma input : T - un tip, s - lista tranzactiilor output : s3 - lista tranzactiilor de un anumit tip ''' if lenght(s)==0: return 'Lista este goala!' s2=s.copy() for i in range(0,lenght(s2)-1,1): for j in range(i+1,lenght(s2),1): if get_suma(s2[i])>get_suma(s2[j]): s2[i],s2[j]=s2[j],s2[i] s3=create_state() for tz in s2: if get_tip(tz)==T: add_tz(s3, tz) return s3
def add_undo(s,us): s2=create_state() s2=s.copy() us.append(s2.copy())