content: {-# LANGUAGE OverloadedStrings #-}
  
  module Test.Ollama.Embedding (tests) where
  
  import Data.Ollama.Embeddings
  import Test.Tasty
  import Test.Tasty.HUnit
  
  -- Qwen doesn't support embeddings yet
  -- TODO: Add embeddings supporting model.
  
  -- testEmbeddingBasic :: TestTree
  -- testEmbeddingBasic = testCase "Basic embedding with qwen3" $ do
  --   res <- embedding "qwen3:0.6b" ["The sky is blue.", "Cats are independent."]
  --   case res of
  --     Left err -> assertFailure $ "Expected success, got error: " ++ show err
  --     Right EmbeddingResp {..} -> do
  --       assertEqual "Should return two embeddings" 2 (length respondedEmbeddings)
  --       assertBool "Embeddings should not be empty" (not (any null respondedEmbeddings))
  
  -- testEmbeddingWithOptions :: TestTree
  -- testEmbeddingWithOptions = testCase "Embedding with truncate and keepAlive" $ do
  --   let opts = defaultModelOptions {numKeep = Just 5, seed = Just 42}
  --   res <-
  --     embeddingOps
  --       "qwen3:0.6b"
  --       ["Hello world"]
  --       (Just True)
  --       (Just 30)
  --       (Just opts)
  --       Nothing
  --       Nothing
  --   case res of
  --     Left err -> assertFailure $ "Unexpected error: " ++ show err
  --     Right EmbeddingResp {..} -> do
  --       assertEqual "Should return one embedding" 1 (length respondedEmbeddings)
  --       assertBool
  --         "Embedding vector should not be empty"
  --         (not . null $ listToMaybe respondedEmbeddings)
  
  testEmbeddingInvalidModel :: TestTree
  testEmbeddingInvalidModel = testCase "Embedding with invalid model name" $ do
    res <- embedding "nonexistent-model" ["This should fail."]
    case res of
      Left _ -> return () -- Expected failure
      Right _ -> assertFailure "Expected failure with invalid model name"
  
  tests :: TestTree
  tests =
    testGroup
      "Embeddings tests"
      [ testEmbeddingInvalidModel
      ]
  