Wednesday, 23 July 2008

QuickCheck strikes again

I've just finished converting ListGT from the collections package. ListGT has never seen the light of QuickCheck. Running my test suite on it for the first time was quite scary. I'm not sure yet how much of this is due to actual bugs and how much is due to illphrased tests but I've certainly got my work cut out for me over the next few days.

*Test.GMap> run 100
prop_lookup_empty : OK, passed 100 tests.
prop_lookup_singleton : OK, passed 100 tests.
prop_insert_with : Falsifiable, after 63 tests:
fromAssocs [([],5),([-5],-2),([3,0,4,4,-6,-4,4,7,7],0),([7,-4,-7,-8],4),([7,4,0,-8,3,-8,8,0],6),([7,7,8,-4,8,-2,-1,-1,-1],5)]
([],-6)
prop_insert_without : OK, passed 100 tests.
prop_insertWith_with : Falsifiable, after 30 tests:
fromAssocs [([],2),([3,5,8,1,-1],-5)]
([],11,2,)
prop_insertWith_without : OK, passed 100 tests.
prop_insertWith'_with : Falsifiable, after 1 tests:
fromAssocs [([],2),([1],-2)]
([-2],1,-2,)
prop_insertWith'_without : OK, passed 100 tests.
prop_insertMaybe_with : Falsifiable, after 16 tests:
fromAssocs [([],-6),([-3,-7,-4,1,0,-6,5],-3),([-2,1,3,-5,-6,5],-7),([-1,7],2)]
([],-1,2,)
prop_insertMaybe_without : OK, passed 100 tests.
prop_insertMaybe'_with : Falsifiable, after 30 tests:
fromAssocs [([],-13),([-12,-1,-4],-5),([-8,-5,-4,-5,-14,-13,-5,-9,-2,1,0,2,8],-3),([-8,-5,-3,-1,-13],9),([-7,5,16,15,-9,16,6,7,15,9],11),([-1,-8,5,-12,-1,8,2,7,-12],-1),([6,6,-8,2,11,-10,2,-1,-2,-7,-9,-10,13,-9,13,0],5),([7,1,-16,16,-14,-5,16,14,-7,16,-13,7,9],-3),([10,1,-9,15],-1),([12,-13,2,4],-10),([13,-10,4,-8,-4,9,-7,-1,-13,13,8,-11,-8,7,6,5],-6),([15,-5,9,-10,6,9,-3],-12),([15,12,13,-8],7)]
([],0,-8,)
prop_insertMaybe'_without : OK, passed 100 tests.
prop_delete_with : OK, passed 100 tests.
prop_delete_without : OK, passed 100 tests.
prop_adjustWith_with : Falsifiable, after 6 tests:
fromAssocs [([],3),([-5,-4,-2,-3,-4,6],3),([0,5,3],5),([4,6,-5,0,5,-5],-2),([6,0],-1)]
([],1,)
prop_adjustWith_without : OK, passed 100 tests.
prop_adjustWith'_with : Falsifiable, after 20 tests:
fromAssocs [([],11),([-10,6,9,7],0),([-9,4,1,11,0,-10,11],6),([-4,-4,0,3,3,-3,6,9,3],8),([-4,-2],-9),([-2,11,7,-2,-8,11,4,-4,-3,7,-6],10),([-1,-1,-5,3,0,-3,8,-9,7,-7],3),([3,2,-4,3,-8,9,7],-3),([4,7,2,-2,-8],7),([11,9,11,-9,0],-11)]
([],8,)
prop_adjustWith'_without : OK, passed 100 tests.
prop_adjustMaybe_with : Falsifiable, after 0 tests:
fromAssocs [([],2)]
([],-3,)
prop_adjustMaybe_without : OK, passed 100 tests.
prop_adjustMaybe'_with : Falsifiable, after 33 tests:
fromAssocs [([],1),([-2,2],0)]
([],0,)
prop_adjustMaybe'_without : OK, passed 100 tests.
prop_isSubsetOf : OK, passed 100 tests.
prop_isSubmapOf : OK, passed 100 tests.
prop_map : Falsifiable, after 9 tests:
fromAssocs [([],-2),([2,2],-2)]
([],0,)
prop_map' : Falsifiable, after 10 tests:
fromAssocs [([],0)]
([],-1,)
prop_mapMaybe : Falsifiable, after 3 tests:
fromAssocs [([],3),([-3,-1,0],2),([-2,1,3],-1)]
([],-2,)
prop_mapMaybe' : Falsifiable, after 5 tests:
fromAssocs [([],0),([2],0)]
([2],-3,)
prop_mapWithKey : Falsifiable, after 10 tests:
fromAssocs [([],-7),([-7,-5,6,-4,4,-2],-6),([-6,3,2,5],-5),([0,-5,-3,-1,-5,6],-3),([0,-3,4],0),([2,-3,-3,-5,5,-3,1],2)]
([],3,)
prop_mapWithKey' : Falsifiable, after 5 tests:
fromAssocs [([],0)]
([],2,)
prop_filter_in : Falsifiable, after 10 tests:
fromAssocs [([],-2),([-5,-4],-5),([-4,-3,-5,3,0],0),([5,4],4)]
([],2)
prop_filter_out : Falsifiable, after 57 tests:
fromAssocs [([-1],-1)]
([-1],0)
prop_valid : OK, passed 100 tests.
prop_lazy_alter : OK, passed 100 tests.
prop_strict_alter' : Falsifiable, after 5 tests:
fromAssocs [([],1)]
[]
prop_lazy_insertWith : OK, passed 100 tests.
prop_strict_insertWith' : OK, passed 100 tests.
prop_lazy_insertMaybe : OK, passed 100 tests.
prop_strict_insertMaybe' : Falsifiable, after 0 tests:
fromAssocs []
[]
prop_lazy_adjustWith : OK, passed 100 tests.
prop_strict_adjustWith' : Falsifiable, after 0 tests:
fromAssocs [([],3),([-1,-1],-1),([1,-1],-2)]
([0,3,-2],1)
prop_lazy_adjustMaybe : OK, passed 100 tests.
prop_strict_adjustMaybe' : Falsifiable, after 0 tests:
fromAssocs [([],1)]
([],-1)
prop_lazy_map : OK, passed 100 tests.
prop_strict_map' : OK, passed 100 tests.
prop_lazy_mapMaybe : OK, passed 100 tests.
prop_strict_mapMaybe' : Falsifiable, after 3 tests:
fromAssocs [([-3,1,-3],1),([1,-2,3],-3),([2,-4,-4],2),([3,3],-1)]
([0,4],0)
prop_lazy_mapWithKey : OK, passed 100 tests.
prop_strict_mapWithKey' : OK, passed 100 tests.
prop_lazy_foldKeys : OK, passed 100 tests.
prop_strict_foldKeys' : OK, passed 100 tests.
prop_lazy_foldElems : OK, passed 100 tests.
prop_strict_foldElems' : OK, passed 100 tests.
prop_lazy_foldAssocs : OK, passed 100 tests.
prop_strict_foldAssocs' : OK, passed 100 tests.
propO_keysAsc : OK, passed 100 tests.
propO_keysDesc : OK, passed 100 tests.
propO_elemsAsc : OK, passed 100 tests.
propO_elemsDesc : OK, passed 100 tests.
propO_assocsAsc : OK, passed 100 tests.
propO_assocsDesc : OK, passed 100 tests.
propO_lazy_foldKeysAsc : OK, passed 100 tests.
propO_lazy_foldKeysAsc' : OK, passed 100 tests.
propO_lazy_foldKeysDesc : OK, passed 100 tests.
propO_lazy_foldKeysDesc' : OK, passed 100 tests.
propO_lazy_foldElemsAsc : OK, passed 100 tests.
propO_lazy_foldElemsAsc' : OK, passed 100 tests.
propO_lazy_foldElemsDesc : OK, passed 100 tests.
propO_lazy_foldElemsDesc' : OK, passed 100 tests.
propO_lazy_foldAssocsAsc : OK, passed 100 tests.
propO_lazy_foldAssocsAsc' : OK, passed 100 tests.
propO_lazy_foldAssocsDesc : OK, passed 100 tests.
propO_lazy_foldAssocsDesc' : OK, passed 100 tests.
prop2_lazy_merge : OK, passed 100 tests.
prop2_strict_merge' : Falsifiable, after 17 tests:
(fromAssocs [],fromAssocs [([-3,3],6)])
([3,3],-4)
prop2_lazy_union : OK, passed 100 tests.
prop2_strict_union' : OK, passed 100 tests.
prop2_lazy_unionMaybe : OK, passed 100 tests.
prop2_strict_unionMaybe' : OK, passed 100 tests.
prop2_lazy_intersection : OK, passed 100 tests.
prop2_strict_intersection' : OK, passed 100 tests.
prop2_lazy_intersectionMaybe : OK, passed 100 tests.
prop2_strict_intersectionMaybe' : OK, passed 100 tests.
prop2_lazy_differenceMaybe : OK, passed 100 tests.
prop2_strict_differenceMaybe' : OK, passed 100 tests.
comp_empty : OK, passed 100 tests.
comp_singleton : OK, passed 100 tests.
comp_pair : OK, passed 100 tests.
comp_status : OK, passed 100 tests.
comp_nonEmpty : OK, passed 100 tests.
comp_addSize : OK, passed 100 tests.
comp_lookup : OK, passed 100 tests.
comp_lookupCont : OK, passed 100 tests.
comp_alter : OK, passed 100 tests.
comp_alter' : Falsifiable, after 0 tests:
([([-3,-2],-3)],([-2],))
comp_insertWith : OK, passed 100 tests.
comp_insertWith' : Falsifiable, after 1 tests:
([([],-1)],([],1,))
comp_insertMaybe : OK, passed 100 tests.
comp_insertMaybe' : OK, passed 100 tests.
comp_delete : OK, passed 100 tests.
comp_adjustWith : OK, passed 100 tests.
comp_adjustWith' : OK, passed 100 tests.
comp_adjustMaybe : OK, passed 100 tests.
comp_adjustMaybe' : OK, passed 100 tests.
comp_map : OK, passed 100 tests.
comp_map' : OK, passed 100 tests.
comp_mapMaybe : OK, passed 100 tests.
comp_mapMaybe' : OK, passed 100 tests.
comp_mapWithKey : OK, passed 100 tests.
comp_mapWithKey' : OK, passed 100 tests.
comp_filter : OK, passed 100 tests.
comp_insert : Falsifiable, after 20 tests:
([([],2)],([],-1))
comp_size : OK, passed 100 tests.
comp_insertAssocs : OK, passed 100 tests.
comp_fromAssocs : OK, passed 100 tests.
comp_fromAssocsWith : OK, passed 100 tests.
comp_keys : OK, passed 100 tests.
comp_elems : OK, passed 100 tests.
comp_assocs : OK, passed 100 tests.
compO_insertAssocsAscWith : OK, passed 100 tests.
compO_insertAssocsDescWith : OK, passed 100 tests.
compO_insertAssocsAscMaybe : OK, passed 100 tests.
compO_insertAssocsDescMaybe : OK, passed 100 tests.
compO_foldElemsAsc : OK, passed 100 tests.
compO_foldElemsDesc : OK, passed 100 tests.
compO_foldElemsAsc' : OK, passed 100 tests.
compO_foldElemsDesc' : OK, passed 100 tests.
compO_foldKeysAsc : OK, passed 100 tests.
compO_foldKeysDesc : OK, passed 100 tests.
compO_foldKeysAsc' : OK, passed 100 tests.
compO_foldKeysDesc' : OK, passed 100 tests.
compO_foldAssocsAsc : OK, passed 100 tests.
compO_foldAssocsDesc : OK, passed 100 tests.
compO_foldAssocsAsc' : OK, passed 100 tests.
compO_foldAssocsDesc' : OK, passed 100 tests.
compO_fromAssocsAscWith : OK, passed 100 tests.
compO_fromAssocsDescWith : OK, passed 100 tests.
compO_fromAssocsAscMaybe : OK, passed 100 tests.
compO_fromAssocsDescMaybe : OK, passed 100 tests.
compO_elemsAsc : OK, passed 100 tests.
compO_elemsDesc : OK, passed 100 tests.
compO_keysAsc : OK, passed 100 tests.
compO_keysDesc : OK, passed 100 tests.
compO_assocsAsc : OK, passed 100 tests.
compO_assocsDesc : OK, passed 100 tests.
comp2_merge : Falsifiable, after 2 tests:
(([([1],2),([-3,4,-3,4],-2),([3],-2)],[([3,3],-1),([2,4,-2,-1],-1),([4,-3,-3,-4],-3)]),(,))
comp2_merge' : Falsifiable, after 7 tests:
(([([4],-5),([-2,4,-2,4],-4)],[([],3),([-2,-5],-1),([4,3,-5],-3)]),(,))
comp2_union : OK, passed 100 tests.
comp2_union' : OK, passed 100 tests.
comp2_unionMaybe : OK, passed 100 tests.
comp2_unionMaybe' : OK, passed 100 tests.
comp2_intersection : OK, passed 100 tests.
comp2_intersection' : OK, passed 100 tests.
comp2_intersectionMaybe : OK, passed 100 tests.
comp2_intersectionMaybe' : OK, passed 100 tests.
comp2_difference : OK, passed 100 tests.
comp2_differenceMaybe : OK, passed 100 tests.
comp2_differenceMaybe' : OK, passed 100 tests.
comp2_isSubsetOf : OK, passed 100 tests.
comp2_isSubmapOf : OK, passed 100 tests.
comp2_isProperSubsetOf : OK, passed 100 tests.
comp2_isProperSubmapOfBy : OK, passed 100 tests.

0 comments:

About Me