def test_as_variable(self): data = np.arange(10) expected = Variable('x', data) self.assertVariableIdentical(expected, as_variable(expected)) ds = Dataset({'x': expected}) self.assertVariableIdentical(expected, as_variable(ds['x'])) self.assertNotIsInstance(ds['x'], Variable) self.assertIsInstance(as_variable(ds['x']), Variable) self.assertIsInstance(as_variable(ds['x'], strict=False), DataArray) FakeVariable = namedtuple('FakeVariable', 'values dims') fake_xarray = FakeVariable(expected.values, expected.dims) self.assertVariableIdentical(expected, as_variable(fake_xarray)) xarray_tuple = (expected.dims, expected.values) self.assertVariableIdentical(expected, as_variable(xarray_tuple)) with self.assertRaisesRegexp(TypeError, 'cannot convert arg'): as_variable(tuple(data)) with self.assertRaisesRegexp(TypeError, 'cannot infer .+ dimensions'): as_variable(data) actual = as_variable(data, key='x') self.assertVariableIdentical(expected, actual) actual = as_variable(0) expected = Variable([], 0) self.assertVariableIdentical(expected, actual)
def assertVariableIdentical(self, v1, v2): assert as_variable(v1).identical(v2), (v1, v2)
def assertVariableNotEqual(self, v1, v2): self.assertFalse(as_variable(v1).equals(v2))
def assertVariableEqual(self, v1, v2): assert as_variable(v1).equals(v2), (v1, v2)