From dec8546abe1dcebef2796eeeaab3811ae759d7f4 Mon Sep 17 00:00:00 2001 From: redthing1 Date: Mon, 22 May 2023 16:18:04 -0700 Subject: [PATCH] create test project and basic model loading tests --- .../csharp/Gpt4All.Tests/Constants.cs | 10 ++++++ .../csharp/Gpt4All.Tests/Gpt4All.Tests.csproj | 27 ++++++++++++++++ .../csharp/Gpt4All.Tests/ModelFactoryTests.cs | 31 +++++++++++++++++++ gpt4all-bindings/csharp/Gpt4All.sln | 6 ++++ 4 files changed, 74 insertions(+) create mode 100644 gpt4all-bindings/csharp/Gpt4All.Tests/Constants.cs create mode 100644 gpt4all-bindings/csharp/Gpt4All.Tests/Gpt4All.Tests.csproj create mode 100644 gpt4all-bindings/csharp/Gpt4All.Tests/ModelFactoryTests.cs diff --git a/gpt4all-bindings/csharp/Gpt4All.Tests/Constants.cs b/gpt4all-bindings/csharp/Gpt4All.Tests/Constants.cs new file mode 100644 index 00000000..3b8da77c --- /dev/null +++ b/gpt4all-bindings/csharp/Gpt4All.Tests/Constants.cs @@ -0,0 +1,10 @@ +namespace Gpt4All.Tests +{ + public static class Constants + { + public const string MODELS_BASE_DIR = "../../../models"; + public const string LLAMA_MODEL_PATH = $"{MODELS_BASE_DIR}/ggml-gpt4all-l13b-snoozy.bin"; + public const string GPTJ_MODEL_PATH = $"{MODELS_BASE_DIR}/ggml-gpt4all-j-v1.3-groovy.bin"; + public const string MPT_MODEL_PATH = $"{MODELS_BASE_DIR}/ggml-mpt-7b-chat.bin"; + } +} diff --git a/gpt4all-bindings/csharp/Gpt4All.Tests/Gpt4All.Tests.csproj b/gpt4all-bindings/csharp/Gpt4All.Tests/Gpt4All.Tests.csproj new file mode 100644 index 00000000..56211651 --- /dev/null +++ b/gpt4all-bindings/csharp/Gpt4All.Tests/Gpt4All.Tests.csproj @@ -0,0 +1,27 @@ + + + + net6.0 + enable + + false + + + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + + + + + + diff --git a/gpt4all-bindings/csharp/Gpt4All.Tests/ModelFactoryTests.cs b/gpt4all-bindings/csharp/Gpt4All.Tests/ModelFactoryTests.cs new file mode 100644 index 00000000..6465c8df --- /dev/null +++ b/gpt4all-bindings/csharp/Gpt4All.Tests/ModelFactoryTests.cs @@ -0,0 +1,31 @@ +using Xunit; + +namespace Gpt4All.Tests; + +public class ModelFactoryTests +{ + private readonly Gpt4AllModelFactory _modelFactory; + + public ModelFactoryTests() + { + _modelFactory = new Gpt4AllModelFactory(); + } + + [Fact] + public void CanLoadLlamaModel() + { + using var model = _modelFactory.LoadLlamaModel(Constants.LLAMA_MODEL_PATH); + } + + [Fact] + public void CanLoadGptjModel() + { + using var model = _modelFactory.LoadGptjModel(Constants.GPTJ_MODEL_PATH); + } + + [Fact] + public void CanLoadMptModel() + { + using var model = _modelFactory.LoadMptModel(Constants.MPT_MODEL_PATH); + } +} diff --git a/gpt4all-bindings/csharp/Gpt4All.sln b/gpt4all-bindings/csharp/Gpt4All.sln index 929a45e0..65bcc7ce 100644 --- a/gpt4all-bindings/csharp/Gpt4All.sln +++ b/gpt4all-bindings/csharp/Gpt4All.sln @@ -17,6 +17,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Gpt4All", "Gpt4All\Gpt4All.csproj", "{6015C62B-2008-426B-A334-740D6F1FE38B}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Gpt4All.Tests", "Gpt4All.Tests\Gpt4All.Tests.csproj", "{33A72341-52C1-4EAE-878B-A98BC77F686A}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -31,6 +33,10 @@ Global {6015C62B-2008-426B-A334-740D6F1FE38B}.Debug|Any CPU.Build.0 = Debug|Any CPU {6015C62B-2008-426B-A334-740D6F1FE38B}.Release|Any CPU.ActiveCfg = Release|Any CPU {6015C62B-2008-426B-A334-740D6F1FE38B}.Release|Any CPU.Build.0 = Release|Any CPU + {33A72341-52C1-4EAE-878B-A98BC77F686A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {33A72341-52C1-4EAE-878B-A98BC77F686A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {33A72341-52C1-4EAE-878B-A98BC77F686A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {33A72341-52C1-4EAE-878B-A98BC77F686A}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE