code: def test_evaluate(self):
      ratio_split = RatioSplit(
          self.data, exclude_unknowns=False, verbose=True
      )
      ratio_split.evaluate(MF(), [MAE(), Recall()], user_based=False)
  
      ratio_split = RatioSplit(
          self.data, exclude_unknowns=False, verbose=True
      )
      ratio_split.evaluate(MF(), [MAE(), Recall()], user_based=False)
  
      users = []
      items = []
      for u, i, r in self.data:
          users.append(u)
          items.append(i)
      for u in users:
          for i in items:
              self.data.append((u, i, 5))
  
      ratio_split = RatioSplit(
          self.data, exclude_unknowns=False, verbose=True
      )
      ratio_split.evaluate(MF(), [MAE(), Recall()], user_based=True)
  
file_path: cornac/tests/cornac/eval_methods/test_ratio_split.py
imports: import unittest
  import itertools
  import random
  from cornac.eval_methods import RatioSplit
  from cornac.data import Reader
  from cornac.models import MF
  from cornac.metrics import MAE, Recall
label_desc: Use image node_id 4 for calling the TestRatioSplit obj's underlying member method code with example usage: obj.test_evaluate() without return types