class_docstr: Unit tests for Agent class
code: def test_constructor(self, sample_df, config):
      agent_1 = Agent(sample_df, config)
      assert isinstance(agent_1._lake, SmartDatalake)
  
      agent_2 = Agent([sample_df], config)
      assert isinstance(agent_2._lake, SmartDatalake)
  
      # test multiple agents instances data overlap
      agent_1._lake._memory.add(
          "Which country has the highest gdp?", True
      )
      memory = agent_1._lake._memory.all()
      assert len(memory) == 1
  
      memory = agent_2._lake._memory.all()
      assert len(memory) == 0
  
imports: from typing import Optional
  from unittest.mock import Mock
  from pandasai.agent import Agent
  import pandas
  import pytest
  from pandasai.llm.fake import FakeLLM
  from pandasai.prompts.clarification_questions_prompt import ClarificationQuestionPrompt
  from pandasai.prompts.explain_prompt import ExplainPrompt
  from pandasai.smart_datalake import SmartDatalake
label_desc: Use image node_id 5 for calling the TestAgent obj's underlying member method code with example usage: obj.test_constructor(sample_df, config) without return types