phpolars

py-polars

Verification

Scope

Column names, data types, and values of 315 results: data frame methods, functions, joins, grouping, windows, sorting, casts, SQL, and the str, dt, list, struct, and arr namespaces. Identical inputs in both implementations.

References

Reference
py-polars 1.43.2
Versions
py-polars 1.43.2, Polars Rust crate 0.55.2, PHP 8.5.12

Data

Inputs
Fixed data frames built identically in scripts/pyfixtures.py and tests/pyfixtures.php: a 6-row data frame of integers, floats, strings, booleans, dates, datetimes, and lists with nulls in every column; lookup tables; a sorted time series; and quotes for as-of joins.

Method

scripts/pyfixtures.py runs each case in py-polars and writes tests/fixtures/py/expected.json. tests/pyfixtures.php runs the same cases in phpolars and compares the results. phpolars embeds the Polars Rust crate 0.55.2; py-polars 1.43.2 is the release with the closest Rust core. Error statistics cover numeric values only.

Check
Comparison with a reference implementation
Recorded
2026-11-02, PHP 8.5.12, Ubuntu 24.04.5 LTS (x86_64), commit d7d3aff

Tolerances

exact equality

Applies to: Results without floats

Column names, data types, integers, strings, booleans, temporal values, and null positions

|x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly

Applies to: Finite floats

No absolute term, so a zero reference requires an exact zero, and all other values compare exactly

exact equality

Applies to: Expected exceptions

Exception class name, message not compared

x: package value; r: reference value. Absolute error: |x − r|. Relative error: |x − r| / |r|; undefined at r = 0. Max errors are over the values a row compares.

Results

315 comparisons in 17 categories: 315 pass, 0 fail, 0 skipped.

By category

Results by category
Category Comparisons Largest abs. error Largest rel. error Status
Expressions 52 8.9e-16 2.2e-16 pass
Filtering and sorting 22 0 0 pass
Grouping and summaries 26 0 0 pass
Joins 15 0 0 pass
Missing values 10 0 0 pass
Reshaping and concatenation 17 0 0 pass
DataFrame methods 36 8.9e-16 2.4e-15 pass
Windows, rolling, and EWM 17 0 0 pass
Strings 23 0 0 pass
Dates and times 15 0 0 pass
Lists, arrays, and structs 17 0 0 pass
Casts 8 0 0 pass
Series 15 8.9e-16 1.5e-16 pass
Functions 28 2.2e-16 2.0e-16 pass
Categoricals and binary 4 0 0 pass
Selectors 2 0 0 pass
SQL 8 0 0 pass
All 315 comparisons
Every comparison
CategoryCase Quantity Criterion Values Package value Reference value Max abs. error Max rel. error Status
Expressions select_arith 6 rows × 9 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 54 0 0 pass
select_float_specials 6 rows × 4 columns exact equality 24 0 0 pass
select_int_div_neg 4 rows × 3 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 12 0 0 pass
select_literals 1 row × 5 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 5 0 0 pass
select_literal_broadcast 6 rows × 3 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 18 0 0 pass
int32_plus_literal 6 rows × 4 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 24 0 0 pass
with_columns_compare 6 rows × 13 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 78 0 0 pass
with_columns_overwrite 6 rows × 4 columns exact equality 24 0 0 pass
bool_logic 6 rows × 5 columns exact equality 30 0 0 pass
horizontal_fns 6 rows × 7 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 42 0 0 pass
Filtering and sorting filter_gt 3 rows × 2 columns exact equality 6 0 0 pass
filter_multi 1 row × 3 columns exact equality 3 0 0 pass
filter_or_null 2 rows × 3 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 6 0 0 pass
filter_bool_col 3 rows × 2 columns exact equality 6 0 0 pass
filter_date 3 rows × 2 columns exact equality 6 0 0 pass
filter_datetime 3 rows × 2 columns exact equality 6 0 0 pass
sort_single 6 rows × 2 columns exact equality 12 0 0 pass
sort_desc_nulls_last 6 rows × 2 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 12 0 0 pass
sort_multi 6 rows × 3 columns exact equality 18 0 0 pass
sort_multi_nulls_last 6 rows × 3 columns exact equality 18 0 0 pass
sort_multi_mixed_nulls_last 6 rows × 3 columns exact equality 18 0 0 pass
sort_expr 6 rows × 2 columns exact equality 12 0 0 pass
sort_date_desc 6 rows × 2 columns exact equality 12 0 0 pass
sort_string 6 rows × 2 columns exact equality 12 0 0 pass
sort_bool 6 rows × 2 columns exact equality 12 0 0 pass
Grouping and summaries gb_sum_mean 4 rows × 5 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 20 0 0 pass
gb_median_min_max 4 rows × 7 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 28 0 0 pass
gb_std_var 4 rows × 4 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 16 0 0 pass
gb_count_len 4 rows × 4 columns exact equality 16 0 0 pass
gb_n_unique_first_last 3 rows × 4 columns exact equality 12 0 0 pass
gb_quantile 3 rows × 6 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 18 0 0 pass
gb_multi_key 6 rows × 3 columns exact equality 18 0 0 pass
gb_expr_key 3 rows × 3 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 12 0 0 pass
gb_implicit_list 4 rows × 3 columns exact equality 14 0 0 pass
gb_filter_sortby 4 rows × 3 columns exact equality 12 0 0 pass
gb_len_method 4 rows × 2 columns exact equality 8 0 0 pass
gb_sum_method 4 rows × 3 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 12 0 0 pass
gb_mean_method 3 rows × 3 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 9 0 0 pass
gb_head 4 rows × 2 columns exact equality 8 0 0 pass
Joins join_inner 3 rows × 5 columns exact equality 15 0 0 pass
join_left 6 rows × 4 columns exact equality 24 0 0 pass
join_full 8 rows × 5 columns exact equality 40 0 0 pass
join_full_coalesce 8 rows × 4 columns exact equality 32 0 0 pass
join_semi 3 rows × 3 columns exact equality 9 0 0 pass
join_anti 3 rows × 3 columns exact equality 9 0 0 pass
join_nulls_equal 6 rows × 5 columns exact equality 30 0 0 pass
join_cross 6 rows × 4 columns exact equality 24 0 0 pass
join_suffix 3 rows × 5 columns exact equality 15 0 0 pass
join_left_on_right_on 6 rows × 5 columns exact equality 30 0 0 pass
join_multi_key 6 rows × 4 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 24 0 0 pass
Filtering and sorting unique_subset_first 4 rows × 2 columns exact equality 8 0 0 pass
unique_keep_last 4 rows × 2 columns exact equality 8 0 0 pass
unique_keep_none 2 rows × 2 columns exact equality 4 0 0 pass
unique_rows 5 rows × 2 columns exact equality 10 0 0 pass
Missing values fill_null_value_dataframe 6 rows × 4 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 24 0 0 pass
fill_null_string 6 rows × 2 columns exact equality 12 0 0 pass
fill_null_strategies 6 rows × 8 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 48 0 0 pass
fill_null_limit 6 rows × 2 columns exact equality 12 0 0 pass
fill_null_dataframe_forward 6 rows × 3 columns exact equality 18 0 0 pass
drop_nulls_all 3 rows × 4 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 12 0 0 pass
drop_nulls_subset 4 rows × 4 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 16 0 0 pass
null_count 1 row × 10 columns exact equality 10 0 0 pass
interpolate 5 rows × 2 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 10 0 0 pass
Reshaping and concatenation unpivot 12 rows × 3 columns exact equality 36 0 0 pass
unpivot_mixed_names 12 rows × 3 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 36 0 0 pass
pivot_first 3 rows × 3 columns exact equality 9 0 0 pass
pivot_sum 3 rows × 3 columns exact equality 9 0 0 pass
pivot_mean 3 rows × 3 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 9 0 0 pass
pivot_len 3 rows × 3 columns exact equality 9 0 0 pass
explode_single 10 rows × 2 columns exact equality 20 0 0 pass
explode_two 3 rows × 3 columns exact equality 9 0 0 pass
transpose 2 rows × 4 columns exact equality 8 0 0 pass
Expressions with_row_index 6 rows × 2 columns exact equality 12 0 0 pass
Reshaping and concatenation concat_vertical 3 rows × 2 columns exact equality 6 0 0 pass
concat_horizontal 2 rows × 4 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 8 0 0 pass
concat_diagonal 3 rows × 3 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 9 0 0 pass
concat_vertical_relaxed 3 rows × 2 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 6 0 0 pass
concat_diagonal_relaxed 3 rows × 3 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 9 0 0 pass
Grouping and summaries describe_numeric 9 rows × 3 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 27 0 0 pass
describe_mixed 9 rows × 5 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 45 0 0 pass
describe_percentiles 8 rows × 2 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 16 0 0 pass
DataFrame methods dataframe_sum 1 row × 4 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 4 0 0 pass
dataframe_mean 1 row × 3 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 3 0 0 pass
dataframe_min_max 2 rows × 4 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 8 0 0 pass
dataframe_std_var 2 rows × 2 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 4 8.9e-16 1.9e-16 pass
dataframe_median 1 row × 2 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 2 0 0 pass
dataframe_n_unique 1 row × 3 columns exact equality 3 0 0 pass
Windows, rolling, and EWM over_sum 6 rows × 2 columns exact equality 12 0 0 pass
over_multi 6 rows × 3 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 18 0 0 pass
over_order_by 6 rows × 2 columns exact equality 12 0 0 pass
over_order_by_desc 6 rows × 2 columns exact equality 12 0 0 pass
over_rank 6 rows × 2 columns exact equality 12 0 0 pass
Expressions cum_fns 6 rows × 6 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 36 0 0 pass
shift 6 rows × 4 columns exact equality 24 0 0 pass
diff 6 rows × 3 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 18 0 0 pass
pct_change 6 rows × 1 column |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 6 0 0 pass
rank_methods 6 rows × 7 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 42 0 0 pass
Windows, rolling, and EWM rolling 6 rows × 7 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 42 0 0 pass
Expressions when_basic 6 rows × 2 columns exact equality 12 0 0 pass
when_chain 6 rows × 2 columns exact equality 12 0 0 pass
when_no_otherwise 6 rows × 2 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 12 0 0 pass
when_multi_cond 6 rows × 2 columns exact equality 12 0 0 pass
when_supertype 6 rows × 2 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 12 0 0 pass
Strings str_contains 6 rows × 5 columns exact equality 30 0 0 pass
str_replace 6 rows × 5 columns exact equality 30 0 0 pass
str_slice 6 rows × 4 columns exact equality 24 0 0 pass
str_split 6 rows × 2 columns exact equality 19 0 0 pass
str_strip 6 rows × 4 columns exact equality 24 0 0 pass
str_case 6 rows × 2 columns exact equality 12 0 0 pass
str_len 6 rows × 2 columns exact equality 12 0 0 pass
str_pad 6 rows × 3 columns exact equality 18 0 0 pass
str_extract 6 rows × 3 columns exact equality 25 0 0 pass
str_count_matches 6 rows × 3 columns exact equality 18 0 0 pass
str_starts_ends 6 rows × 2 columns exact equality 12 0 0 pass
str_to_integer 6 rows × 1 column exact equality 6 0 0 pass
str_to_integer_base 3 rows × 1 column exact equality 3 0 0 pass
str_find_reverse 6 rows × 2 columns exact equality 12 0 0 pass
str_join_agg 1 row × 2 columns exact equality 2 0 0 pass
str_to_date_datetime 2 rows × 2 columns exact equality 4 0 0 pass
Dates and times dt_parts 6 rows × 10 columns exact equality 60 0 0 pass
date_parts 6 rows × 5 columns exact equality 30 0 0 pass
dt_strftime 6 rows × 3 columns exact equality 18 0 0 pass
dt_truncate 6 rows × 5 columns exact equality 30 0 0 pass
dt_round 6 rows × 1 column exact equality 6 0 0 pass
dt_epoch 6 rows × 5 columns exact equality 30 0 0 pass
dt_date_time 6 rows × 4 columns exact equality 24 0 0 pass
dt_offset_by 6 rows × 3 columns exact equality 18 0 0 pass
dt_duration 6 rows × 3 columns exact equality 18 0 0 pass
dt_cast_time_unit 6 rows × 1 column exact equality 6 0 0 pass
dt_time_zone 6 rows × 2 columns exact equality 12 0 0 pass
Lists, arrays, and structs list_aggs 6 rows × 5 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 30 0 0 pass
list_get 6 rows × 4 columns exact equality 24 0 0 pass
list_contains 6 rows × 2 columns exact equality 12 0 0 pass
list_join 6 rows × 1 column exact equality 6 0 0 pass
list_eval 6 rows × 2 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 18 0 0 pass
list_sort_unique 6 rows × 4 columns exact equality 28 0 0 pass
list_unique 2 rows × 2 columns exact equality 6 0 0 pass
list_concat_list 6 rows × 1 column exact equality 12 0 0 pass
Casts cast_numeric 6 rows × 5 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 30 0 0 pass
cast_to_string 6 rows × 5 columns exact equality 30 0 0 pass
cast_temporal 6 rows × 3 columns exact equality 18 0 0 pass
cast_strict_fails raises InvalidOperationError exact equality 1 pass
cast_non_strict 6 rows × 2 columns exact equality 12 0 0 pass
cast_overflow_strict_fails raises InvalidOperationError exact equality 1 pass
cast_string_to_float 5 rows × 1 column |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 5 0 0 pass
cast_dataframe_map 6 rows × 3 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 18 0 0 pass
Expressions is_in 6 rows × 4 columns exact equality 24 0 0 pass
is_between 6 rows × 5 columns exact equality 30 0 0 pass
is_between_dates 6 rows × 1 column exact equality 6 0 0 pass
clip 6 rows × 4 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 24 0 0 pass
round 8 rows × 6 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 48 0 0 pass
math 6 rows × 6 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 36 0 0 pass
Grouping and summaries value_counts_expr 4 rows × 2 columns exact equality 8 0 0 pass
value_counts_series 4 rows × 2 columns exact equality 8 0 0 pass
value_counts_normalize 3 rows × 2 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 6 0 0 pass
Series series_int_aggs 16 scalar values |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 16 8.9e-16 1.5e-16 pass
series_float_aggs 14 scalar values |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 14 0 0 pass
series_quantile_int_arg 2 scalar values |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 2 0 0 pass
series_str_aggs 6 scalar values exact equality 6 0 0 pass
series_bool_aggs 5 scalar values |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 5 0 0 pass
series_ops 6 rows × 8 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 48 0 0 pass
series_sort 6 rows × 1 column exact equality 6 0 0 pass
series_unique 4 rows × 1 column exact equality 4 0 0 pass
series_empty_aggs 5 scalar values exact equality 5 0 0 pass
DataFrame methods head_tail_slice 5 rows × 1 column exact equality 5 0 0 pass
rename_drop_reverse 6 rows × 2 columns exact equality 12 0 0 pass
Lists, arrays, and structs struct_pack_field 6 rows × 2 columns exact equality 18 0 0 pass
Filtering and sorting unique_counts_mode 2 rows × 1 column exact equality 2 0 0 pass
top_bottom_k 2 rows × 2 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 4 0 0 pass
Joins join_asof_backward 6 rows × 6 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 36 0 0 pass
join_asof_forward_by 6 rows × 5 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 30 0 0 pass
join_asof_nearest_tolerance 6 rows × 6 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 36 0 0 pass
join_asof_int_tolerance 3 rows × 2 columns exact equality 6 0 0 pass
Grouping and summaries group_by_dynamic_day 3 rows × 3 columns exact equality 9 0 0 pass
group_by_dynamic_by_bounds 9 rows × 5 columns exact equality 45 0 0 pass
group_by_dynamic_label_offset 3 rows × 2 columns exact equality 6 0 0 pass
Windows, rolling, and EWM rolling_dataframe 6 rows × 3 columns exact equality 18 0 0 pass
rolling_dataframe_by 6 rows × 3 columns exact equality 18 0 0 pass
rolling_by_exprs 6 rows × 9 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 54 0 0 pass
rolling_quantile_skew 6 rows × 4 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 24 0 0 pass
ewm 6 rows × 4 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 24 0 0 pass
ewm_mean_by 6 rows × 1 column |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 6 0 0 pass
ewm_no_alpha raises ValueError exact equality 1 pass
Expressions cut_qcut 6 rows × 5 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 30 0 0 pass
cut_include_breaks 6 rows × 2 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 12 0 0 pass
rle 4 rows × 2 columns exact equality 8 0 0 pass
rle_id 8 rows × 1 column exact equality 8 0 0 pass
search_sorted 1 row × 4 columns exact equality 4 0 0 pass
search_sorted_many 3 rows × 1 column exact equality 3 0 0 pass
peaks_entropy 6 rows × 4 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 24 0 0 pass
hist_bins 3 rows × 1 column exact equality 3 0 0 pass
hist_count_breaks 2 rows × 3 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 6 0 0 pass
Missing values interpolate_by 7 rows × 1 column |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 7 0 0 pass
Expressions is_close_index_of 4 rows × 5 columns exact equality 20 0 0 pass
arg_unique_bounds 1 row × 3 columns exact equality 5 0 0 pass
trig_extra 8 rows × 9 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 72 8.9e-16 2.2e-16 pass
DataFrame methods dataframe_shift 6 rows × 2 columns exact equality 12 0 0 pass
dataframe_shift_fill 6 rows × 2 columns exact equality 12 0 0 pass
dataframe_interpolate 6 rows × 2 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 12 0 0 pass
dataframe_quantile_product 2 rows × 3 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 6 0 0 pass
dataframe_top_bottom_k 7 rows × 4 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 28 0 0 pass
dataframe_gather_every 3 rows × 2 columns exact equality 6 0 0 pass
dataframe_drop_nans 5 rows × 4 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 20 0 0 pass
dataframe_drop_nans_subset 5 rows × 5 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 25 0 0 pass
dataframe_is_duplicated 6 rows × 2 columns exact equality 12 0 0 pass
dataframe_upsample 6 rows × 3 columns exact equality 18 0 0 pass
dataframe_corr 3 rows × 3 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 9 5.0e-16 2.4e-15 pass
dataframe_insert_to_struct 3 rows × 3 columns exact equality 9 0 0 pass
dataframe_approx_n_unique 1 row × 2 columns exact equality 2 0 0 pass
Functions fn_date_range 4 rows × 1 column exact equality 4 0 0 pass
fn_date_range_closed 3 rows × 1 column exact equality 3 0 0 pass
fn_datetime_range 5 rows × 1 column exact equality 5 0 0 pass
fn_date_ranges 2 rows × 1 column exact equality 6 0 0 pass
fn_int_ranges 5 rows × 2 columns exact equality 17 0 0 pass
fn_date_datetime 5 rows × 2 columns exact equality 10 0 0 pass
fn_duration 5 rows × 2 columns exact equality 10 0 0 pass
fn_from_epoch 2 rows × 3 columns exact equality 6 0 0 pass
fn_arg_where 3 rows × 1 column exact equality 3 0 0 pass
fn_corr_cov 1 row × 4 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 4 2.2e-16 2.0e-16 pass
fn_nth 6 rows × 2 columns exact equality 12 0 0 pass
fn_repeat_linear_space 3 rows × 2 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 6 0 0 pass
fn_select 1 row × 2 columns exact equality 2 0 0 pass
fn_stat_shorthands 1 row × 5 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 10 0 0 pass
Strings str_many 6 rows × 6 columns exact equality 36 0 0 pass
str_extract_groups 3 rows × 2 columns exact equality 6 0 0 pass
str_split_exact 3 rows × 4 columns exact equality 12 0 0 pass
str_encode_decode 3 rows × 3 columns exact equality 9 0 0 pass
str_to_decimal 3 rows × 1 column |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 3 0 0 pass
str_normalize_escape 6 rows × 2 columns exact equality 12 0 0 pass
str_json 3 rows × 3 columns exact equality 9 0 0 pass
Dates and times dt_parts_extra 4 rows × 3 columns exact equality 12 0 0 pass
dt_business 4 rows × 5 columns exact equality 20 0 0 pass
dt_combine_replace 4 rows × 3 columns exact equality 12 0 0 pass
dt_time_unit 6 rows × 2 columns exact equality 12 0 0 pass
Lists, arrays, and structs list_more 6 rows × 5 columns exact equality 30 0 0 pass
list_to_array 2 rows × 3 columns exact equality 8 0 0 pass
arr_aggs 3 rows × 9 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 27 0 0 pass
arr_ops 3 rows × 13 columns exact equality 62 0 0 pass
arr_explode_struct 2 rows × 3 columns exact equality 6 0 0 pass
Categoricals and binary cat_ns 4 rows × 5 columns exact equality 20 0 0 pass
cat_categories 9 rows × 1 column exact equality 9 0 0 pass
bin_ns 3 rows × 8 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 24 0 0 pass
Series series_mirrors_expr 6 rows × 5 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 30 0 0 pass
series_scalar_reductions 7 scalar values |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 7 0 0 pass
Selectors selectors 40 scalar values exact equality 40 0 0 pass
Expressions multi_col_logic_is_boolean 8 rows × 2 columns exact equality 16 0 0 pass
Selectors selectors_in_ops 6 rows × 4 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 24 0 0 pass
SQL sql_dataframe 4 rows × 3 columns exact equality 12 0 0 pass
sql_context_join 6 rows × 3 columns exact equality 18 0 0 pass
sql_expressions 6 rows × 6 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 36 0 0 pass
sql_window_cte 5 rows × 4 columns exact equality 20 0 0 pass
sql_table_name 1 row × 1 column exact equality 1 7 7 0 0 pass
sql_function 2 rows × 2 columns exact equality 4 0 0 pass
sql_error raises ColumnNotFoundError exact equality 1 pass
DataFrame methods dataframe_to_dummies 6 rows × 9 columns exact equality 54 0 0 pass
dataframe_to_dummies_opts 6 rows × 2 columns exact equality 12 0 0 pass
Series series_to_dummies 6 rows × 4 columns exact equality 24 0 0 pass
DataFrame methods dataframe_horizontal 6 rows × 4 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 24 0 0 pass
dataframe_clear 2 rows × 2 columns exact equality 4 0 0 pass
dataframe_replace_column 2 rows × 2 columns exact equality 4 0 0 pass
dataframe_column_index 1 scalar value exact equality 1 4 4 0 0 pass
Grouping and summaries group_by_quantile 4 rows × 3 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 12 0 0 pass
Expressions min_max_by 1 row × 2 columns exact equality 2 0 0 pass
first_last_non_null 1 row × 2 columns exact equality 2 0 0 pass
expr_item 1 row × 1 column exact equality 1 7 7 0 0 pass
cumulative_eval 6 rows × 1 column exact equality 6 0 0 pass
bitwise 3 rows × 6 columns exact equality 18 0 0 pass
Lists, arrays, and structs struct_with_fields 6 rows × 4 columns exact equality 24 0 0 pass
Functions fn_business_day_count 4 rows × 1 column exact equality 4 0 0 pass
fn_format 6 rows × 1 column exact equality 6 0 0 pass
fn_arg_sort_by 6 rows × 1 column exact equality 6 0 0 pass
fn_concat_arr 6 rows × 1 column exact equality 6 0 0 pass
Grouping and summaries group_by_iter 6 rows × 4 columns exact equality 24 0 0 pass
Filtering and sorting top_k_by 3 rows × 2 columns exact equality 6 0 0 pass
Windows, rolling, and EWM ewm_sum 6 rows × 2 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 12 0 0 pass
ewm_sum_by 6 rows × 1 column |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 6 0 0 pass
Expressions extend_constant 8 rows × 1 column exact equality 8 0 0 pass
reshape 2 rows × 1 column exact equality 2 0 0 pass
Windows, rolling, and EWM rolling_rank 6 rows × 2 columns exact equality 12 0 0 pass
rolling_rank_by 6 rows × 1 column exact equality 6 0 0 pass
Expressions expr_rolling 6 rows × 3 columns exact equality 18 0 0 pass
reinterpret 2 rows × 1 column |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 2 0 0 pass
is_empty_arg_true 1 row × 4 columns exact equality 15 0 0 pass
meta 8 scalar values exact equality 8 0 0 pass
ns_extras 6 rows × 3 columns exact equality 18 0 0 pass
Lists, arrays, and structs list_item 3 rows × 1 column exact equality 3 0 0 pass
struct_unnest 6 rows × 2 columns exact equality 12 0 0 pass
Categoricals and binary bin_reinterpret 2 rows × 2 columns exact equality 4 0 0 pass
DataFrame methods dataframe_remove 3 rows × 2 columns exact equality 6 0 0 pass
dataframe_gather 3 rows × 2 columns exact equality 6 0 0 pass
dataframe_merge_sorted 6 rows × 2 columns exact equality 12 0 0 pass
dataframe_update 6 rows × 3 columns exact equality 18 0 0 pass
dataframe_update_nulls_full 7 rows × 3 columns exact equality 21 0 0 pass
dataframe_update_by_row 6 rows × 2 columns exact equality 12 0 0 pass
dataframe_iter_slices 6 rows × 2 columns exact equality 12 0 0 pass
dataframe_map_rows 6 rows × 2 columns exact equality 12 0 0 pass
dataframe_map_rows_scalar 6 rows × 1 column exact equality 6 0 0 pass
Grouping and summaries group_by_having 2 rows × 2 columns exact equality 4 0 0 pass
Series series_describe 9 rows × 2 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 18 0 0 pass
series_scatter 6 rows × 2 columns exact equality 12 0 0 pass
series_set 6 rows × 1 column exact equality 6 0 0 pass
Functions fn_more 6 rows × 7 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 42 0 0 pass
fn_cum_sum_horizontal 6 rows × 3 columns exact equality 18 0 0 pass
fn_head_tail 2 rows × 2 columns exact equality 4 0 0 pass
fn_linear_spaces 2 rows × 2 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 10 0 0 pass
fn_time 6 rows × 1 column exact equality 6 0 0 pass
fn_time_range 3 rows × 1 column exact equality 3 0 0 pass
fn_rolling_corr_cov 6 rows × 2 columns |x − r| ≤ 1e-9 × |r|; at r = 0, x = 0 exactly 12 0 0 pass
fn_escape_regex 1 scalar value exact equality 1 0 0 pass
fn_first_last_columns 6 rows × 4 columns exact equality 27 0 0 pass
Reshaping and concatenation json_normalize 3 rows × 6 columns exact equality 19 0 0 pass
json_normalize_level 3 rows × 5 columns exact equality 16 0 0 pass
SQL sql_expr 6 rows × 2 columns exact equality 12 0 0 pass
Reshaping and concatenation melt 6 rows × 3 columns exact equality 18 0 0 pass
Functions arange 3 rows × 1 column exact equality 3 0 0 pass

Limitations

Exclusions

  • NaN, INF, and -INF are encoded as {"$float": "NaN"}, {"$float": "INF"}, and {"$float": "-INF"} and compared exactly; they count as values compared and are excluded from the error statistics.
  • Methods and arguments without a case are not compared.

Reproduction

From the repository root
uv run --with 'polars==1.43.2' --with numpy python scripts/pyfixtures.py
cargo build --release
scripts/site-content verifications
Raw record
site/verifications/py-polars-fixtures.json
Full results
tests/fixtures/py/expected.json
Input data
scripts/pyfixtures.py