code: def test_summary_data_with_non_layer_params(example_input):
      model = NonLayerParamsModel()
      model.example_input_array = example_input
  
      summary = summarize(model)
      summary_data = OrderedDict(summary._get_summary_data())
      assert summary_data[" "][-1] == " "
      assert summary_data["Name"][-1] == LEFTOVER_PARAMS_NAME
      assert summary_data["Type"][-1] == NOT_APPLICABLE
      assert int(summary_data["Params"][-1]) == 4
      if example_input is not None:
          assert summary_data["In sizes"][-1] == NOT_APPLICABLE
          assert summary_data["Out sizes"][-1] == NOT_APPLICABLE
  
imports: from collections import OrderedDict
  from typing import Any
  import pytest
  import torch
  import torch.nn
  from lightning.fabric.utilities.imports import _TORCH_GREATER_EQUAL_2_0
  from lightning.pytorch import LightningModule, Trainer
  from lightning.pytorch.demos.boring_classes import BoringModel
  from lightning.pytorch.utilities.model_summary.model_summary import LEFTOVER_PARAMS_NAME, NOT_APPLICABLE, UNKNOWN_SIZE, ModelSummary, summarize
  from tests_pytorch.helpers.advanced_models import ParityModuleRNN
  from tests_pytorch.helpers.runif import RunIf
label_desc: Use image node_id 18 for calling a global function with example usage: test_summary_data_with_non_layer_params(example_input) without return types