You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

ModelsParamsTests.cs 2.1 kB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. using System.Text;
  2. using LLama.Common;
  3. using Newtonsoft.Json;
  4. namespace LLama.Unittest
  5. {
  6. public class ModelsParamsTests
  7. {
  8. [Fact]
  9. public void SerializeRoundTripSystemTextJson()
  10. {
  11. var expected = new ModelParams("abc/123")
  12. {
  13. BatchSize = 17,
  14. ContextSize = 42,
  15. LoraAdapter = "adapter",
  16. Seed = 42,
  17. GpuLayerCount = 111
  18. };
  19. var json = System.Text.Json.JsonSerializer.Serialize(expected);
  20. var actual = System.Text.Json.JsonSerializer.Deserialize<ModelParams>(json);
  21. Assert.Equal(expected, actual);
  22. }
  23. [Fact]
  24. public void SerializeRoundTripNewtonsoft()
  25. {
  26. var expected = new ModelParams("abc/123")
  27. {
  28. BatchSize = 17,
  29. ContextSize = 42,
  30. LoraAdapter = "adapter",
  31. Seed = 42,
  32. GpuLayerCount = 111
  33. };
  34. var settings = new Newtonsoft.Json.JsonSerializerSettings();
  35. settings.Converters.Add(new NewtsonsoftEncodingConverter());
  36. var json = Newtonsoft.Json.JsonConvert.SerializeObject(expected, settings);
  37. var actual = Newtonsoft.Json.JsonConvert.DeserializeObject<ModelParams>(json, settings);
  38. Assert.Equal(expected, actual);
  39. }
  40. private class NewtsonsoftEncodingConverter
  41. : Newtonsoft.Json.JsonConverter<Encoding>
  42. {
  43. public override void WriteJson(JsonWriter writer, Encoding? value, JsonSerializer serializer)
  44. {
  45. writer.WriteValue((string?)value?.WebName);
  46. }
  47. public override Encoding? ReadJson(JsonReader reader, Type objectType, Encoding? existingValue, bool hasExistingValue, JsonSerializer serializer)
  48. {
  49. var name = (string?)reader.Value;
  50. if (name == null)
  51. return null;
  52. return Encoding.GetEncoding(name);
  53. }
  54. }
  55. }
  56. }