packages feed

langchain-hs-0.0.5.0: test/Spec.hs

{-# LANGUAGE OverloadedStrings #-}

module Main (main) where

import Test.Tasty

-- Unit Test Modules
import qualified Test.Langchain.Agent.AdvancedAgentsSpec as AdvancedAgentsTest
import qualified Test.Langchain.Agent.ReAct as ReActTest
import qualified Test.Langchain.Cache.CacheSpec as CacheTest
import qualified Test.Langchain.Callback.CallbackManagerSpec as CallbackTest
import qualified Test.Langchain.Chain.ChainsSpec as ChainsTest
import qualified Test.Langchain.Chain.RetrievalQASpec as RetrievalQATest
import qualified Test.Langchain.DocumentLoader.Core as DocumentLoaderTest
import qualified Test.Langchain.DocumentLoader.CsvSpec as CsvLoaderTest
import qualified Test.Langchain.DocumentLoader.DirectoryLoader as DirectoryLoaderTest
import qualified Test.Langchain.Error as ErrorTest
import qualified Test.Langchain.Graph.CompilationSpec as GraphCompilationTest
import qualified Test.Langchain.Guardrail.GuardrailSpec as GuardrailTest
import qualified Test.Langchain.MCP.McpSpec as McpTest
import qualified Test.Langchain.Memory.Core as MemoryTest
import qualified Test.Langchain.Memory.EntitySpec as EntityMemoryTest
import qualified Test.Langchain.Memory.SummarySpec as SummaryMemoryTest
import qualified Test.Langchain.Memory.TokenBufferMemory as TokenBufferMemoryTest
import qualified Test.Langchain.ObservabilitySpec as ObservabilityTest
import qualified Test.Langchain.OutputParser.AdvancedParsersSpec as AdvancedParsersTest
import qualified Test.Langchain.OutputParser.Core as OutputParserTest
import qualified Test.Langchain.PromptTemplate.Chat.ChatPromptTemplateSpec as ChatPromptTemplateTest
import qualified Test.Langchain.PromptTemplate.Chat.MessagesPlaceholderSpec as MessagesPlaceholderTest
import qualified Test.Langchain.PromptTemplate.FewShotSpec as FewShotPromptTemplateTest
import qualified Test.Langchain.PromptTemplate.PromptSpec as PromptTemplateTest
import qualified Test.Langchain.Provider.FixturesSpec as FixturesTest
import qualified Test.Langchain.Provider.Ollama as OllamaProviderTest
import qualified Test.Langchain.Provider.OllamaConversionSpec as OllamaConversionTest
import qualified Test.Langchain.Provider.OpenAI as OpenAIProviderTest
import qualified Test.Langchain.Resilience.CircuitBreakerSpec as CircuitBreakerTest
import qualified Test.Langchain.Resilience.RetrySpec as RetryTest
import qualified Test.Langchain.Retriever.BM25Spec as BM25Test
import qualified Test.Langchain.Retriever.Core as RetrieverTest
import qualified Test.Langchain.Retriever.HybridSpec as HybridRetrieverTest
import qualified Test.Langchain.TextSplitter.Character as TextSplitterTest
import qualified Test.Langchain.TextSplitter.CodeSpec as CodeSplitterTest
import qualified Test.Langchain.TextSplitter.MarkdownSpec as MarkdownSplitterTest
import qualified Test.Langchain.TextSplitter.RecursiveCharacterSpec as RecursiveSplitterTest
import qualified Test.Langchain.TextSplitter.TokenSpec as TokenSplitterTest
import qualified Test.Langchain.Tool.AdvancedToolsSpec as AdvancedToolsTest
import qualified Test.Langchain.Tool.Calculator as CalculatorToolTest
import qualified Test.Langchain.Tool.FileSystem as FileSystemToolTest
import qualified Test.Langchain.Tool.Shell as ShellToolTest
import qualified Test.Langchain.VectorStore.Core as VectorStoreTest
import qualified Test.Langchain.VectorStore.SqliteVecSpec as SqliteVecStoreTest

-- Property Test Modules (QuickCheck Laws & Invariants)
import qualified Test.Langchain.Property.CheckpointerSpec as CheckpointerPropTest
import qualified Test.Langchain.Property.ErrorSpec as ErrorPropTest
import qualified Test.Langchain.Property.MessageSpec as MessagePropTest
import qualified Test.Langchain.Property.PromptTemplateSpec as PromptTemplatePropTest
import qualified Test.Langchain.Property.RunnableSpec as RunnablePropTest
import qualified Test.Langchain.Property.TextSplitterSpec as TextSplitterPropTest

-- Regression Test Module
import qualified Test.Langchain.RegressionSpec as RegressionTest

-- Live Ollama E2E Integration Test Modules
import qualified Test.Langchain.Integration.FullRagE2ESpec as FullRagE2ETest
import qualified Test.Langchain.Integration.OllamaChatSpec as OllamaChatE2ETest
import qualified Test.Langchain.Integration.OllamaEmbeddingSpec as OllamaEmbedE2ETest
import qualified Test.Langchain.Integration.OllamaStreamSpec as OllamaStreamE2ETest
import qualified Test.Langchain.Integration.OllamaToolSpec as OllamaToolE2ETest
import qualified Test.Langchain.Integration.ReActAgentE2ESpec as ReActE2ETest
import qualified Test.Langchain.Integration.StateGraphE2ESpec as StateGraphE2ETest
import qualified Test.Langchain.Integration.StreamingCachingRetryE2ESpec as StreamingCachingRetryE2ETest

main :: IO ()
main =
  defaultMain $
    testGroup
      "Langchain Test Suite"
      [ testGroup
          "Unit Tests"
          [ PromptTemplateTest.tests
          , FewShotPromptTemplateTest.tests
          , ChatPromptTemplateTest.tests
          , MessagesPlaceholderTest.tests
          , OutputParserTest.tests
          , AdvancedParsersTest.tests
          , TextSplitterTest.tests
          , RecursiveSplitterTest.tests
          , MarkdownSplitterTest.tests
          , TokenSplitterTest.tests
          , CodeSplitterTest.tests
          , DocumentLoaderTest.tests
          , DirectoryLoaderTest.tests
          , CsvLoaderTest.tests
          , MemoryTest.tests
          , SummaryMemoryTest.tests
          , EntityMemoryTest.tests
          , VectorStoreTest.tests
          , SqliteVecStoreTest.tests
          , ErrorTest.tests
          , RetrieverTest.tests
          , BM25Test.tests
          , HybridRetrieverTest.tests
          , RetrievalQATest.tests
          , ChainsTest.tests
          , CacheTest.tests
          , RetryTest.tests
          , CircuitBreakerTest.tests
          , AdvancedToolsTest.tests
          , ReActTest.tests
          , AdvancedAgentsTest.tests
          , GuardrailTest.tests
          , McpTest.tests
          , ObservabilityTest.tests
          , CallbackTest.tests
          , TokenBufferMemoryTest.tests
          , OllamaProviderTest.tests
          , OllamaConversionTest.tests
          , OpenAIProviderTest.tests
          , FixturesTest.tests
          , CalculatorToolTest.tests
          , FileSystemToolTest.tests
          , ShellToolTest.tests
          , GraphCompilationTest.tests
          ]
      , testGroup
          "Property Tests (Laws & Invariants)"
          [ MessagePropTest.tests
          , PromptTemplatePropTest.tests
          , TextSplitterPropTest.tests
          , RunnablePropTest.tests
          , CheckpointerPropTest.tests
          , ErrorPropTest.tests
          ]
      , testGroup
          "Regression Tests"
          [ RegressionTest.tests
          ]
      , testGroup
          "Live E2E Integration Tests (Ollama)"
          [ OllamaChatE2ETest.tests
          , OllamaStreamE2ETest.tests
          , OllamaToolE2ETest.tests
          , OllamaEmbedE2ETest.tests
          , FullRagE2ETest.tests
          , ReActE2ETest.tests
          , StateGraphE2ETest.tests
          , StreamingCachingRetryE2ETest.tests
          ]
      ]