public void ShfeTopTransactionContractTest() { DateTime date = new DateTime(2014, 1, 6); string webText = TestUtility.RetrieveWebPage(date, new ShfeDailyTransactionCrawler()); var parser = new ShfeTransactionParser(); var listFromWeb = parser.GetTopContracts(webText, 2, date); string[] topContracts = new string[] { "cu1403", "cu1404", "al1403", "al1404", "zn1403", "zn1404", "pb1401", "pb1402", "au1412", "au1406", "ag1401", "ag1406", "rb1405", "rb1410", "ru1405", "ru1409" }; var listOfCommodity = listFromWeb.GroupBy(c => c.Commodity); foreach (var contracts in listOfCommodity) { if (contracts.Count() > 2) { Assert.Fail(); } } var webTopContracts = listFromWeb.Select(c => c.Commodity + c.Contract); var joinResult = webTopContracts.Join(topContracts, s => s, s => s, (s1, s2) => s1); int jc = joinResult.Count(); Assert.IsTrue(joinResult.Count() == topContracts.Length); }