def test_equals_same(self): ddesc1 = DimensionDesc('x', size=1, unlimited=True) ddesc2 = DimensionDesc('x', size=1, unlimited=True) actual = ddesc1 expected = ddesc2 print_test_message('DimensionDesc == DimensionDesc', actual=str(actual), expected=str(expected)) self.assertEqual(actual, expected, 'Identical DimensionDesc objects not equal')
def test_reset(self): expected = DimensionDesc('x', 1) actual = DimensionDesc('y', 2) actual.set(expected) print_test_message('DimensionDesc.set()', actual=str(actual), expected=str(expected)) self.assertEqual(actual.name, 'y', 'DimensionDesc name not correct after set') self.assertEqual(actual.size, expected.size, 'DimensionDesc size not correct after set')
def test_equals_diff_1set(self): ddesc1 = DimensionDesc('x', 1, True) ddesc2 = DimensionDesc('x') actual = ddesc1 expected = ddesc2 print_test_message('DimensionDesc(1) == DimensionDesc(2)', actual=str(actual), expected=str(expected)) self.assertNotEqual(actual, expected, 'Set DimensionsDesc equals unset DimensionDesc')
def test_unique_single(self): indata = [DimensionDesc('x', 1)] actual = DimensionDesc.unique(indata) expected = OrderedDict((d.name, d) for d in indata) print_test_message('DimensionDesc.unique([d1])', indata=indata, actual=actual, expected=expected) self.assertEqual(actual, expected, 'DimensionDesc.unique fails with single-item list')
def test_equals_same_unset(self): ddesc1 = DimensionDesc('x') ddesc2 = DimensionDesc('x') actual = ddesc1 expected = ddesc2 print_test_message('DimensionDesc(1) == DimensionDesc(2)', actual=str(actual), expected=str(expected)) self.assertEqual(actual, expected, 'Unset DimensionsDesc not equal to unset DimensionDesc')
def test_unique_all_unique(self): indata = [DimensionDesc('x', 1), DimensionDesc('y', 1)] actual = DimensionDesc.unique(indata) expected = OrderedDict((d.name, d) for d in indata) print_test_message('DimensionDesc.unique([d1, d2])', indata=indata, actual=actual, expected=expected) self.assertEqual(actual, expected, 'DimensionDesc.unique fails with all-unqiue list')
def test_unique_same_names_1set(self): indata = [DimensionDesc('x'), DimensionDesc('x', 2)] actual = DimensionDesc.unique(indata) expected = OrderedDict([(indata[1].name, indata[1])]) print_test_message('DimensionDesc.unique([d1, d1+])', indata=indata, actual=actual, expected=expected) self.assertEqual(actual, expected, 'DimensionDesc.unique fails with same names, 1 set')
def test_unique_same_names_same_dims(self): indata = [VariableDesc('x', dimensions=[DimensionDesc('x')]), VariableDesc('x', dimensions=[DimensionDesc('x')])] actual = VariableDesc.unique(indata) expected = OrderedDict([(indata[0].name, indata[0])]) print_test_message('VariableDesc.unique()', input=indata, actual=actual, expected=expected) self.assertEqual(actual, expected, 'VariableDesc.unique failes with all-same list')
def test_equals_diff_ulim(self): ddesc1 = DimensionDesc('x', size=1, unlimited=False) ddesc2 = DimensionDesc('x', size=1, unlimited=True) actual = ddesc1 expected = ddesc2 print_test_message('DimensionDesc(1) != DimensionDesc(2)', actual=str(actual), expected=str(expected)) self.assertNotEqual(actual, expected, 'Differently limited DimensionDesc objects equal')
def test_unique_same_names_diff_dims(self): indata = [ VariableDesc("x", dimensions=[DimensionDesc("x")]), VariableDesc("x", dimensions=[DimensionDesc("y")]), ] expected = ValueError print_test_message("VariableDesc.unique()", input=indata, expected=expected) self.assertRaises(expected, VariableDesc.unique, indata)
def test_is_set_true(self): ddesc = DimensionDesc("x", 1) actual = ddesc.is_set() expected = True print_test_message( "DimensionDesc.is_set == True", actual=actual, expected=expected ) self.assertEqual(actual, expected, "DimensionDesc is not set when it should be")
def test_is_set_false(self): ddesc = DimensionDesc("x") actual = ddesc.is_set() expected = False print_test_message( "DimensionDesc.is_set == False", actual=actual, expected=expected ) self.assertEqual(actual, expected, "DimensionDesc is set when it should not be")
def test_equals_diff_dims(self): vdims1 = tuple(DimensionDesc(d) for d in ('a', 'b')) vdims2 = tuple(DimensionDesc(d) for d in ('a', 'b', 'c')) actual = VariableDesc('x', dimensions=vdims1) expected = VariableDesc('x', dimensions=vdims2) print_test_message('VariableDesc(dims1) != VariableDesc(dims2)', actual=str(actual), expected=str(expected)) self.assertNotEqual(actual, expected, 'Differently dimensioned VariableDesc objects equal')
def test_dimensions(self): indata = (DimensionDesc('y'), DimensionDesc('z')) vdesc = VariableDesc('x', dimensions=indata) actual = vdesc.dimensions expected = OrderedDict((d.name, d) for d in indata) print_test_message('VariableDesc.dimensions == ()', indata=indata, actual=actual, expected=expected) self.assertEqual(actual, expected, 'Default VariableDesc.dimensions is not {}'.format(indata))
def test_reset(self): expected = DimensionDesc("x", 1) actual = DimensionDesc("y", 2) actual.set(expected) print_test_message( "DimensionDesc.set()", actual=str(actual), expected=str(expected) ) self.assertEqual(actual.name, "y", "DimensionDesc name not correct after set") self.assertEqual( actual.size, expected.size, "DimensionDesc size not correct after set" )
def test_equals_same_unset(self): ddesc1 = DimensionDesc("x") ddesc2 = DimensionDesc("x") actual = ddesc1 expected = ddesc2 print_test_message( "DimensionDesc(1) == DimensionDesc(2)", actual=str(actual), expected=str(expected), ) self.assertEqual( actual, expected, "Unset DimensionsDesc not equal to unset DimensionDesc" )
def test_unique_same_names_unset(self): indata = [DimensionDesc("x"), DimensionDesc("x")] actual = DimensionDesc.unique(indata) expected = OrderedDict([(indata[0].name, indata[0])]) print_test_message( "DimensionDesc.unique([d1, d1])", indata=indata, actual=actual, expected=expected, ) self.assertEqual( actual, expected, "DimensionDesc.unique fails with same names, all unset" )
def test_equals_diff_dims(self): vdims1 = tuple(DimensionDesc(d) for d in ("a", "b")) vdims2 = tuple(DimensionDesc(d) for d in ("a", "b", "c")) actual = VariableDesc("x", dimensions=vdims1) expected = VariableDesc("x", dimensions=vdims2) print_test_message( "VariableDesc(dims1) != VariableDesc(dims2)", actual=str(actual), expected=str(expected), ) self.assertNotEqual( actual, expected, "Differently dimensioned VariableDesc objects equal" )
def test_equals_diff_size(self): ddesc1 = DimensionDesc("x", size=1, unlimited=True) ddesc2 = DimensionDesc("x", size=2, unlimited=True) actual = ddesc1 expected = ddesc2 print_test_message( "DimensionDesc(1) != DimensionDesc(2)", actual=str(actual), expected=str(expected), ) self.assertNotEqual( actual, expected, "Differently sized DimensionDesc objects equal" )
def test_equals_diff_1set(self): ddesc1 = DimensionDesc("x", 1, True) ddesc2 = DimensionDesc("x") actual = ddesc1 expected = ddesc2 print_test_message( "DimensionDesc(1) == DimensionDesc(2)", actual=str(actual), expected=str(expected), ) self.assertNotEqual( actual, expected, "Set DimensionsDesc equals unset DimensionDesc" )
def test_dimensions(self): indata = (DimensionDesc("y"), DimensionDesc("z")) vdesc = VariableDesc("x", dimensions=indata) actual = vdesc.dimensions expected = OrderedDict((d.name, d) for d in indata) print_test_message( "VariableDesc.dimensions == ()", indata=indata, actual=actual, expected=expected, ) self.assertEqual( actual, expected, "Default VariableDesc.dimensions is not {}".format(indata) )
def test_unique_empty(self): indata = [] actual = DimensionDesc.unique(indata) expected = OrderedDict() print_test_message('DimensionDesc.unique([])', indata=indata, actual=actual, expected=expected) self.assertEqual(actual, expected, 'DimensionDesc.unique fails with empty list')
def test_set_bad(self): indata = 'z' ddesc = DimensionDesc('y') print_test_message('DimensionDesc.set({})'.format(indata), indata=indata, desc=str(ddesc)) self.assertRaises(TypeError, ddesc.set, indata)
def test_set_bad(self): indata = "z" ddesc = DimensionDesc("y") print_test_message( "DimensionDesc.set({})".format(indata), indata=indata, desc=str(ddesc) ) self.assertRaises(TypeError, ddesc.set, indata)
def test_variables_same_dims(self): indata = (VariableDesc('a', dimensions=[DimensionDesc('x', 4)]), VariableDesc('b', dimensions=[DimensionDesc('x', 4)])) fdesc = FileDesc('test.nc', variables=indata) actual = fdesc.variables expected = OrderedDict((d.name, d) for d in indata) print_test_message('FileDesc.variables', input=indata, actual=actual, expected=expected) self.assertEqual(actual, expected, 'FileDesc.variables failed') adim = fdesc.variables['a'].dimensions['x'] bdim = fdesc.variables['b'].dimensions['x'] print_test_message('FileDesc.dimensions', adim=adim, bdim=bdim) self.assertEqual(adim, bdim, 'FileDesc.dimensions failed') actual = fdesc.dimensions expected = OrderedDict([(adim.name, adim)]) print_test_message('FileDesc.dimensions', actual=actual, expected=expected) self.assertEqual(actual, expected, 'FileDesc.dimensions failed')
def test_size(self): indata = 1 ddesc = DimensionDesc('x', size=indata) actual = ddesc.size expected = indata print_test_message('DimensionDesc.size', input=indata, actual=actual, expected=expected) self.assertEqual(actual, expected, 'DimensionDesc.size is not set properly')
def test_name(self): indata = 'x' ddesc = DimensionDesc(indata) actual = ddesc.name expected = indata print_test_message('DimensionDesc.name', indata=indata, actual=str(actual), expected=str(expected)) self.assertEqual(actual, expected, 'DimensionDesc.name does not match')
def test_limited(self): ddesc = DimensionDesc("x", size=1, unlimited=True) actual = ddesc.unlimited expected = True print_test_message( "DimensionDesc.unlimited == True", actual=actual, expected=expected ) self.assertEqual(actual, expected, "DimensionDesc.unlimited is not True")
def test_type(self): ddesc = DimensionDesc('x') actual = type(ddesc) expected = DimensionDesc print_test_message('type(DimensionDesc)', actual=str(actual), expected=str(expected)) self.assertEqual(actual, expected, 'DimensionDesc has wrong type')
def test_size_default(self): ddesc = DimensionDesc("x") actual = ddesc.size expected = None print_test_message( "DimensionDesc.size == None", actual=actual, expected=expected ) self.assertEqual(actual, expected, "Default DimensionDesc.size is not None")