public void WorkbookInsert() { List<SumAnalysisX> SumAnalysisXs = new List<SumAnalysisX>(); for (int i = 0; i < 8; i++) { SumAnalysisX SumAnalysisX1 = new SumAnalysisX() { ClassName = i.ToString() + "班级", MaxScore = 100 + i, Total = 1000 + i, TotalAverage = 10 + i }; List<SubjectScoreDetailX> ssd = new List<SubjectScoreDetailX>(); for (int j = 0; j < 4; j++) { ssd.Add(new SubjectScoreDetailX() { Score = 10000 + j, TypeName = "kemu " + j.ToString(), TypeId = j }); } SumAnalysisX1.SubjectScoreDetails = ssd; SumAnalysisXs.Add(SumAnalysisX1); } WorkbookWrapper w = new WorkbookWrapper(); SheetDetail sd = new SheetDetail("sxf"); SheetDetailDataWrapper sheetDetailDataWrapper = new SheetDetailDataWrapper("No.1", SumAnalysisXs.Cast<IExcelModelBase>()); sd.SheetDetailDataWrappers.Add(sheetDetailDataWrapper); w.AddSheetDetail(sd); w.Save(@"C:\sxf.xls"); }
public void ExpandoAsJoin() { var customers = new List<dynamic>(); for (int i = 0; i < 10; ++i) { string iter = i.ToString(); for (int j = 0; j < 3; ++j) { dynamic customer = new ExpandoObject(); customer.City = "Chicago" + iter; customer.Id = i; customer.Name = "Name" + iter; customer.CompanyName = "Company" + iter + j.ToString(); customers.Add(customer); } } var customers2 = new List<dynamic>(customers); var result = customers2.Cast<IDictionary<string, object>>().Query<IDictionary<string, object>, IDictionary<string, object>, dynamic>("SELECT this.City FROM this INNER JOIN that ON this.Id = that.Id", customers.Cast<IDictionary<string, object>>()); var answer = from c2 in customers2 join c in customers on c2.Id equals c.Id select c2.City; Assert.IsTrue(result.Any()); Assert.IsTrue(answer.SequenceEqual(result)); }
public void All() { var e1 = Emit<LotsOfParams>.NewDynamicMethod(); for (ushort i = 0; i < 260; i++) { e1.LoadArgumentAddress(i); e1.LoadIndirect<int>(); } for (var i = 0; i < 259; i++) { e1.Add(); } e1.Return(); var d1 = e1.CreateDelegate(); var rand = new Random(); var args = new List<int>(); for (var i = 0; i < 260; i++) { args.Add(rand.Next(10)); } var ret = (int)d1.DynamicInvoke(args.Cast<object>().ToArray()); Assert.AreEqual(args.Sum(), ret); }
public void All() { var e1 = Emit<LotsOfParams>.NewDynamicMethod(); var args = new List<int>(); for (ushort i = 0; i < 260; i++) { e1.LoadConstant(i); e1.StoreArgument(i); args.Add(i); } for (ushort i = 0; i < 260; i++) { e1.LoadArgument(i); } for (var i = 0; i < 259; i++) { e1.Add(); } e1.Return(); var d1 = e1.CreateDelegate(); var x = (int)d1.DynamicInvoke(args.Cast<object>().ToArray()); Assert.AreEqual(args.Sum(), x); }
public void AllNonGeneric() { var returnType = typeof(LotsOfParams).GetMethod("Invoke").ReturnType; var paramTypes = typeof(LotsOfParams).GetMethod("Invoke").GetParameters().Select(p => p.ParameterType).ToArray(); var e1 = Emit.NewDynamicMethod(returnType, paramTypes); var args = new List<int>(); for (ushort i = 0; i < 260; i++) { e1.LoadConstant(i); e1.StoreArgument(i); args.Add(i); } for (ushort i = 0; i < 260; i++) { e1.LoadArgument(i); } for (var i = 0; i < 259; i++) { e1.Add(); } e1.Return(); var d1 = e1.CreateDelegate<LotsOfParams>(); var x = (int)d1.DynamicInvoke(args.Cast<object>().ToArray()); Assert.AreEqual(args.Sum(), x); }
public void ThenNextMustUpdateDependentIterators() { var sources = new List<TestSource> { new TestSource{ Count = 0 }, new TestSource{ Count = 100 } }; using (var first = new Iterator(sources.Cast<object>().ToList(), null)) using (var second = new Iterator(new List<object>{first}, null)) { Assert.AreEqual(0, ((IList<object>)first.GetItem())[0]); Assert.AreEqual(100, ((IList<object>)first.GetItem())[1]); Assert.AreEqual(0, ((IList<object>)second.GetItem())[0]); Assert.AreEqual(100, ((IList<object>)second.GetItem())[1]); Iterator.NextAll(Iterator.DefaultScope); Assert.AreEqual(1, ((IList<object>)first.GetItem())[0]); Assert.AreEqual(101, ((IList<object>)first.GetItem())[1]); Assert.AreEqual(1, ((IList<object>)second.GetItem())[0]); Assert.AreEqual(101, ((IList<object>)second.GetItem())[1]); } }
public void ThenGetItemMustNotNext() { var sources = new List<TestSource> { new TestSource{ Count = 0 }, new TestSource{ Count = 100 } }; using (var iterator = new Iterator(sources.Cast<object>().ToList(), null)) { //Incremented on next due to constructor Assert.AreEqual(1, sources[0].Count); Assert.AreEqual(101, sources[1].Count); Assert.AreEqual(0, ((IList<object>)iterator.GetItem())[0]); Assert.AreEqual(100, ((IList<object>)iterator.GetItem())[1]); //Test again to make sure it doesn't pull Assert.AreEqual(0, ((IList<object>)iterator.GetItem())[0]); Assert.AreEqual(100, ((IList<object>)iterator.GetItem())[1]); } }
public void ExpandoAsDistinct() { var source = new List<dynamic>(); for (int i = 0; i < 10; ++i) { string iter = i.ToString(); for (int j = 0; j < 3; ++j) { dynamic customer = new ExpandoObject(); customer.City = "Chicago" + iter; customer.Id = i; customer.Name = "Name" + iter; customer.CompanyName = "Company" + iter + j.ToString(); source.Add(customer); } } var result = source.Cast<IDictionary<string, object>>().Query<IDictionary<string, object>, dynamic>("SELECT DISTINCT City, Name FROM this").Cast<IDictionary<string, object>>(); var answer = source.Select(d => { dynamic o = new ExpandoObject(); o.City = d.City; o.Name = d.Name; return o; }).Cast<IDictionary<string, object>>().Distinct(new DictionaryComparer<string, object>()); Assert.IsTrue(result.Any()); Assert.IsTrue(answer.SequenceEqual(result, new DictionaryComparer<string, object>())); }
public void ExpandoAsSource() { var customers = new List<dynamic>(); for (int i = 0; i < 10; ++i) { string iter = i.ToString(); for (int j = 0; j < 3; ++j) { dynamic customer = new ExpandoObject(); customer.City = "Chicago" + iter; customer.Id = i; customer.Name = "Name" + iter; customer.CompanyName = "Company" + iter + j.ToString(); customers.Add(customer); } } // all this casting is just to get the answer and result into the same storage types for comparison var result = customers.Cast<IDictionary<string, object>>().Query<IDictionary<string, object>, dynamic>("SELECT City, Name FROM this").Cast<IDictionary<string, object>>(); var answer = customers.Select<dynamic, dynamic>(d => { dynamic o = new ExpandoObject(); o.City = d.City; o.Name = d.Name; return o; }).Cast<IDictionary<string, object>>(); Assert.IsTrue(result.Any()); Assert.IsTrue(answer.SequenceEqual(result, new DictionaryComparer<string, object>())); }
public void ThenNextMustUpdateFromSources() { var sources = new List<TestSource> { new TestSource{ Count = 0 }, new TestSource{ Count = 100 } }; using (var iterator = new Iterator(sources.Cast<object>().ToList(),null)) { //Incremented on next due to constructor Assert.AreEqual(1, sources[0].Count); Assert.AreEqual(101, sources[1].Count); Assert.AreEqual(0, ((IList<object>)iterator.GetItem())[0] ); Assert.AreEqual(100, ((IList<object>)iterator.GetItem())[1]); Iterator.NextAll(Iterator.DefaultScope); Assert.AreEqual(2, sources[0].Count); Assert.AreEqual(102, sources[1].Count); Assert.AreEqual(1, ((IList<object>)iterator.GetItem())[0]); Assert.AreEqual(101, ((IList<object>)iterator.GetItem())[1]); } }
public void GivenInitialRecords_WhenBind_ThenResultTotalRecordsMatches() { IQueryable<Program> originalItems = new List<Program> { new Program(), new Program(), new Program() }.AsQueryable(); IQueryable<Program> sortedItems = new List<Program>().AsQueryable().OrderBy(p => p); DataTable.Expect(m => m.ApplySort(null)).Return(sortedItems); DataTable.Expect(m => m.CreateResultSet(sortedItems, RequestModel)).Return(sortedItems.Cast<object>().ToList()); DataTableResultModel actual = Target.Bind<Program>(originalItems, DataTable, RequestModel); Assert.AreEqual(originalItems.Count(), actual.iTotalRecords); }
public void WhenBind_ThenApplyFilter_AndThenApplySort_AndThenCreateResultSet() { IQueryable<Program> originalItems = Enumerable.Empty<Program>().AsQueryable(); IQueryable<Program> filteredItems = new List<Program>().AsQueryable(); IOrderedQueryable<Program> sortedItems = new List<Program>().AsQueryable().OrderBy(p => p); DataTable.Expect(m => m.ApplyFilters(originalItems)).Return(filteredItems); DataTable.Expect(m => m.ApplySort(filteredItems)).Return(sortedItems); DataTable.Expect(m => m.CreateResultSet(sortedItems, RequestModel)).Return(sortedItems.Cast<object>().ToList()); Target.Bind<Program>(originalItems, DataTable, RequestModel); DataTable.AssertWasCalled(m => m.CreateResultSet(sortedItems, RequestModel)); }
public void GivenRequestEchoValue_WhenBind_ThenResultEchoMatches() { string expected = "this is the expected!"; IQueryable<Program> items = Enumerable.Empty<Program>().AsQueryable(); IQueryable<Program> sortedItems = new List<Program>().AsQueryable().OrderBy(p => p); RequestModel.sEcho = expected; DataTable.Expect(m => m.ApplySort(null)).Return(sortedItems); DataTable.Expect(m => m.CreateResultSet(sortedItems, RequestModel)).Return(sortedItems.Cast<object>().ToList()); DataTableResultModel actual = Target.Bind<Program>(items, DataTable, RequestModel); Assert.AreEqual(expected, actual.sEcho); }
public void Cast() { // arrange List<Object> list = new List<Object>() { 1, 2, 3 }; // act List<int> actual = list.Cast<int>().ToList(); // assert Assert.AreEqual(1, actual[0]); Assert.AreEqual(2, actual[1]); Assert.AreEqual(3, actual[2]); }