code: def test_run_prompt(self, llm):
      df = pd.DataFrame({"country": []})
      df = SmartDataframe(
          df, config={"llm": llm, "enable_cache": False}
      )
  
      function_def = """
  <function>
  def plot_salaries(merged_df: pandas.core.frame.DataFrame):
      \"\"\"Plot salaries given a dataframe of employees and their salaries\"\"\"
  </function>
  """  # noqa: E501
  
      @skill
      def plot_salaries(merged_df: pd.DataFrame):
          """Plot salaries given a dataframe of employees and their salaries"""
          import matplotlib.pyplot as plt
  
          plt.bar(merged_df["Name"], merged_df["Salary"])
          plt.xlabel("Employee Name")
          plt.ylabel("Salary")
          plt.title("Employee Salaries")
          plt.xticks(rotation=45)
          plt.savefig("temp_chart.png")
          plt.close()
  
      df.add_skills(plot_salaries)
  
      df.chat("How many countries are in the dataframe?")
      last_prompt = df.last_prompt
      assert function_def in last_prompt
  
imports: from typing import Optional
  from unittest.mock import MagicMock, Mock, patch
  import uuid
  import pandas
  import pytest
  from pandasai.agent import Agent
  from pandasai.helpers.code_manager import CodeExecutionContext, CodeManager
  from pandasai.helpers.skills_manager import SkillsManager
  from pandasai.llm.fake import FakeLLM
  from pandasai.skills import skill, Skill
  from pandasai.smart_dataframe import SmartDataframe
label_desc: Use image node_id 15 for calling the TestSkills obj's underlying member method code with example usage: obj.test_run_prompt(llm) without return types