content: {-# LANGUAGE OverloadedStrings #-}
  
  module Main (main) where
  
  import Data.Text (unpack)
  import Ollama (Version (..), getVersion)
  import Test.Ollama.Blob qualified as Blob
  import Test.Ollama.Chat qualified as Chat
  import Test.Ollama.Common qualified as Common
  import Test.Ollama.Copy qualified as Copy
  import Test.Ollama.Create qualified as Create
  import Test.Ollama.Delete qualified as Delete
  import Test.Ollama.Embedding qualified as Embeddings
  import Test.Ollama.Generate qualified as Generate
  import Test.Ollama.List qualified as List
  import Test.Ollama.Load qualified as Load
  import Test.Ollama.Show qualified as Show
  import Test.Tasty
  
  tests :: TestTree
  tests =
    testGroup
      "Tests"
      [ -- Core functionality tests
        Generate.tests
      , Chat.tests
      , Embeddings.tests
      , -- Model management tests
        Show.tests
      , List.tests
      , Copy.tests
      , Create.tests
      , Delete.tests
      , Load.tests
      , -- Utility and blob tests
        Blob.tests
      , Common.tests
      ]
  
  main :: IO ()
  main = do
    eRes <- getVersion
    case eRes of
      Left err -> print err
      Right (Version r) -> do
        putStrLn $ "Ollama client version: " <> unpack r
        defaultMain tests
  