public void NewId() { var f = new FlowId(); var id = f.NewId(); var time = id >> 22; var tt = f.StartTimestamp.AddMilliseconds(time); Assert.True(tt <= DateTime.Now); var wid = (id >> 12) & 0x3FF; Assert.Equal(f.WorkerId, wid); var seq = id & 0x0FFF; Assert.Equal(f.Sequence, seq); // 时间转编号 var id2 = f.GetId(tt); Assert.Equal(id >> 22, id2 >> 22); // 分析 var rs = f.TryParse(id, out var t, out var w, out var s); Assert.True(rs); Assert.Equal(tt, t); Assert.Equal(wid, w); Assert.Equal(seq, s); }