gap> K:=RegularCWComplex(ClosedSurface(1));;
gap> Y:=DirectProduct(K,K);;
gap> cup:=CupProductOfRegularCWComplex_alt(Y);;
gap> cup(2,2,[1,0,0,0,0,0],[0,1,0,0,0,0]);
[ 5 ]

gap> D:=DiagonalApproximation(Y);;
gap> p:=D!.projection;
Map of regular CW-complexes

gap> P:=ChainMap(p);
Chain Map between complexes of length 4 . 

gap> IsIsomorphismOfAbelianFpGroups(Homology(P,0));
true
gap> IsIsomorphismOfAbelianFpGroups(Homology(P,2));
true
gap> IsIsomorphismOfAbelianFpGroups(Homology(P,3));
true
gap> IsIsomorphismOfAbelianFpGroups(Homology(P,4));
true
