def assert_gvclose(self,x,y,rtol=<NUM_LIT>,atol=<NUM_LIT>,prt=False):
if hasattr(x,'<STR_LIT>') and hasattr(y,'<STR_LIT>'):<EOL><INDENT>if sorted(x.keys())==sorted(y.keys()):<EOL><INDENT>for k in x:<EOL><INDENT>self.assert_gvclose(x[k],y[k],rtol=rtol,atol=atol)<EOL><DEDENT>return<EOL><DEDENT>else:<EOL><INDENT>raise ValueError("<STR_LIT>")<EOL><DEDENT><DEDENT>self.assertSequenceEqual(np.shape(x),np.shape(y))<EOL>x = np.asarray(x).flat<EOL>y = np.asarray(y).flat<EOL>if prt:<EOL><INDENT>print(np.array(x))<EOL>print(np.array(y))<EOL><DEDENT>for xi,yi in zip(x,y):<EOL><INDENT>self.assertGreater(atol+rtol*abs(yi.mean),abs(xi.mean-yi.mean))<EOL>self.assertGreater(<NUM_LIT:10>*(atol+rtol*abs(yi.sdev)),abs(xi.sdev-yi.sdev))<EOL><DEDENT>
asserts that the means and sdevs of all x and y are close