packages feed

tiktoken-1.0.0: tasty/Main.hs

{-# LANGUAGE BlockArguments #-}

module Main where

import qualified Data.ByteString as ByteString
import qualified Data.Foldable as Foldable
import qualified Data.Text as Text
import qualified Test.Tasty as Tasty
import qualified Test.Tasty.Silver as Silver

import qualified Tiktoken

main :: IO ()
main = do
    Tasty.defaultMain do
        let actualTokens = do
                bytes <- ByteString.readFile "tasty/sample.txt"
                case Tiktoken.toRanks Tiktoken.cl100k_base bytes of
                    Nothing     -> fail "Encoding failed"
                    Just tokens -> return tokens

        let render = Text.unlines . map (Text.pack . show) . Foldable.toList
                
        Silver.goldenVsAction "golden" "tasty/tokens.golden" actualTokens render