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

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  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. public class NewtsonsoftEncodingConverter : JsonConverter
  41. {
  42. public override bool CanConvert(Type objectType)
  43. {
  44. return typeof(Encoding).IsAssignableFrom(objectType);
  45. }
  46. public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
  47. {
  48. writer.WriteValue(((Encoding)value).WebName);
  49. }
  50. public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
  51. {
  52. return Encoding.GetEncoding((string)reader.Value);
  53. }
  54. }
  55. }
  56. }