public void CompareExpression() { Expression <Func <int, int> > f1 = a => a; Expression <Func <int, int> > f2 = a => a; Expression <Func <int, int> > f3 = b => b; Assert.IsTrue(ExpressionComparer.AreEqual(f1, f2, checkParameterNames: true)); Assert.IsTrue(ExpressionComparer.AreEqual(f1, f2, checkParameterNames: false)); Assert.IsFalse(ExpressionComparer.AreEqual(f1, f3, checkParameterNames: true)); Assert.IsTrue(ExpressionComparer.AreEqual(f1, f3, checkParameterNames: false)); f1.Evaluate(1); Assert2.Throws <InvalidOperationException>("cache", () => f2.Evaluate(2)); }
public void RetrieveSealed() { using (Transaction tr = new Transaction()) using (new EntityCache(EntityCacheType.ForceNewSealed)) { var albums = Database.Query <AlbumEntity>().ToList(); Assert2.AssertAll(GraphExplorer.FromRoots(albums), a => a.Modified == ModifiedState.Sealed); Assert2.Throws <InvalidOperationException>("sealed", () => albums.First().Name = "New name"); var notes = Database.Query <NoteWithDateEntity>().ToList(); Assert2.AssertAll(GraphExplorer.FromRoots(notes), a => a.Modified == ModifiedState.Sealed); //tr.Commit(); } }
public void NestedNamedRollback() { using (Transaction tr = new Transaction()) { SetName("Mickey"); Assert.AreEqual("Mickey", GetName()); using (Transaction tr2 = new Transaction("hola")) { SetName("Minie"); Assert.AreEqual("Minie", GetName()); using (Transaction tr3 = new Transaction()) { SetName("Mouse"); Assert.AreEqual("Mouse", GetName()); //tr3.Commit(); } Assert2.Throws <InvalidOperationException>(() => { using (Transaction tr3 = new Transaction()) { SetName("Mouse"); Assert.AreEqual("Mouse", GetName()); tr3.Commit(); } tr2.Commit(); }); } tr.Commit(); } Assert.AreEqual("Mickey", GetName()); }
public void SaveManyMList() { using (Transaction tr = new Transaction()) using (OperationLogic.AllowSave <AlbumEntity>()) using (OperationLogic.AllowSave <ArtistEntity>()) { var prev = Database.MListQuery((AlbumEntity a) => a.Songs).Count(); var authors = Database.Query <BandEntity>().Take(6).ToList().Concat <IAuthorEntity>( Database.Query <ArtistEntity>().Take(8).ToList()).ToList(); List <AlbumEntity> albums = 0.To(16).Select(i => new AlbumEntity() { Name = "System Greatest hits {0}".FormatWith(i), Author = i < authors.Count ? authors[i] : new ArtistEntity { Name = ".Net Framework" }, Year = 2001, Songs = { new SongEntity { Name = "Compilation {0}".FormatWith(i) } }, State = AlbumState.Saved }).ToList(); albums.SaveList(); Assert2.AssertAll(GraphExplorer.FromRoots(albums), a => !a.IsGraphModified); Assert.AreEqual(prev + 16, Database.MListQuery((AlbumEntity a) => a.Songs).Count()); albums.ForEach(a => a.Name += "Updated"); albums.SaveList(); albums.ForEach(a => a.Songs.ForEach(s => s.Name = "Updated")); albums.SaveList(); //tr.Commit(); } }
public void SaveMList() { using (Transaction tr = new Transaction()) using (OperationLogic.AllowSave <AlbumEntity>()) using (OperationLogic.AllowSave <ArtistEntity>()) { var prev = Database.MListQuery((AlbumEntity a) => a.Songs).Count(); Type[] types = typeof(int).Assembly.GetTypes().Where(a => a.Name.Length > 3 && a.Name.StartsWith("A")).ToArray(); AlbumEntity album = new AlbumEntity() { Name = "System Greatest hits", Author = new ArtistEntity { Name = ".Net Framework" }, Year = 2001, Songs = types.Select(t => new SongEntity() { Name = t.Name }).ToMList(), State = AlbumState.Saved }.Save(); Assert2.AssertAll(GraphExplorer.FromRoot(album), a => !a.IsGraphModified); Assert.AreEqual(prev + types.Length, Database.MListQuery((AlbumEntity a) => a.Songs).Count()); album.Name += "Updated"; album.Save(); album.Songs.ForEach(a => a.Name = "Updated"); album.Save(); //tr.Commit(); } }
public void StdDev() { Assert.AreEqual(null, new int[] { }.StdDev()); Assert.AreEqual(null, new int?[] { }.StdDev()); Assert.AreEqual(null, new int?[] { 1 }.StdDev()); Assert.AreEqual(0, new int?[] { 1, 1, 1 }.StdDev()); Assert.AreEqual(0, new int?[] { 1, null, 1 }.StdDev()); Assert2.AreSimilar(Math.Sqrt(2), new int?[] { 1, null, 3 }.StdDev()); Assert.AreEqual(null, new long[] { }.StdDev()); Assert.AreEqual(null, new long?[] { }.StdDev()); Assert.AreEqual(null, new long?[] { 1 }.StdDev()); Assert.AreEqual(0, new long?[] { 1, 1, 1 }.StdDev()); Assert.AreEqual(0, new long?[] { 1, null, 1 }.StdDev()); Assert2.AreSimilar(Math.Sqrt(2), new long?[] { 1, null, 3 }.StdDev()); Assert.AreEqual(null, new double[] { }.StdDev()); Assert.AreEqual(null, new double?[] { }.StdDev()); Assert.AreEqual(null, new double?[] { 1 }.StdDev()); Assert.AreEqual(0, new double?[] { 1, 1, 1 }.StdDev()); Assert.AreEqual(0, new double?[] { 1, null, 1 }.StdDev()); Assert2.AreSimilar(Math.Sqrt(2), new double?[] { 1, null, 3 }.StdDev()); Assert.AreEqual(null, new float[] { }.StdDev()); Assert.AreEqual(null, new float?[] { }.StdDev()); Assert.AreEqual(null, new float?[] { 1 }.StdDev()); Assert.AreEqual(0, new float?[] { 1, 1, 1 }.StdDev()); Assert.AreEqual(0, new float?[] { 1, null, 1 }.StdDev()); Assert2.AreSimilar(Math.Sqrt(2), new float?[] { 1, null, 3 }.StdDev()); Assert.AreEqual(null, new decimal[] { }.StdDev()); Assert.AreEqual(null, new decimal?[] { }.StdDev()); Assert.AreEqual(null, new decimal?[] { 1 }.StdDev()); Assert.AreEqual(0, new decimal?[] { 1, 1, 1 }.StdDev()); Assert.AreEqual(0, new decimal?[] { 1, null, 1 }.StdDev()); Assert2.AreSimilar(Math.Sqrt(2), (double?)new decimal?[] { 1, null, 3 }.StdDev()); }