code: def test_absence_off_null_prop_8224() -> None:
      # a reminder to self to not do null propagation
      # it is inconsistent and makes output dtype
      # dependent of the data, big no!
  
      def sub_col_min(column: str, min_column: str) -> pl.Expr:
          return pl.col(column).sub(pl.col(min_column).min())
  
      df = pl.DataFrame(
          {
              "group": [1, 1, 2, 2],
              "vals_num": [10.0, 11.0, 12.0, 13.0],
              "vals_partial": [None, None, 12.0, 13.0],
              "vals_null": [None, None, None, None],
          }
      )
  
      q = (
          df.lazy()
          .group_by("group")
          .agg(
              [
                  sub_col_min("vals_num", "vals_num").alias("sub_num"),
                  sub_col_min("vals_num", "vals_partial").alias(
                      "sub_partial"
                  ),
                  sub_col_min("vals_num", "vals_null").alias(
                      "sub_null"
                  ),
              ]
          )
      )
  
      assert q.collect().dtypes == [
          pl.Int64,
          pl.List(pl.Float64),
          pl.List(pl.Float64),
          pl.List(pl.Float64),
      ]
  
imports: from __future__ import annotations
  from collections import OrderedDict
  from datetime import date, timedelta
  from typing import Any, Iterator, Mapping
  import pytest
  import polars
  from polars.testing import assert_frame_equal, assert_series_equal
label_desc: Use image node_id 32 for calling a global function with example usage: test_absence_off_null_prop_8224() and returns: pl