using Microsoft.VisualStudio.TestTools.UnitTesting; using Edge.Core.Parser.BinaryParser.Util; using ShellChina_EPS_Project_CarPlatePay_EpsClient_App.MessageEntity; using ShellChina_EPS_Project_CarPlatePay_EpsClient_App.MessageEntity.Base; using System.Collections.Generic; using System.Linq; namespace ShellChina_EPS_Project_CarPlatePay_EpsClient_App_Test { [TestClass] public class BitMapHelperUnitTest { public static bool ValueEquals(IEnumerable array1, IEnumerable array2) { if (array1 == null && array2 == null) { return true; } if ((array1 == null) || (array2 == null)) { return false; } if (array1.Count() != array2.Count()) { return false; } if (array1.Equals(array2)) { return true; } else { for (int Index = 0; Index < array1.Count(); Index++) { if (!Equals(array1.ElementAt(Index), array2.ElementAt(Index))) { return false; } } } return true; } [TestMethod] public void CreateMap_TestMethod1() { var map = BitMapHelper.CreateMap(3, 34, 41); var expect = new byte[] { 0x20, 0, 0, 0, 0x40, 0x80, 0, 0 }; Assert.AreEqual(true, ValueEquals(map, expect), "expect: \r\n" + expect.Select(e => e.ToString("X2")).Aggregate((acc, n) => acc + " " + n) + "\r\n actual: " + map.Select(e => e.ToString("X2")).Aggregate((acc, n) => acc + " " + n)); } [TestMethod] public void CreateMap_TestMethod2() { var map = BitMapHelper.CreateMap(1, 2, 3, 4, 5); var expect = new byte[] { 0xF8, 0, 0, 0, 0, 0, 0, 0 }; Assert.AreEqual(true, ValueEquals(map, expect), "expect: \r\n" + expect.Select(e => e.ToString("X2")).Aggregate((acc, n) => acc + " " + n) + "\r\n actual: " + map.Select(e => e.ToString("X2")).Aggregate((acc, n) => acc + " " + n)); } [TestMethod] public void CreateMap_TestMethod3() { var map = BitMapHelper.CreateMap(8); var expect = new byte[] { 1, 0, 0, 0, 0, 0, 0, 0 }; Assert.AreEqual(true, ValueEquals(map, expect), "expect: \r\n" + expect.Select(e => e.ToString("X2")).Aggregate((acc, n) => acc + " " + n) + "\r\n actual: " + map.Select(e => e.ToString("X2")).Aggregate((acc, n) => acc + " " + n)); } [TestMethod] public void CreateMap_TestMethod4() { var map = BitMapHelper.CreateMap(8, 9); var expect = new byte[] { 1, 0x80, 0, 0, 0, 0, 0, 0 }; Assert.AreEqual(true, ValueEquals(map, expect), "expect: \r\n" + expect.Select(e => e.ToString("X2")).Aggregate((acc, n) => acc + " " + n) + "\r\n actual: " + map.Select(e => e.ToString("X2")).Aggregate((acc, n) => acc + " " + n)); } [TestMethod] public void CreateMap_TestMethod5() { var map = BitMapHelper.CreateMap(8, 9, 10); var expect = new byte[] { 1, 0xC0, 0, 0, 0, 0, 0, 0 }; Assert.AreEqual(true, ValueEquals(map, expect), "expect: \r\n" + expect.Select(e => e.ToString("X2")).Aggregate((acc, n) => acc + " " + n) + "\r\n actual: " + map.Select(e => e.ToString("X2")).Aggregate((acc, n) => acc + " " + n)); } [TestMethod] public void CreateMap_TestMethod6() { var map = BitMapHelper.CreateMap(1, 8, 9, 10, 11, 12); var expect = new byte[] { 0x81, 0xF0, 0, 0, 0, 0, 0, 0 }; Assert.AreEqual(true, ValueEquals(map, expect), "expect: \r\n" + expect.Select(e => e.ToString("X2")).Aggregate((acc, n) => acc + " " + n) + "\r\n actual: " + map.Select(e => e.ToString("X2")).Aggregate((acc, n) => acc + " " + n)); } [TestMethod] public void CreateMap_TestMethod7() { var map = BitMapHelper.CreateMap(9, 10, 11, 12, 13, 14, 15, 16); var expect = new byte[] { 0, 0xFF, 0, 0, 0, 0, 0, 0 }; Assert.AreEqual(true, ValueEquals(map, expect), "expect: \r\n" + expect.Select(e => e.ToString("X2")).Aggregate((acc, n) => acc + " " + n) + "\r\n actual: " + map.Select(e => e.ToString("X2")).Aggregate((acc, n) => acc + " " + n)); } [TestMethod] public void CreateMap_TestMethod8() { var map = BitMapHelper.CreateMap(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16); var expect = new byte[] { 0xFF, 0xFF, 0, 0, 0, 0, 0, 0 }; Assert.AreEqual(true, ValueEquals(map, expect), "expect: \r\n" + expect.Select(e => e.ToString("X2")).Aggregate((acc, n) => acc + " " + n) + "\r\n actual: " + map.Select(e => e.ToString("X2")).Aggregate((acc, n) => acc + " " + n)); } [TestMethod] public void CreateMap_TestMethod9() { var map = BitMapHelper.CreateMap(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24); var expect = new byte[] { 0xFF, 0xFF, 0xFF, 0, 0, 0, 0, 0 }; Assert.AreEqual(true, ValueEquals(map, expect), "expect: \r\n" + expect.Select(e => e.ToString("X2")).Aggregate((acc, n) => acc + " " + n) + "\r\n actual: " + map.Select(e => e.ToString("X2")).Aggregate((acc, n) => acc + " " + n)); } [TestMethod] public void CreateMap_TestMethod10() { var map = BitMapHelper.CreateMap(17, 18, 19, 20, 21, 22, 23, 24); var expect = new byte[] { 0, 0, 0xFF, 0, 0, 0, 0, 0 }; Assert.AreEqual(true, ValueEquals(map, expect), "expect: \r\n" + expect.Select(e => e.ToString("X2")).Aggregate((acc, n) => acc + " " + n) + "\r\n actual: " + map.Select(e => e.ToString("X2")).Aggregate((acc, n) => acc + " " + n)); } [TestMethod] public void CreateMap_TestMethod11() { var map = BitMapHelper.CreateMap(25, 26, 27, 28, 29, 30, 31, 32); var expect = new byte[] { 0, 0, 0, 0xFF, 0, 0, 0, 0 }; Assert.AreEqual(true, ValueEquals(map, expect), "expect: \r\n" + expect.Select(e => e.ToString("X2")).Aggregate((acc, n) => acc + " " + n) + "\r\n actual: " + map.Select(e => e.ToString("X2")).Aggregate((acc, n) => acc + " " + n)); } [TestMethod] public void CreateMap_TestMethod12() { var map = BitMapHelper.CreateMap(33, 34, 35, 36, 37, 38, 39, 40); var expect = new byte[] { 0, 0, 0, 0, 0xFF, 0, 0, 0 }; Assert.AreEqual(true, ValueEquals(map, expect), "expect: \r\n" + expect.Select(e => e.ToString("X2")).Aggregate((acc, n) => acc + " " + n) + "\r\n actual: " + map.Select(e => e.ToString("X2")).Aggregate((acc, n) => acc + " " + n)); } [TestMethod] public void CreateMap_TestMethod13() { var map = BitMapHelper.CreateMap(41, 42, 43, 44, 45, 46, 47, 48); var expect = new byte[] { 0, 0, 0, 0, 0, 0xFF, 0, 0 }; Assert.AreEqual(true, ValueEquals(map, expect), "expect: \r\n" + expect.Select(e => e.ToString("X2")).Aggregate((acc, n) => acc + " " + n) + "\r\n actual: " + map.Select(e => e.ToString("X2")).Aggregate((acc, n) => acc + " " + n)); } [TestMethod] public void CreateMap_TestMethod14() { var map = BitMapHelper.CreateMap(49, 50, 51, 52, 53, 54, 55, 56); var expect = new byte[] { 0, 0, 0, 0, 0, 0, 0xFF, 0 }; Assert.AreEqual(true, ValueEquals(map, expect), "expect: \r\n" + expect.Select(e => e.ToString("X2")).Aggregate((acc, n) => acc + " " + n) + "\r\n actual: " + map.Select(e => e.ToString("X2")).Aggregate((acc, n) => acc + " " + n)); } [TestMethod] public void CreateMap_TestMethod15() { var map = BitMapHelper.CreateMap(57, 58, 59, 60, 61, 62, 63, 64); var expect = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0xFF }; Assert.AreEqual(true, ValueEquals(map, expect), "expect: \r\n" + expect.Select(e => e.ToString("X2")).Aggregate((acc, n) => acc + " " + n) + "\r\n actual: " + map.Select(e => e.ToString("X2")).Aggregate((acc, n) => acc + " " + n)); } [TestMethod] public void CreateMap_TestMethod16() { var map = BitMapHelper.CreateMap(1, 2, 3, 4, 5, 6, 7, 8, 57, 58, 59, 60, 61, 62, 63, 64); var expect = new byte[] { 0xFF, 0, 0, 0, 0, 0, 0, 0xFF }; Assert.AreEqual(true, ValueEquals(map, expect), "expect: \r\n" + expect.Select(e => e.ToString("X2")).Aggregate((acc, n) => acc + " " + n) + "\r\n actual: " + map.Select(e => e.ToString("X2")).Aggregate((acc, n) => acc + " " + n)); } [TestMethod] public void CreateMap_TestMethod17() { var map = BitMapHelper.CreateMap(1, 2, 3, 4, 5, 6, 7, 8, 17, 18, 19, 20, 21, 22, 23, 24, 57, 58, 59, 60, 61, 62, 63, 64); var expect = new byte[] { 0xFF, 0, 0xFF, 0, 0, 0, 0, 0xFF }; Assert.AreEqual(true, ValueEquals(map, expect), "expect: \r\n" + expect.Select(e => e.ToString("X2")).Aggregate((acc, n) => acc + " " + n) + "\r\n actual: " + map.Select(e => e.ToString("X2")).Aggregate((acc, n) => acc + " " + n)); } [TestMethod] public void CreateMap_TestMethod18() { var map = BitMapHelper.CreateMap(1, 9, 17, 25, 33, 41, 49, 57); var expect = new byte[] { 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }; Assert.AreEqual(true, ValueEquals(map, expect), "expect: \r\n" + expect.Select(e => e.ToString("X2")).Aggregate((acc, n) => acc + " " + n) + "\r\n actual: " + map.Select(e => e.ToString("X2")).Aggregate((acc, n) => acc + " " + n)); } [TestMethod] public void CreateMap_TestMethod19() { var map = BitMapHelper.CreateMap(8, 16, 24, 32, 40, 48, 56, 64); var expect = new byte[] { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 }; Assert.AreEqual(true, ValueEquals(map, expect), "expect: \r\n" + expect.Select(e => e.ToString("X2")).Aggregate((acc, n) => acc + " " + n) + "\r\n actual: " + map.Select(e => e.ToString("X2")).Aggregate((acc, n) => acc + " " + n)); } [TestMethod] public void CreateMap_TestMethod20() { var map = BitMapHelper.CreateMap(7, 15, 23, 31, 39, 47, 55, 63); var expect = new byte[] { 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02 }; Assert.AreEqual(true, ValueEquals(map, expect), "expect: \r\n" + expect.Select(e => e.ToString("X2")).Aggregate((acc, n) => acc + " " + n) + "\r\n actual: " + map.Select(e => e.ToString("X2")).Aggregate((acc, n) => acc + " " + n)); } [TestMethod] public void CreateMap_TestMethod21() { var map = BitMapHelper.CreateMap(6, 14, 22, 30, 38, 46, 54, 62); var expect = new byte[] { 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 }; Assert.AreEqual(true, ValueEquals(map, expect), "expect: \r\n" + expect.Select(e => e.ToString("X2")).Aggregate((acc, n) => acc + " " + n) + "\r\n actual: " + map.Select(e => e.ToString("X2")).Aggregate((acc, n) => acc + " " + n)); } [TestMethod] public void CreateMap_TestMethod22() { var map = BitMapHelper.CreateMap(6, 7, 14, 15, 22, 23, 30, 31, 38, 39, 46, 47, 54, 55, 62, 63); var expect = new byte[] { 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06 }; Assert.AreEqual(true, ValueEquals(map, expect), "expect: \r\n" + expect.Select(e => e.ToString("X2")).Aggregate((acc, n) => acc + " " + n) + "\r\n actual: " + map.Select(e => e.ToString("X2")).Aggregate((acc, n) => acc + " " + n)); } [TestMethod] public void CreateMap_TestMethod23() { var map = BitMapHelper.CreateMap(6, 7, 8, 14, 15, 16, 22, 23, 24, 30, 31, 32, 38, 39, 40, 46, 47, 48, 54, 55, 56, 62, 63, 64); var expect = new byte[] { 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07 }; Assert.AreEqual(true, ValueEquals(map, expect), "expect: \r\n" + expect.Select(e => e.ToString("X2")).Aggregate((acc, n) => acc + " " + n) + "\r\n actual: " + map.Select(e => e.ToString("X2")).Aggregate((acc, n) => acc + " " + n)); } [TestMethod] public void Enable_TestMethod1() { var map = BitMapHelper.CreateMap(); map = map.Enable(1, 2); var expect = new byte[] { 0xC0, 0, 0, 0, 0, 0, 0, 0 }; Assert.AreEqual(true, ValueEquals(map, expect), "expect: \r\n" + expect.Select(e => e.ToString("X2")).Aggregate((acc, n) => acc + " " + n) + "\r\n actual: " + map.Select(e => e.ToString("X2")).Aggregate((acc, n) => acc + " " + n)); } [TestMethod] public void Enable_TestMethod2() { var map = BitMapHelper.CreateMap(); map = map.Enable(1, 2, 3, 4, 5); var expect = new byte[] { 0xF8, 0, 0, 0, 0, 0, 0, 0 }; Assert.AreEqual(true, ValueEquals(map, expect), "expect: \r\n" + expect.Select(e => e.ToString("X2")).Aggregate((acc, n) => acc + " " + n) + "\r\n actual: " + map.Select(e => e.ToString("X2")).Aggregate((acc, n) => acc + " " + n)); } [TestMethod] public void Enable_TestMethod3() { var map = BitMapHelper.CreateMap(); map = map.Enable(1, 8, 9, 16, 17, 24, 25, 32, 33, 40, 41, 48, 49, 56, 57, 64); var expect = new byte[] { 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81 }; Assert.AreEqual(true, ValueEquals(map, expect), "expect: \r\n" + expect.Select(e => e.ToString("X2")).Aggregate((acc, n) => acc + " " + n) + "\r\n actual: " + map.Select(e => e.ToString("X2")).Aggregate((acc, n) => acc + " " + n)); } [TestMethod] public void Determine_TestMethod1() { var enablingIndexes = new int[] { 1, 2 }; var map = BitMapHelper.CreateMap(); map = map.Enable(enablingIndexes); for (int i = 0; i < enablingIndexes.Length; i++) { var actual = map.Determine(enablingIndexes[i]); Assert.AreEqual(true, actual); } } [TestMethod] public void Determine_TestMethod2() { var enablingIndexes = new int[] { 1, 8, 9, 10, 17, 24, 32, 33, 40, 42, 48, 55, 56, 57 }; var map = BitMapHelper.CreateMap(); map = map.Enable(enablingIndexes); for (int i = 0; i < enablingIndexes.Length; i++) { var actual = map.Determine(enablingIndexes[i]); Assert.AreEqual(true, actual); } } [TestMethod] public void Determine_TestMethod3() { var enablingIndexes = new int[] { 32, 33, 40, 42, 48, 55, 56, 57 }; var map = BitMapHelper.CreateMap(); map = map.Enable(enablingIndexes); for (int i = 0; i < enablingIndexes.Length; i++) { var actual = map.Determine(enablingIndexes[i]); Assert.AreEqual(true, actual); } } [TestMethod] public void Determine_TestMethod4() { var enablingIndexes = new int[] { 1, 2, 3 }; var map = BitMapHelper.CreateMap(enablingIndexes); map = map.Enable(enablingIndexes); for (int i = 0; i < enablingIndexes.Length; i++) { var actual = map.Determine(enablingIndexes[i]); Assert.AreEqual(true, actual); } } [TestMethod] public void Determine_TestMethod5() { var map = BitMapHelper.CreateMap(1); var enabledList = map.Determine(); Assert.AreEqual(true, enabledList.Count == 1); Assert.AreEqual(true, enabledList[0] == 1); //for (int i = 0; i < enabledList.Count; i++) //{ // var actual = map.Determine(enabledList[i]); // Assert.AreEqual(true, actual); //} } [TestMethod] public void Determine_TestMethod6() { var map = BitMapHelper.CreateMap(4, 8); var enabledList = map.Determine(); Assert.AreEqual(true, enabledList.Count == 2); Assert.AreEqual(true, enabledList.Contains(4)); Assert.AreEqual(true, enabledList.Contains(8)); //for (int i = 0; i < enabledList.Count; i++) //{ // var actual = map.Determine(enabledList[i]); // Assert.AreEqual(true, actual); //} } [TestMethod] public void Determine_TestMethod7() { var map = BitMapHelper.CreateMap(4, 8, 14, 19, 38, 60); var enabledList = map.Determine(); Assert.AreEqual(true, enabledList.Count == 6); Assert.AreEqual(true, enabledList.Contains(4)); Assert.AreEqual(true, enabledList.Contains(8)); Assert.AreEqual(true, enabledList.Contains(14)); Assert.AreEqual(true, enabledList.Contains(19)); Assert.AreEqual(true, enabledList.Contains(38)); Assert.AreEqual(true, enabledList.Contains(60)); //for (int i = 0; i < enabledList.Count; i++) //{ // var actual = map.Determine(enabledList[i]); // Assert.AreEqual(true, actual); //} } [TestMethod] public void Determine_TestMethod8() { var map = new byte[] { 0x20, 0x10, 0x01, 0x00, 0x42, 0x80, 0x00, 0x00 }; var enabledList = map.Determine(); Assert.AreEqual(true, enabledList.Count == 6); Assert.AreEqual(true, enabledList.Contains(3)); Assert.AreEqual(true, enabledList.Contains(12)); Assert.AreEqual(true, enabledList.Contains(24)); Assert.AreEqual(true, enabledList.Contains(34)); Assert.AreEqual(true, enabledList.Contains(39)); Assert.AreEqual(true, enabledList.Contains(41)); //for (int i = 0; i < enabledList.Count; i++) //{ // var actual = map.Determine(enabledList[i]); // Assert.AreEqual(true, actual); //} } [TestMethod] public void Determine_TestMethod9() { var map = "2000000003000000".ToBytes(); var enabledList = map.Determine(); Assert.AreEqual(true, enabledList.Count == 3); Assert.AreEqual(true, enabledList.Contains(3)); Assert.AreEqual(true, enabledList.Contains(39)); Assert.AreEqual(true, enabledList.Contains(40)); //for (int i = 0; i < enabledList.Count; i++) //{ // var actual = map.Determine(enabledList[i]); // Assert.AreEqual(true, actual); //} } [TestMethod] public void Determine_TestMethod10() { var map = "3010030040800000".ToBytes(); var enabledList = map.Determine(); Assert.AreEqual(true, enabledList.Count == 7); Assert.AreEqual(true, enabledList.Contains(3)); Assert.AreEqual(true, enabledList.Contains(4)); Assert.AreEqual(true, enabledList.Contains(12)); Assert.AreEqual(true, enabledList.Contains(23)); Assert.AreEqual(true, enabledList.Contains(24)); Assert.AreEqual(true, enabledList.Contains(34)); //for (int i = 0; i < enabledList.Count; i++) //{ // var actual = map.Determine(enabledList[i]); // Assert.AreEqual(true, actual); //} } [TestMethod] public void Determine_TestMethod11() { var map = "3a10000002000000".ToBytes(); var enabledList = map.Determine(); Assert.AreEqual(true, enabledList.Count == 6); Assert.AreEqual(true, enabledList.Contains(3)); Assert.AreEqual(true, enabledList.Contains(4)); Assert.AreEqual(true, enabledList.Contains(5)); Assert.AreEqual(true, enabledList.Contains(7)); Assert.AreEqual(true, enabledList.Contains(12)); Assert.AreEqual(true, enabledList.Contains(39)); //for (int i = 0; i < enabledList.Count; i++) //{ // var actual = map.Determine(enabledList[i]); // Assert.AreEqual(true, actual); //} } } }