MCPcopy
hub / github.com/pydata/xarray / create_test_data

Function create_test_data

xarray/tests/__init__.py:388–447  ·  view source on GitHub ↗
(
    seed: int = 12345,
    add_attrs: bool = True,
    dim_sizes: tuple[int, int, int] = _DEFAULT_TEST_DIM_SIZES,
    use_extension_array: bool = False,
)

Source from the content-addressed store, hash-verified

386
387
388def create_test_data(
389 seed: int = 12345,
390 add_attrs: bool = True,
391 dim_sizes: tuple[int, int, int] = _DEFAULT_TEST_DIM_SIZES,
392 use_extension_array: bool = False,
393) -> Dataset:
394 rs = np.random.default_rng(seed)
395 _vars = {
396 "var1": ["dim1", "dim2"],
397 "var2": ["dim1", "dim2"],
398 "var3": ["dim3", "dim1"],
399 }
400 _dims = {"dim1": dim_sizes[0], "dim2": dim_sizes[1], "dim3": dim_sizes[2]}
401
402 obj = Dataset()
403 obj["dim2"] = ("dim2", 0.5 * np.arange(_dims["dim2"]))
404 if _dims["dim3"] > 26:
405 raise RuntimeError(
406 f"Not enough letters for filling this dimension size ({_dims['dim3']})"
407 )
408 obj["dim3"] = ("dim3", list(string.ascii_lowercase[0 : _dims["dim3"]]))
409 obj["time"] = (
410 "time",
411 pd.date_range(
412 "2000-01-01",
413 periods=20,
414 unit="ns",
415 ),
416 )
417 for v, dims in sorted(_vars.items()):
418 data = rs.normal(size=tuple(_dims[d] for d in dims))
419 obj[v] = (dims, data)
420 if add_attrs:
421 obj[v].attrs = {"foo": "variable"}
422 if use_extension_array:
423 obj["var4"] = (
424 "dim1",
425 pd.Categorical(
426 rs.choice(
427 list(string.ascii_lowercase[: rs.integers(1, 5)]),
428 size=dim_sizes[0],
429 )
430 ),
431 )
432 if has_pyarrow:
433 obj["var5"] = (
434 "dim1",
435 pd.array(
436 rs.integers(1, 10, size=dim_sizes[0]).tolist(),
437 dtype="int64[pyarrow]",
438 ),
439 )
440 if dim_sizes == _DEFAULT_TEST_DIM_SIZES:
441 numbers_values = np.array([0, 1, 2, 0, 0, 1, 1, 2, 2, 3], dtype="int64")
442 else:
443 numbers_values = rs.integers(0, 3, _dims["dim3"], dtype="int64")
444 obj.coords["numbers"] = ("dim3", numbers_values)
445 obj.encoding = {"foo": "bar"}

Callers 15

test_groupby_math_moreFunction · 0.90
test_reprMethod · 0.90
test_infoMethod · 0.90
test_propertiesMethod · 0.90
test_equals_failuresMethod · 0.90
test_attrsMethod · 0.90

Calls 4

DatasetClass · 0.90
assert_writeableFunction · 0.85
arangeMethod · 0.80
itemsMethod · 0.80

Tested by 15

test_groupby_math_moreFunction · 0.72
test_reprMethod · 0.72
test_infoMethod · 0.72
test_propertiesMethod · 0.72
test_equals_failuresMethod · 0.72
test_attrsMethod · 0.72

Used in the wild real call sites across dependent graphs

searching dependent graphs…