[fix]修正UdpServer在接收广播时连续启动接收的错误,在StarAgent中,此时可能收到广播包,SocketFlags是Broadcast,需要清空,否则报错“参考的对象类型不支持尝试的操作”; 无需设置SocketOptionName.PacketInformation,在ReceiveMessageFromAsync时会自动设置,并且支持ipv6;
石头 编写于 2024-10-10 00:36:00 石头 提交于 2024-10-10 00:45:43
X
using System;
using NewLife.Data;
using Xunit;

namespace XUnitTest.Data
{
    public class GeoHashTests
    {
        [Fact]
        public void Encode()
        {
            // 鸟巢
            Assert.Equal("wx4g8c9vn", GeoHash.Encode(116.402843, 39.999375));
            // 水立方
            Assert.Equal("wx4g89tkz", GeoHash.Encode(116.3967, 39.99932));
            // 故宫
            Assert.Equal("wx4g0ffev", GeoHash.Encode(116.40382, 39.918118));
        }

        [Fact]
        public void Decode()
        {
            var gp1 = GeoHash.Decode("wx4g8c9vn");
            Assert.True(Math.Abs(116.402843 - gp1.Longitude) < 0.0001);
            Assert.True(Math.Abs(39.999375 - gp1.Latitude) < 0.0001);

            var gp2 = GeoHash.Decode("wx4g89tkz");
            Assert.True(Math.Abs(116.3967 - gp2.Longitude) < 0.0001);
            Assert.True(Math.Abs(39.99932 - gp2.Latitude) < 0.0001);

            var gp3 = GeoHash.Decode("wx4g0ffev");
            Assert.True(Math.Abs(116.40382 - gp3.Longitude) < 0.0001);
            Assert.True(Math.Abs(39.918118 - gp3.Latitude) < 0.0001);
        }
    }
}