AyCode.Core/AyCode.Core.Tests/Serialization
Loretta 3671c70aa1 Fix SGen ref-handling asymmetry; add regression tests
Refactored AcBinarySourceGenerator to use RefAwareEmitPredicate for all ref-handling switch decisions, ensuring child property ref-marker logic is based solely on child compile-time flags. Fixed deserialization drift when parent disables ref-handling but child enables it. Added regression tests and new test models to verify correct round-trip behavior for duplicate child references in collections and dictionaries. Improved XML docs and updated conventions for summary tags. Added SGen string round-trip tests for medium UTF-8/ASCII cases.
2026-05-19 08:32:39 +02:00
..
AcBinaryDateTimeSerializationTests.cs Refactor: Add high-perf JSON serializer & merge support 2025-12-14 19:34:49 +01:00
AcBinarySerializerBasicTests.cs Polymorphic serialization: slot-based prefix system overhaul 2026-03-09 15:04:46 +01:00
AcBinarySerializerBenchmarkTests.cs [LOADED_DOCS: 2 files, no new loads] 2026-05-13 08:40:42 +02:00
AcBinarySerializerChainReferenceTests.cs [LOADED_DOCS: 2 files, no new loads] 2026-05-13 08:40:42 +02:00
AcBinarySerializerChainTests.cs Zero-copy SignalR: direct object response, no SignalData 2026-04-06 22:45:00 +02:00
AcBinarySerializerCircularReferenceTests.cs Update serializer tests for param options; swap option defaults 2026-02-25 09:43:55 +01:00
AcBinarySerializerDateTimeTests.cs Add expression serialization & chain API for JSON deserialization 2025-12-29 15:28:46 +01:00
AcBinarySerializerDiagnosticTests.cs Refactor SGen: property/object marker bridges, FixObj support 2026-03-10 17:32:00 +01:00
AcBinarySerializerGenericTypeTests.cs Add expression serialization & chain API for JSON deserialization 2025-12-29 15:28:46 +01:00
AcBinarySerializerIIdReferenceTests.cs Fix SGen ref-handling asymmetry; add regression tests 2026-05-19 08:32:39 +02:00
AcBinarySerializerMaxDepthTruncateTests.cs Refactor MaxDepth handling: explicit Throw/Truncate/Disable 2026-05-14 14:13:48 +02:00
AcBinarySerializerNamedPipeTests.cs [LOADED_DOCS: 2 files, no new loads] 2026-05-13 08:40:42 +02:00
AcBinarySerializerNavigationPropertyTests.cs Refactor: unify reference handling, footer string interning, benchmarks 2026-01-23 10:50:19 +01:00
AcBinarySerializerNullableTests.cs Add expression serialization & chain API for JSON deserialization 2025-12-29 15:28:46 +01:00
AcBinarySerializerObjectTests.cs Update enum values, PropertySkip code, and add int tests 2026-01-05 09:44:02 +01:00
AcBinarySerializerPipeParallelTests.cs [LOADED_DOCS: 2 files, no new loads] 2026-05-13 08:40:42 +02:00
AcBinarySerializerSGenRuntimeCompatibilityTests.cs Fix SGen ref-handling asymmetry; add regression tests 2026-05-19 08:32:39 +02:00
AcBinarySerializerStringInterningTests.cs Refactor string interning to use enum and attribute 2026-01-26 11:04:25 +01:00
AcExpressionNodeSerializationTests.cs [LOADED_DOCS: 2 files, no new loads] 2026-05-13 08:40:42 +02:00
AcJsonSerializerChainTests.cs Add expression serialization & chain API for JSON deserialization 2025-12-29 15:28:46 +01:00
AcJsonSerializerIIdReferenceTests.cs [LOADED_DOCS: 2 files, no new loads] 2026-05-13 08:40:42 +02:00
AcSerializerTestHelper.cs Add expression serialization & chain API for JSON deserialization 2025-12-29 15:28:46 +01:00
AsyncPipeReaderInputExtensions.cs [LOADED_DOCS: 3 files, no new loads] 2026-05-02 15:51:07 +02:00
ChainReferenceDebugTest.cs [LOADED_DOCS: 2 files, no new loads] 2026-05-13 08:40:42 +02:00
GeneratedSerializerIntegrationTests.cs [LOADED_DOCS: 2 files, no new loads] 2026-05-13 08:40:42 +02:00
QuickBenchmark.cs [LOADED_DOCS: 2 files, no new loads] 2026-05-13 08:40:42 +02:00
README.md Document AcBinary wire format, sync docs, update conventions 2026-03-29 09:11:57 +02:00
Utf8TranscoderTests.cs [LOADED_DOCS: 3 files, no new loads] 2026-05-06 13:52:35 +02:00

README.md

Serialization Tests

Comprehensive test suite for binary and JSON serialization: round-trips, reference handling, chains, and source generator integration.

Key Files

Basic Types

  • AcBinarySerializerBasicTests.cs — Primitives: int, double, string, bool, DateTime, Guid.
  • AcBinarySerializerDateTimeTests.cs — DateTime handling and type mismatch detection.
  • AcBinarySerializerNullableTests.cs — Nullable types: int?, long?, etc.

Complex Objects

  • AcBinarySerializerObjectTests.cs — Nested objects and hierarchies.
  • AcBinarySerializerNavigationPropertyTests.cs — EF-style navigation properties.
  • AcBinarySerializerGenericTypeTests.cs — Generic type parameters.

Reference Handling

  • AcBinarySerializerChainTests.cs — Binary Chain API (CreateDeserializeChain, ThenDeserialize).
  • AcBinarySerializerChainReferenceTests.cs — Chain with $id/$ref references.
  • AcBinarySerializerCircularReferenceTests.cs — Circular/bidirectional references.
  • AcBinarySerializerIIdReferenceTests.cs — IId interface-based reference tracking.
  • AcBinarySerializerStringInterningTests.cs — String deduplication via [AcStringIntern].

JSON

  • AcJsonSerializerChainTests.cs — JSON chain operations.
  • AcJsonSerializerIIdReferenceTests.cs — JSON $id/$ref handling.
  • AcExpressionNodeSerializationTests.cs — Expression tree serialization.

Source Generator & Performance

  • GeneratedSerializerIntegrationTests.cs — Verifies generated writer types implement IGeneratedBinaryWriter.
  • QuickBenchmark.cs — Performance comparison: AcBinary vs MessagePack.
  • AcSerializerTestHelper.cs — Factory methods for test data.