public void ReadLegacy_Metric()
        {
            var entry = BallisticXmlDeserializer.ReadLegacyAmmunitionLibraryEntry("<ammo-info-ex table=\"G1\" bc=\"0.297\" bullet-weight=\"7.70000g\" muzzle-velocity=\"730.00000m/s\" barrel-length=\"410.00000mm\" name=\"7N23\" source=\"GRAU\" caliber=\"7.62x39mm M43\" bullet-type=\"FMJ\" bullet-diameter=\"7.85mm\" bullet-length=\"26mm\" />");

            entry.Should().NotBeNull();
            entry.Ammunition.Should().NotBeNull();

            entry.Name.Should().Be("7N23");
            entry.AmmunitionType.Should().Be("FMJ");
            entry.Source.Should().Be("GRAU");
            entry.Caliber.Should().Be("7.62x39mm M43");
            entry.BarrelLength.Should().Be(new Measurement <DistanceUnit>(410, DistanceUnit.Millimeter));

            entry.Ammunition.BallisticCoefficient.Should().Be(new BallisticCoefficient(0.297, DragTableId.G1));
            entry.Ammunition.Weight.Should().Be(new Measurement <WeightUnit>(7.7, WeightUnit.Gram));
            entry.Ammunition.MuzzleVelocity.Should().Be(new Measurement <VelocityUnit>(730, VelocityUnit.MetersPerSecond));
            entry.Ammunition.BulletLength.Should().Be(new Measurement <DistanceUnit>(26, DistanceUnit.Millimeter));
            entry.Ammunition.BulletDiameter.Should().Be(new Measurement <DistanceUnit>(7.85, DistanceUnit.Millimeter));
        }
        public void ReadLegacy_Incomplete()
        {
            var entry = BallisticXmlDeserializer.ReadLegacyAmmunitionLibraryEntry("<ammo-info-ex table=\"G1\" bc=\"0.297\" bullet-weight=\"7.70000g\" muzzle-velocity=\"730.00000m/s\" name=\"7N23\"  />");

            entry.Should().NotBeNull();
            entry.Ammunition.Should().NotBeNull();

            entry.Name.Should().Be("7N23");
            entry.AmmunitionType.Should().BeNull();
            entry.Source.Should().BeNull();
            entry.Caliber.Should().BeNull();
            entry.BarrelLength.Should().BeNull();

            entry.Ammunition.BallisticCoefficient.Should().Be(new BallisticCoefficient(0.297, DragTableId.G1));
            entry.Ammunition.Weight.Should().Be(new Measurement <WeightUnit>(7.7, WeightUnit.Gram));
            entry.Ammunition.MuzzleVelocity.Should().Be(new Measurement <VelocityUnit>(730, VelocityUnit.MetersPerSecond));
            entry.Ammunition.BulletLength.Should().BeNull();
            entry.Ammunition.BulletDiameter.Should().BeNull();
        }
        public void ReadLegacy_Imperial()
        {
            var entry = BallisticXmlDeserializer.ReadLegacyAmmunitionLibraryEntry("<ammo-info-ex table=\"G7\" bc=\"0.305\" bullet-weight=\"250.00000000gr\" muzzle-velocity=\"2960.00000000ft/s\" barrel-length=\"24.00000000in\" bullet-length=\"1.55000000in\" bullet-diameter=\"0.33800000in\" name=\".338 Lapua 250gr\" source=\"Lapua/Litz\" caliber=\".338 Lapua Magnum\" bullet-type=\"FMJ\" />");

            entry.Should().NotBeNull();
            entry.Ammunition.Should().NotBeNull();

            entry.Name.Should().Be(".338 Lapua 250gr");
            entry.AmmunitionType.Should().Be("FMJ");
            entry.Source.Should().Be("Lapua/Litz");
            entry.Caliber.Should().Be(".338 Lapua Magnum");
            entry.BarrelLength.Should().Be(new Measurement <DistanceUnit>(24, DistanceUnit.Inch));

            entry.Ammunition.BallisticCoefficient.Should().Be(new BallisticCoefficient(0.305, DragTableId.G7));
            entry.Ammunition.Weight.Should().Be(new Measurement <WeightUnit>(250, WeightUnit.Grain));
            entry.Ammunition.MuzzleVelocity.Should().Be(new Measurement <VelocityUnit>(2960, VelocityUnit.FeetPerSecond));
            entry.Ammunition.BulletLength.Should().Be(new Measurement <DistanceUnit>(1.55, DistanceUnit.Inch));
            entry.Ammunition.BulletDiameter.Should().Be(new Measurement <DistanceUnit>(0.338, DistanceUnit.Inch));
        }