lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Uwe Schindler" <...@thetaphi.de>
Subject RE: [JENKINS] Lucene-Solr-trunk-Linux-Java8-64 - Build # 15 - Failure!
Date Sat, 14 Jul 2012 12:22:47 GMT
Some typo in last example (toString() missing):

> If you want to compare by String and you only have a HashMap/HashSet, the
> trick is:
> 
>  assertEquals("map differs", "{items....}", new
TreeMap(someMapToTest).toString());

-----
Uwe Schindler
H.-H.-Meier-Allee 63, D-28213 Bremen
http://www.thetaphi.de
eMail: uwe@thetaphi.de


> -----Original Message-----
> From: Uwe Schindler [mailto:uwe@thetaphi.de]
> Sent: Saturday, July 14, 2012 2:20 PM
> To: dev@lucene.apache.org
> Subject: RE: [JENKINS] Lucene-Solr-trunk-Linux-Java8-64 - Build # 15 -
Failure!
> 
> Hi,
> 
> 
> > "... tests doing Map.toString() and compare against a hardcoded String
> (which
> > is of course wrong for HashMaps or HashSets because order is
undefined)."
> >
> > Map.toString sounds like a great operation to forbid in Solr/Lucene,
> especially
> > in tests. Although Map.toString is still helpful for debug/logging,
> > what
> would
> > really be helpful are two things: 1) display the map sorted/ordered by
> key, and
> > 2) compare two maps for equality (build a map to compare against
> > rather
> than
> > using a presumed toString value.) And, an "assertMapEquals" method as
> well.
> > Maybe even a "assertMapKeys" method that simply verifies that the keys
> > of
> a
> > map are "equal" to a list of keys (set equality but not order.)
> 
> assertMapEquals can be done with assertEquals easily, you just have to
pass a
> full map as comparison base:
> 
> 	assertEquals("map differs", new HashMap() {{ map.put(...);....}},
> someMapToTest);
> 
> For Sets it is much easier:
> 
> 	assertEquals("set differs", new HashSet(Arrays.asList(<items>)),
> someSetToTest);
> 
> The semantics of Map/Set.equals() (see interface docs) explicitely specify
that
> any type of Map or Set must compare against another one, so you can
compare
> a TreeMap against a HashMap for equality.
> 
> If you want to compare by String and you only have a HashMap/HashSet, the
> trick is:
> 
> 	assertEquals("map differs", "{items....}", new
> TreeMap(someMapToTest));
> 
> By that you enforce order (with cloning the map, but that's not a perf
problem
> in tests).
> 
> Uwe
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org For additional
> commands, e-mail: dev-help@lucene.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org


Mime
View raw message