From efec48700f3cef2755aeb3cf9fac06029f4f0842 Mon Sep 17 00:00:00 2001 From: Doug Davis Date: Fri, 21 Jul 2023 10:55:20 -0500 Subject: [PATCH] add xfailing test --- src/dask_awkward/lib/unproject_layout.py | 7 +++---- tests/test_core.py | 25 +++++++++++++++++++++++- 2 files changed, 27 insertions(+), 5 deletions(-) diff --git a/src/dask_awkward/lib/unproject_layout.py b/src/dask_awkward/lib/unproject_layout.py index 0f8c3e51f..1235a4189 100644 --- a/src/dask_awkward/lib/unproject_layout.py +++ b/src/dask_awkward/lib/unproject_layout.py @@ -403,7 +403,6 @@ def unproject_layout(form: Form | None, layout: Content) -> Content: not appear in the projected layout will be PlaceholderArrays). """ - return layout - # if form is None: - # return layout - # return _unproject_layout(form, layout, layout.length, layout.backend) + if form is None: + return layout + return _unproject_layout(form, layout, layout.length, layout.backend) diff --git a/tests/test_core.py b/tests/test_core.py index 6cabf533b..0416a4722 100644 --- a/tests/test_core.py +++ b/tests/test_core.py @@ -2,10 +2,11 @@ import copy from collections import namedtuple -from typing import TYPE_CHECKING, Any +from typing import TYPE_CHECKING, Any, Callable import awkward as ak import dask.array as da +import dask.config import fsspec import numpy as np import pytest @@ -826,3 +827,25 @@ def test_map_partitions_no_dask_collections_passed(caa): match="map_partitions expects at least one Dask collection", ): dak.num(caa.points.x, axis=1) + + +@pytest.mark.parametrize("fn", [dak.count, dak.zeros_like, dak.ones_like]) +@pytest.mark.parametrize( + "opt_enabled", + [ + pytest.param( + True, marks=pytest.mark.xfail(reason="these fail with opt enabled") + ), + False, + ], +) +def test_shape_only_ops( + fn: Callable, opt_enabled: bool, tmp_path_factory: pytest.TempPathFactory +) -> None: + a = ak.Array([{"a": 1, "b": 2}, {"a": 3, "b": 4}]) + p = tmp_path_factory.mktemp("zeros-like-flat") + ak.to_parquet(a, str(p / "file.parquet")) + lazy = dak.from_parquet(str(p)) + result = fn(lazy.b) + with dask.config.set({"awkward.optimization.enabled": opt_enabled}): + result.compute()