code: def test_yield_minibatches_divisible():
      dataset = [1, 2, 3, 4]
      minibatches = list(
          ppo._yield_minibatches(
              dataset, minibatch_size=2, num_epochs=3
          )
      )
      assert len(minibatches) == 6
      samples = sum(minibatches, [])
      assert len(samples) == 12
      assert {1, 2, 3, 4} == set(samples[:4])
      assert {1, 2, 3, 4} == set(samples[4:8])
      assert {1, 2, 3, 4} == set(samples[8:12])
  
imports: import copy
  import itertools
  import os
  import tempfile
  import unittest
  import numpy
  import pytest
  import torch
  from torch import nn
  import pfrl
  from pfrl.agents import ppo
  from pfrl.agents.ppo import PPO
  from pfrl.envs.abc import ABC
  from pfrl.experiments import train_agent_batch_with_evaluation, train_agent_with_evaluation
  from pfrl.experiments.evaluator import batch_run_evaluation_episodes, run_evaluation_episodes
  from pfrl.nn import RecurrentBranched, RecurrentSequential
  from pfrl.policies import GaussianHeadWithStateIndependentCovariance, SoftmaxCategoricalHead
  from pfrl.testing import torch_assert_allclose
  from pfrl.utils.batch_states import batch_states
label_desc: Use image node_id 3 for calling a global function with example usage: test_yield_minibatches_divisible() without return types