Skip to main content

Posts

Showing posts with the label comparison

How to compare two generic dictionaries

Zilele acestea mi-a fost pusa urmatoarea intrebare: Intr-un unit test care este cea mai buna modalitate de a compara doua colectii? Daca va aduceti aminte, in urma cu cateva saptamani am discutat despre CollectionAssert . Aceasta contine o metoda denumita AreEquivalent , care verifica daca doua colectii sunt echivalente. Testul o sa treaca de acest assert daca: numarul de elemente este egal cele doua colectii contin aceleasi elemente( indiferent de ordinea in care apar) Doua elemente din colectie sunt egale nu daca puncteaza spre acelasi element ci daca sunt egale prin continut( se apeleaza metoda Equals, pentru a face aceasta verificare). In cazul nostru, metoda AreEquivalent o sa itereze prin intreaga colectie de element KeyValuePair pe care un dictionar le contine. Dictionary<string,string> collection1=new Dictionary<string, string>(); Dictionary<string, string> collection2 = new Dictionary<string, string>(); ... CollectionAssert.AreEquivalent(collection1,c...

Definirea unui mecanism de comparare a entitatiilor din punct de vedere a structurii folosind IStructuralEquatable

Uneori avem nevoie sa putem compara clasele de tip POCO ca pe niste structuri. De exemplu daca avem clasa Student, dorim sa comparam entitatile de acest tip din punct de vedere a datelor pe care le contin. class Student { public string Nume{ get;set;} public string Prenume{ get;set;} public int Varsta{ get;set;} } Pentru acest lucru sa folosim IStructuralEquatable . Aceasta interfata a fost creata pentru a fi folosita in tupluri. In cazul acestora, doua tupluri sunt egale daca fiecare element din tuplu este egal din celalalt tuplu. Interfata contine doua metode: bool Equals(Object other, IEqualityComparer comparer); int GetHashCode(IEqualityComparer comparer); Prin intermediul parametrului comparer se defineste mecanismul de comparare. Exista cateva implementari in .NET pentru IEqualityComparer prin care putem sa comparam siruriile de elemente - element cu element. Valoarea default a acestui parametru este EqualityComparer > Object < .Default.Equals in cazul in care se foloseste...

Cloud: Pret estimativ Windows Azure, Amazon, Google

Cu cateva saptamani in urma am fost la o prezentare tinuta de C. Jichici cu tema Windows Azure, iar apoi am tinut doua prezentari pe aceiasi tema. Intrebarea pe care am auzit-o cel mai des a fost: Cat costa estimativ? Am incercat sa caut niste costuri estimative dar nu am gasit. Am realizat ca un calcul estimativ este foarte greu de facut, deoarece fiecare solutie pentru cloud( Azure, Amazon, Google) are costuri ascunse si/sau modul de calcul este foarte diferit. O sa incerc sa fac un calcul estimativ pentru un set de cerinte pe care o sa le enumar mai jos. Vreau sa subliniez faptul ca aceste costuri sunt pur estimative, vreau sa fie doar un punct de pornire. O sa fac calcul pentru 4 variante: Azure, Amazon, Google si costul unui server propriu-zis. Cerinte pentru o aplicatie pe perioada unei luni: Trafic out 100Gb Trafic in 20Gb Spatiu de stocare 20Gb Spatiu de stocare in db 2Gb Numar de tranzactii total(db+fisiere stocate) 1,000,000 Compute time 62 In urma calculelor estimative pe ca...