public void Test_chip_layout_2() { LogicChip chip = new LogicChip(); chip.NewElement(ElementOID.PII, "123456789012").WillLock = true; chip.NewElement(ElementOID.SetInformation, "1203"); chip.NewElement(ElementOID.ShelfLocation, "QA268.L55"); chip.NewElement(ElementOID.OwnerInstitution, "US-InU-Mu").WillLock = true; Debug.Write(chip.ToString()); var result = chip.GetBytes(4 * 9, 4, GetBytesStyle.None, out string block_map); string result_string = Element.GetHexString(result, "4"); byte[] correct = Element.FromHexString( @"91 00 05 1c be 99 1a 14 02 01 d0 14 02 04 b3 46 07 44 1c b6 e2 e3 35 d6 83 02 07 ac c0 9e ba a0 6f 6b 00 00" ); Assert.IsTrue(result.SequenceEqual(correct)); Assert.AreEqual(block_map, "ww....www"); }
public void Test_chip2_layout_1() { LogicChip chip = new LogicChip(); chip.NewElement(ElementOID.PII, "B123456"); chip.NewElement(ElementOID.OMF, "BA"); Debug.Write(chip.ToString()); var result = chip.GetBytes(4 * 28, 4, GetBytesStyle.None, out string block_map); string result_string = Element.GetHexString(result, "4"); Debug.Write(chip.ToString()); }
public void Test_chip_layout_1() { byte[] data = Element.FromHexString( @"91 00 05 1c be 99 1a 14 02 01 d0 14 02 04 b3 46 07 44 1c b6 e2 e3 35 d6 83 02 07 ac c0 9e ba a0 6f 6b 00 00" ); LogicChip chip = LogicChip.From(data, 4, "ll....lll"); Debug.Write(chip.ToString()); chip.Elements[0].SetLocked(true); chip.Elements[4].SetLocked(true); chip.SetIsNew(false); chip.Sort(4 * 9, 4, true); Assert.IsTrue(chip.Elements[0].OID == ElementOID.PrimaryItemIdentifier); Assert.IsTrue(chip.Elements[1].OID == ElementOID.ContentParameter); Assert.IsTrue(chip.Elements[2].OID == ElementOID.SetInformation); Assert.IsTrue(chip.Elements[3].OID == ElementOID.ShelfLocation); Assert.IsTrue(chip.Elements[4].OID == ElementOID.OwnerInstitution); }
public void Test_chip_example_from() { byte[] data = Element.FromHexString( @"91 00 05 1c be 99 1a 14 02 01 d0 14 02 04 b3 46 07 44 1c b6 e2 e3 35 d6 83 02 07 ac c0 9e ba a0 6f 6b 00 00" ); LogicChip chip = LogicChip.From(data, 4, "ll....lll"); Debug.Write(chip.ToString()); Assert.AreEqual(chip.FindElement(ElementOID.PrimaryItemIdentifier).Text, "123456789012"); Assert.AreEqual(chip.FindElement(ElementOID.SetInformation).Text, "1203"); Assert.AreEqual(chip.FindElement(ElementOID.ShelfLocation).Text, "QA268.L55"); Assert.AreEqual(chip.FindElement(ElementOID.OwnerInstitution).Text, "US-InU-Mu"); }
public void Test_encode_mb11_1() { LogicChip chip = new LogicChip(); chip.NewElement(ElementOID.SetInformation, "1203"); chip.NewElement(ElementOID.ShelfLocation, "QA268.L55"); chip.NewElement(ElementOID.OwnerInstitution, "US-InU-Mu").CompactMethod = CompactionScheme.SevenBitCode; // 如果让 GetBytes() 自动选择压缩方案,这个元素会被选择 ISIL 压缩方案 Debug.Write(chip.ToString()); var result = chip.GetBytes(4 * 9, 4, GetBytesStyle.ReserveSequence, out string block_map); string result_string = Element.GetHexString(result, "4"); byte[] correct = Element.FromHexString( @"02 01 D0 14 02 04B3 4607 441C b6E2 E335 D653 08AB 4D6C 9DD5 56CD EB" ); Assert.IsTrue(result.SequenceEqual(correct)); // Assert.AreEqual(block_map, "ww....www"); }
public void test_logicChip_7() { // ganchuang 2 byte[] data = ByteArray.GetTimeStampByteArray("91020312D68700000201B80300650110660100670100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"); LogicChip chip = LogicChip.From(data, 4); Debug.Write(chip.ToString()); }
public void test_logicChip_5() { // byte[] data = ByteArray.GetTimeStampByteArray("C102071100B0C30C30C600000203A80008830203D6593F0000250110370210405F080599A713063F"); LogicChip chip = LogicChip.From(data, 4); Debug.Write(chip.ToString()); }
public void test_logicChip_4() { // jiangxi jingyuan 2 byte[] data = ByteArray.GetTimeStampByteArray("11030AA9770000000000000000000000000000000000000000000000000000000000000000000000"); LogicChip chip = LogicChip.From(data, 4); Debug.Write(chip.ToString()); }
public void Test_chip_complex_layout_2() { byte[] data = Element.FromHexString( @"91 00 05 1c be 99 1a 14 02 05 d0 00 00 00 00 14 02 04 b3 46 07 44 1c b6 e2 e3 35 d6 83 02 07 ac c0 9e ba a0 6f 6b 00 00" ); LogicChip chip = LogicChip.From(data, 4, "ll.....lll"); Debug.Write(chip.ToString()); Assert.AreEqual(chip.FindElement(ElementOID.PrimaryItemIdentifier).Text, "123456789012"); Assert.AreEqual(chip.FindElement(ElementOID.SetInformation).Text, "1203"); Assert.AreEqual(chip.FindElement(ElementOID.ShelfLocation).Text, "QA268.L55"); Assert.AreEqual(chip.FindElement(ElementOID.OwnerInstitution).Text, "US-InU-Mu"); // 先固化为写入过的状态 // 测试在后面继续加入新元素 chip.NewElement(ElementOID.Title, "test").WillLock = true; var result = chip.GetBytes(4 * 20, 4, GetBytesStyle.None, out string block_map); Debug.Write(chip.ToString()); string result_string = Element.GetHexString(result, "4"); // 以前的最后一个非锁定元素,跑到了以前最后的锁定元素后面。因为 Content Parameter 字段变长了,顶走了它 Assert.AreEqual("ll.....lllww", block_map); }
public void test_logicChip_11() { // 汪总提供 // string bytes = @"E102074535353536373200000201B8030C1B81E130103A1AC9AB4C48BF65011266010067010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000575F4F4B"; byte[] data = Element.FromHexString(bytes); LogicChip chip = LogicChip.From(data, 4); Debug.Write(chip.ToString()); }
public void test_errorParse_01() { /* * string bytes = @"29 15 56 C5 * 2E 87 D2 47 * 32 25 2E 54 * D5 16 D4 14 * 12 13 20 00 * 00 00 00 00"; */ string bytes = @"E15663223E6C39411062767A637149542253E64A4608417B67610000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"; byte[] data = Element.FromHexString(bytes); LogicChip chip = LogicChip.From(data, 4); Debug.Write(chip.ToString()); }
public void test_logicChip_10() { // liuxing // 暂时无法解析第二个元素 string bytes = @"21 04 00 00 61 0a 53 45 30 31 30 33 36 31 30 33 02 01 a0 03 0b 1b 81 e1 20 00 0a 01 ac a2 a6 5f 65 01 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 "; byte[] data = Element.FromHexString(bytes); LogicChip chip = LogicChip.From(data, 4); Debug.Write(chip.ToString()); }
public void Test_chip_layout_4() { LogicChip chip = new LogicChip(); chip.NewElement(ElementOID.PII, "123456789012").WillLock = true; var result = chip.GetBytes(4 * 11, 4, GetBytesStyle.None, out string block_map); Debug.Write(chip.ToString()); string result_string = Element.GetHexString(result, "4"); byte[] correct = Element.FromHexString( @"91 00 05 1c be 99 1a 14" ); Assert.IsTrue(result.SequenceEqual(correct)); Assert.AreEqual(block_map, "ww"); }
public void test_logicChip_8() { string bytes = @"E1 01 08 30 31 30 30 31 36 34 33 00 82 00 01 A0 E3 01 08 53 4D 33 36 31 30 30 31 00 E5 00 01 32 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 31 30 00 00 36 31 30 30 00 00 33 34 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 "; // wanghu 1 byte[] data = Element.FromHexString(bytes); LogicChip chip = LogicChip.From(data, 4); Debug.Write(chip.ToString()); }
public void test_logicChip_9() { // 数字平台 string bytes = @"21 04 00 00 00 1F 02 01 30 65 01 10 56 11 AA D9 B3 45 CC 59 31 5F 39 AB 96 0B F6 69 DD 95 9F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 "; byte[] data = Element.FromHexString(bytes); LogicChip chip = LogicChip.From(data, 4); Debug.Write(chip.ToString()); }
public void Test_large_layout_1() { LogicChip chip = new LogicChip(); chip.NewElement(ElementOID.PII, "1234567890"); chip.NewElement(ElementOID.SetInformation, "1203"); chip.NewElement(ElementOID.ShelfLocation, "QA268.L55"); chip.NewElement(ElementOID.OwnerInstitution, "US-InU-Mu"); chip.NewElement(ElementOID.LocalDataA, "1234567890"); chip.NewElement(ElementOID.LocalDataB, "1234567890"); chip.NewElement(ElementOID.LocalDataC, "1234567890"); chip.NewElement(ElementOID.Title, "1234567890 1234567890 1234567890"); chip.NewElement(ElementOID.AOI, "1234567890"); chip.NewElement(ElementOID.SOI, "1234567890"); chip.NewElement(ElementOID.AIBI, "1234567890"); Debug.Write(chip.ToString()); var result = chip.GetBytes(4 * 28, 4, GetBytesStyle.None, out string block_map); }
public void Test_setElementPos_1() { LogicChip chip = new LogicChip(); SetContent(chip); chip.SetIsNew(false); chip.Sort(4 * 28, 4, true); foreach (var element in chip.Elements) { int end = element.StartOffs + element.OriginData.Length; Assert.IsTrue(end < 4 * 28, "越过末尾"); } // 转换为 bytes。然后重新解析 var bytes = chip.GetBytes(4 * 28, 4, GetBytesStyle.None, out string block_map); LogicChip chip1 = LogicChip.From(bytes, 4); Debug.Write(chip1.ToString()); /* * List<OneArea> free_element_layout = new List<OneArea>(); * List<int> free_segments = new List<int>(); * List<object> anchor_list = new List<object>(); * * chip.SetElementsPos( * 4 * 9, * free_element_layout, * free_segments, * anchor_list); */ }