>>> from quantitats import resumeix_quantitats Unitats: - Volum: cm³. - Massa: g. >>> canvi_unitats = { ... 'cm³': 1, ... 'cl': 10, ... 'dl': 100, ... 'l': 1000, ... 'kg': 1000, ... 'g': 1, ... 'lb': 453.59237, ... } >>> consum = [ ... ('clorur sòdic', 100, 'dg'), ... ('aigua oxigenada', 2, 'cl'), ... ('mini', 0.3, 'kg'), ... ('querosè', 200, 'l'), ... ('aigua oxigenada', 5, 'dl'), ... ('querosè', 1, 'dm³'), ... ('clorur sòdic', 4, 'lb'), ... ] >>> r, n = resumeix_quantitats(consum, canvi_unitats) >>> if r != { ... 'aigua oxigenada': 520, ... 'mini': 300, ... 'querosè': 200000, ... 'clorur sòdic': 1814.36948, ... }: print(r) # doctesttag: +TAG=1_quantitats >>> n # doctesttag: +TAG=1_quantitats [('clorur sòdic', 100, 'dg'), ('querosè', 1, 'dm³')] >>> canvi_unitats = { ... 'cm³': 1, ... 'cl': 10, ... 'dl': 100, ... 'l': 1000, ... 'kg': 1000, ... 'g': 1, ... 'lb': 453.59237, ... 'cm': 1, ... 'm': 100, ... } >>> consum = [ ... ('Aa', 235, 'cm'), ... ('Aa', 1, 'm'), ... ('Aa', 3, 'dm'), ... ('Bb', 5, 'kg'), ... ('Bb', 876, 'g'), ... ('Cc', 123, 'mm'), ... ('Dd', 2, 'l'), ... ('Dd', 35, 'cl'), ... ('Dd', 287, 'mm³'), ... ('Dd', 68, 'dl'), ... ] >>> r, n = resumeix_quantitats(consum, canvi_unitats) >>> if r != { ... 'Aa': 335, ... 'Bb': 5876, ... 'Dd': 9150, ... }: print(r) # doctesttag: +TAG=1_quantitats >>> n # doctesttag: +TAG=1_quantitats [('Aa', 3, 'dm'), ('Cc', 123, 'mm'), ('Dd', 287, 'mm³')] >>> consum = [ ... ] >>> r, n = resumeix_quantitats(consum, canvi_unitats) >>> if r != { ... }: print(r) # doctesttag: +TAG=1_quantitats >>> n # doctesttag: +TAG=1_quantitats [] >>> consum = [ ... ('Xx', 10, 'm'), ... ('Yy', 20, 'cl'), ... ('Z', 30, 'dl'), ... ('T', 40, 'g'), ... ] >>> r, n = resumeix_quantitats(consum, canvi_unitats) >>> if r != {'Xx': 1000, 'Yy': 200, 'Z': 3000, 'T': 40}: print(r) # doctesttag: +TAG=1_quantitats >>> n # doctesttag: +TAG=1_quantitats [] >>> consum = [ ... ('Ll', 100, 'ml'), ... ('Ll', 10, 'l'), ... ('M', 1, 'm'), ... ('M', 23, 'cm'), ... ('N', 2, 'kg'), ... ('N', 836, 'g'), ... ('O', 1000, 'mm³'), ... ('O', 10, 'cm³'), ... ] >>> r, n = resumeix_quantitats(consum, canvi_unitats) >>> if r != {'Ll': 10000, 'M': 123, 'N': 2836, 'O': 10}: print(r) # doctesttag: +TAG=1_quantitats >>> n # doctesttag: +TAG=1_quantitats [('Ll', 100, 'ml'), ('O', 1000, 'mm³')] >>> from texts import compta_paraules_linia >>> linia = "AMABLE fill, intenció es obra de entenimente de volentat qui s mou \ ... a donar compliment a la cosa desirada e entesa. E intenció es actu de natural \ ... apetit, qui requer la perfeccio que li coue naturalment." >>> par = ['amable', 'De', 'Intenció', 'ment', 'xilòfon'] >>> r = compta_paraules_linia(linia, par) >>> r # doctesttag: +TAG=2_texts-1_compta_paraules_linia 'amable 1 de 4 intenció 2 ment 3' >>> linia = "donar compliment a la cosa desirada e entesa. E intenció es actu de" >>> par = ['fedivers', 'internet', 'protocol'] >>> r = compta_paraules_linia(linia, par) >>> r # doctesttag: +TAG=2_texts-1_compta_paraules_linia '' >>> linia = "donar compliment a la cosa desirada e entesa. E intenció es actu de" >>> par = [] >>> r = compta_paraules_linia(linia, par) >>> r # doctesttag: +TAG=2_texts-1_compta_paraules_linia '' >>> linia = "Aquesta intenció, fill, de que tu has necessitat, es \ ... departida en dues maneres, ço es a saber, primera intenció e \ ... segona. Es la primera meylor e pus noble que la segona, per ço cor es \ ... pus vtil e pus necessaria; e la primera es començament de la segona, e \ ... la segona es moguda per la primera, en tal manera, que la segona es \ ... instrument [1] e apareylament [2] con la primera intenció haja ço que \ ... li coue, segons son compliment. A exemplificar me coue, fill, abdues \ ... les intencións, per ço que n pusques hauer conexença. E car yo trebayl \ ... en ta vtilitat, trebayla tu en entendre ço que yo t mostre de \ ... intenció, e enten e remembret d aquestes paraules, per ço que moltes \ ... vegades membres e ames e entenes [3] intenció en ta conexença. § Si \ ... tu, fill, fas fer vn libre a alcun escriua, tu has la primera intenció \ ... a fer lo libre, e has la segona a donar diners a n aquell escriua qui \ ... t fa lo libre." >>> par = ['ço', 'intenció', 'Libre', 'trebayl', 'enten', 'primer', 'YO', 'aquest'] >>> r = compta_paraules_linia(linia, par) >>> r # doctesttag: +TAG=2_texts-1_compta_paraules_linia 'ço 6 intenció 7 libre 3 trebayl 2 enten 3 primer 6 yo 2 aquest 2' >>> linia = "aAa xy bB qw bb BB er AAA qw AaA aaa yt aaab baaa yu cccc Cccc abb as" >>> par = ['Aaa', 'bb', 'Cccc', 'abc'] >>> r = compta_paraules_linia(linia, par) >>> r # doctesttag: +TAG=2_texts-1_compta_paraules_linia 'aaa 6 bb 4 cccc 2' >>> linia = "d eee ff de deee ffd D EEE FF" >>> par = ['d', 'abc', 'eeE'] >>> r = compta_paraules_linia(linia, par) >>> r # doctesttag: +TAG=2_texts-1_compta_paraules_linia 'd 5 eee 3' >>> import os >>> from texts import escriu_paraules_linies >>> text = """\ ... Tenia quatre banderes, tres les vaig perdre en combat; la bandera que fa quatre ... l'he desada en un calaix. ... No la'n trauré fins que bufi ben fort el vent de llevant ... i s'endugui aquest mal aire que ens toca de respirar.""" >>> nft = 'text-0.txt' >>> with open(nft, 'w') as f: r = f.write(text) >>> nfr = 'paraules-0.txt' >>> paraules = ['quatre', 'cinc', 'bander', 'que'] >>> escriu_paraules_linies(nft, paraules, nfr) >>> with open(nfr, 'r') as f: print(f.read()) # doctesttag: +NORMALIZE_WHITESPACE +TAG=2_texts-2_escriu_paraules_linies 1 quatre 2 bander 2 que 1 3 que 1 4 que 2 >>> try: ... os.remove(nfr) ... except FileNotFoundError: ... pass >>> text = """\ ... AMABLE fill, intenció es obra de enteniment e de volentat qui s mou a donar compliment a la cosa desirada e entesa. E intenció es actu de ... natural apetit, qui requer la perfeccio que li coue naturalment. Aquesta intenció, fill, de que tu has necessitat, es ... departida en dues maneres, ço es a saber, primera intenció e segona. Es la primera meylor e pus noble que la segona, per ço cor es ... pus vtil e pus necessaria; e la primera es començament de la segona, e la segona es moguda per la primera, en tal manera, que la segona es ... instrument [1] e apareylament [2] con la primera intenció haja ço que li coue, segons son compliment. A exemplificar me coue, fill, abdues ... les intencións, per ço que n pusques hauer conexença. E car yo trebayl en ta vtilitat, trebayla tu en entendre ço que yo t mostre de ... intenció, e enten e remembret d aquestes paraules, per ço que moltes vegades membres e ames e entenes [3] intenció en ta conexença. § Si tu, fill, fas fer vn libre a alcun escriua, tu has la primera""" >>> nft = 'text-1.txt' >>> with open(nft, 'w') as f: r = f.write(text) >>> nfr = 'paraules-1.txt' >>> paraules = ['Amable', 'intenció', 'ço', 'elefant', 'yo', 'segon', 'peix'] >>> escriu_paraules_linies(nft, paraules, nfr) >>> with open(nfr, 'r') as f: print(f.read()) # doctesttag: +NORMALIZE_WHITESPACE +TAG=2_texts-2_escriu_paraules_linies 1 amable 1 intenció 2 2 intenció 1 3 intenció 1 ço 2 segon 2 4 segon 3 5 intenció 1 ço 1 segon 1 6 intenció 1 ço 2 yo 2 7 intenció 2 ço 1 >>> try: ... os.remove(nfr) ... except FileNotFoundError: ... pass >>> nfr = 'paraules-2.txt' >>> paraules = ['natural', 'lleó', 'primer', 'trebayl'] >>> escriu_paraules_linies(nft, paraules, nfr) >>> with open(nfr, 'r') as f: print(f.read()) # doctesttag: +NORMALIZE_WHITESPACE +TAG=2_texts-2_escriu_paraules_linies 2 natural 2 3 primer 2 4 primer 2 5 primer 1 6 trebayl 2 7 primer 1 >>> try: ... os.remove(nfr) ... except FileNotFoundError: ... pass >>> nfr = 'paraules-3.txt' >>> paraules = ['carn', 'peix', 'blat'] >>> escriu_paraules_linies(nft, paraules, nfr) >>> with open(nfr, 'r') as f: print(f.read()) # doctesttag: +NORMALIZE_WHITESPACE +TAG=2_texts-2_escriu_paraules_linies >>> try: ... os.remove(nfr) ... except FileNotFoundError: ... pass >>> text = """\ ... AMABLE fill, finit es aquest libre DE INTENCIÓ, ab gracia e ab ajuda de Deu. E con intenció vera haja, fill, perduda sa possessio en los dames homens, e per priuacio de ordonada intenció sia [1] lo mon pus fortment en error e en trebayl que per altra cosa, per ço te prech e t coman, [2] ... molt carament, ab justicia e ab amor e temor, que tu plores e plangues lo dampnatge qui s segueix en lo mon, per ço con les gents no han intenció dretament en lurs obres. E no tan solament te prech, fill, planyer e plorar, ans te prech e t man desirar homens molt sauis [3] e deuots, ardits e seruents, que en breu temps vagen ... e venguen prehicar per lo mon con a intenció sia restituida veritat, consciencia, ordinacio, honrament e perfeccio. § Fill, si has vlls sapies veser, e si has oreyles sapies ne ohir, e si has memoria sapies ne membrar, per ço que ab ton enteniment sapies entendre, e ab ta volentat amar ço que Deus ha ordonat en lo mon a ordonament de intenció; ... [4] cor per ço, fill, ha lo ferrer, fuster, sabater, e han los altres manestrals tantes coses en lurs officis que singularment ab cascuna de aquelles coses, e comunament ab totes, seguexen la ordinacio de intenció, per ço que per aquella ordinacio vs hom de virtuts contra vicis couinablement, longament, feruentment, justament, tement, conexent e amant Deu.""" >>> nft = 'text-2.txt' >>> with open(nft, 'w') as f: r = f.write(text) # doctesttag: +NORMALIZE_WHITESPACE +TAG=2_texts-2_escriu_paraules_linies >>> try: ... os.remove(nfr) ... except FileNotFoundError: ... pass >>> nfr = 'paraules-1.txt' >>> paraules = ['Amable', 'intenció', 'ço', 'elefant', 'ment', 'segon', 'peix'] >>> escriu_paraules_linies(nft, paraules, nfr) >>> with open(nfr, 'r') as f: print(f.read()) # doctesttag: +NORMALIZE_WHITESPACE +TAG=2_texts-2_escriu_paraules_linies 1 amable 1 intenció 3 ço 1 ment 1 2 intenció 1 ço 1 ment 3 3 intenció 2 ço 2 ment 3 4 intenció 1 ço 2 ment 7 >>> try: ... os.remove(nfr) ... except FileNotFoundError: ... pass >>> nfr = 'paraules-2.txt' >>> paraules = ['natural', 'lleó', 'hom', 'trebayl'] >>> escriu_paraules_linies(nft, paraules, nfr) >>> with open(nfr, 'r') as f: print(f.read()) # doctesttag: +NORMALIZE_WHITESPACE +TAG=2_texts-2_escriu_paraules_linies 1 hom 1 trebayl 1 2 hom 1 4 hom 1 >>> try: ... os.remove(nfr) ... except FileNotFoundError: ... pass >>> nfr = 'paraules-3.txt' >>> paraules = [] >>> escriu_paraules_linies(nft, paraules, nfr) >>> with open(nfr, 'r') as f: print(f.read()) # doctesttag: +NORMALIZE_WHITESPACE +TAG=2_texts-2_escriu_paraules_linies >>> try: ... os.remove(nfr) ... except FileNotFoundError: ... pass >>> from math import atan >>> from series_invtrigo import termes >>> eps = 1e-6 >>> z = 0.5 >>> r = termes(z, eps) >>> list(map(lambda t: round(t, 6), r)) # doctesttag: +TAG=3_series_invtrigo [0.5, -0.041667, 0.00625, -0.001116, 0.000217, -4.4e-05, 9e-06, -2e-06] >>> abs(sum(r) - atan(z)) < eps and abs(sum(r[:-1]) - atan(z)) >= eps # doctesttag: +TAG=3_series_invtrigo True >>> eps = 1e-4 >>> z = 0.9 >>> r = termes(z, eps) >>> list(map(lambda t: round(t, 5), r)) # doctesttag: +TAG=3_series_invtrigo [0.9, -0.243, 0.1181, -0.06833, 0.04305, -0.02853, 0.01955, -0.01373, 0.00981, -0.00711, 0.00521, -0.00385, 0.00287, -0.00215, 0.00162, -0.00123, 0.00094, -0.00072, 0.00055, -0.00042, 0.00032, -0.00025, 0.00019] >>> abs(sum(r) - atan(z)) < eps and abs(sum(r[:-1]) - atan(z)) >= eps # doctesttag: +TAG=3_series_invtrigo True >>> eps = 1e-10 >>> z = 0.1 >>> r = termes(z, eps) >>> list(map(lambda t: round(t, 10), r)) # doctesttag: +TAG=3_series_invtrigo [0.1, -0.0003333333, 2e-06, -1.43e-08, 1e-10] >>> abs(sum(r) - atan(z)) < eps and abs(sum(r[:-1]) - atan(z)) >= eps # doctesttag: +TAG=3_series_invtrigo True >>> eps = 1e-10 >>> z = 0.3 >>> r = termes(z, eps) >>> list(map(lambda t: round(t, 10), r)) # doctesttag: +TAG=3_series_invtrigo [0.3, -0.009, 0.000486, -3.12429e-05, 2.187e-06, -1.61e-07, 1.23e-08, -1e-09] >>> abs(sum(r) - atan(z)) < eps and abs(sum(r[:-1]) - atan(z)) >= eps # doctesttag: +TAG=3_series_invtrigo True >>> eps = 1e-4 >>> z = 0.7 >>> r = termes(z, eps) >>> list(map(lambda t: round(t, 5), r)) # doctesttag: +TAG=3_series_invtrigo [0.7, -0.11433, 0.03361, -0.01176, 0.00448, -0.0018, 0.00075, -0.00032] >>> abs(sum(r) - atan(z)) < eps and abs(sum(r[:-1]) - atan(z)) >= eps # doctesttag: +TAG=3_series_invtrigo True >>> eps = 1e-6 >>> z = 0.6 >>> r = termes(z, eps) >>> list(map(lambda t: round(t, 6), r)) # doctesttag: +TAG=3_series_invtrigo [0.6, -0.072, 0.015552, -0.003999, 0.00112, -0.00033, 0.0001, -3.1e-05, 1e-05, -3e-06] >>> abs(sum(r) - atan(z)) < eps and abs(sum(r[:-1]) - atan(z)) >= eps # doctesttag: +TAG=3_series_invtrigo True >>> eps = 1e-7 >>> z = 0.2 >>> r = termes(z, eps) >>> list(map(lambda t: round(t, 7), r)) # doctesttag: +TAG=3_series_invtrigo [0.2, -0.0026667, 6.4e-05, -1.8e-06] >>> abs(sum(r) - atan(z)) < eps and abs(sum(r[:-1]) - atan(z)) >= eps # doctesttag: +TAG=3_series_invtrigo True >>> eps = 1e-6 >>> z = 0.4 >>> r = termes(z, eps) >>> list(map(lambda t: round(t, 6), r)) # doctesttag: +TAG=3_series_invtrigo [0.4, -0.021333, 0.002048, -0.000234, 2.9e-05, -4e-06] >>> abs(sum(r) - atan(z)) < eps and abs(sum(r[:-1]) - atan(z)) >= eps # doctesttag: +TAG=3_series_invtrigo True >>> eps = 1e-5 >>> z = 0.8 >>> r = termes(z, eps) >>> list(map(lambda t: round(t, 5), r)) # doctesttag: +TAG=3_series_invtrigo [0.8, -0.17067, 0.06554, -0.02996, 0.01491, -0.00781, 0.00423, -0.00235, 0.00132, -0.00076, 0.00044, -0.00026, 0.00015, -9e-05, 5e-05, -3e-05, 2e-05] >>> abs(sum(r) - atan(z)) < eps and abs(sum(r[:-1]) - atan(z)) >= eps # doctesttag: +TAG=3_series_invtrigo True >>> eps = 1e-5 >>> z = 0.95 >>> r = termes(z, eps) >>> list(map(lambda t: round(t, 5), r)) # doctesttag: +TAG=3_series_invtrigo [0.95, -0.28579, 0.15476, -0.09976, 0.07003, -0.05171, 0.03949, -0.03089, 0.0246, -0.01986, 0.01622, -0.01336, 0.0111, -0.00927, 0.00779, -0.00658, 0.00558, -0.00475, 0.00405, -0.00347, 0.00298, -0.00256, 0.00221, -0.00191, 0.00165, -0.00143, 0.00124, -0.00108, 0.00094, -0.00082, 0.00072, -0.00063, 0.00055, -0.00048, 0.00042, -0.00037, 0.00032, -0.00028, 0.00025, -0.00022, 0.00019, -0.00017, 0.00015, -0.00013, 0.00012, -0.0001, 9e-05, -8e-05, 7e-05, -6e-05, 6e-05, -5e-05, 4e-05, -4e-05, 3e-05, -3e-05, 3e-05, -2e-05, 2e-05] >>> abs(sum(r) - atan(z)) < eps and abs(sum(r[:-1]) - atan(z)) >= eps # doctesttag: +TAG=3_series_invtrigo True