public void WriteNulls()
        {
            using (var stream = new MemoryStream())
            {
                IIonWriter writer;
                using (writer = new ManagedBinaryWriter(BinaryConstants.EmptySymbolTablesArray))
                {
                    writer.StepIn(IonType.Struct);

                    foreach (var iType in Enum.GetValues(typeof(IonType)))
                    {
                        if ((IonType)iType == IonType.Datagram || (IonType)iType == IonType.None)
                        {
                            continue;
                        }

                        var name = Enum.GetName(typeof(IonType), iType);
                        writer.SetFieldName($"null_{name}");
                        writer.WriteNull((IonType)iType);
                    }

                    writer.StepOut();
                    writer.Flush(stream);
                }

                var reader = new UserBinaryReader(new MemoryStream(stream.ToArray()));
                reader.MoveNext();
                reader.StepIn();

                foreach (var iType in Enum.GetValues(typeof(IonType)))
                {
                    if ((IonType)iType == IonType.Datagram || (IonType)iType == IonType.None)
                    {
                        continue;
                    }
                    var name = Enum.GetName(typeof(IonType), iType);
                    Assert.AreEqual((IonType)iType, reader.MoveNext());
                    Assert.AreEqual($"null_{name}", reader.CurrentFieldName);
                    Assert.IsTrue(reader.CurrentIsNull);
                }

                reader.StepOut();
            }
        }