Beispiel #1
0
        public void Do(Db db)
        {
            bool dispose = false; if (db == null)

            {
                db = new Db("DATA"); dispose = true;
            }

#if (SERVER)
            db._db_internal.CallServer = (byte[] f) => { return(SocketTesting.CallServer(f)); };
#endif
#if (SOCKETS)
            db._db_internal.CallServer = (byte[] f) => { return(SocketTesting.CallServer(f, db)); };
#endif
#if (SOCKETS || SAMEDB || INDEXES || SERVER)
            db.Table <SomeData>().Delete(new HashSet <int>(db.Table <SomeData>().Select(f => new { f.Id }).Select(f => f.Id).ToList()));
#endif
            var d = new SomeData()
            {
                Id          = 1,
                Normalized  = 1.2,
                PeriodId    = 5,
                NameSearchS = "professor programming pro1 pro0 pro1 pro2 pro3 pro4 pro5 pro6 pro7 pro8 pro9 pro10 pro11 pro12 pro13 pro14 pro15 pro16 pro17 pro18 pro19 pro20 pro21 pro22 pro23 pro24 pro25 pro26 pro27 pro28 pro29 pro30 pro31 pro32 pro33 pro34 pro35 pro36 pro37 pro38 pro39 pro40 pro41 pro42 pro43 pro44 pro45 pro46 pro47 pro48 pro49 pro50 pro51 pro52 pro53 pro54 pro55 pro56 pro57 pro58 pro59 pro60 pro61 pro62 pro63 pro64 pro65 pro66 pro67 pro68 pro69 pro70 pro71 pro72 pro73 pro74 pro75 pro76 pro77 pro78 pro79 pro80 pro81 pro82 pro83 pro84 pro85 pro86 pro87 pro88 pro89 pro90 pro91 pro92 pro93 pro94 pro95 pro96 pro97 pro98 pro99"
            };
            db.Table <SomeData>().Save(d);;
            d = new SomeData()
            {
                Id          = 2,
                Normalized  = 0.9,
                PeriodId    = 7,
                NameSearchS = "programmming"
            };
            db.Table <SomeData>().Save(d);;
            d = new SomeData()
            {
                Id         = 3,
                Normalized = 0.5,
                PeriodId   = 10
            };
            db.Table <SomeData>().Save(d);;
            d = new SomeData()
            {
                Id          = 4,
                Normalized  = 0.9,
                PeriodId    = 7,
                NameSearchS = "привет"
            };
            db.Table <SomeData>().Save(d);;

            var stats = new LinqdbSelectStatistics();
            var res   = db.Table <SomeData>()
                        .SearchPartial(f => f.NameSearchS, "pro")
                        .OrderBy(f => f.Id)
                        .Select(f => new
            {
                Id       = f.Id,
                PeriodId = f.PeriodId
            }, stats);
            if (res.Count() != 2 || res[0].Id != 1 || res[1].Id != 2)
            {
                throw new Exception("Assert failure");
            }

            if (stats.Total != 2)
            {
                throw new Exception("Assert failure");
            }


#if (SERVER || SOCKETS)
            if (dispose)
            {
                Logic.Dispose();
            }
#else
            if (dispose)
            {
                db.Dispose();
            }
#endif
#if (!SOCKETS && !SAMEDB && !INDEXES && !SERVER)
            if (dispose)
            {
                ServerSharedData.SharedUtils.DeleteFilesAndFoldersRecursively("DATA");
            }
#endif
        }
Beispiel #2
0
        public void Do(Db db)
        {
            bool dispose = false; if (db == null)

            {
                db = new Db("DATA"); dispose = true;
            }

#if (SERVER)
            db._db_internal.CallServer = (byte[] f) => { return(SocketTesting.CallServer(f)); };
#endif
#if (SOCKETS)
            db._db_internal.CallServer = (byte[] f) => { return(SocketTesting.CallServer(f, db)); };
#endif
#if (SOCKETS || SAMEDB || INDEXES || SERVER)
            db.Table <SomeData>().Delete(new HashSet <int>(db.Table <SomeData>().Select(f => new { f.Id }).Select(f => f.Id).ToList()));
#endif
            var d = new SomeData()
            {
                Id         = 1,
                Normalized = 1.2,
                PeriodId   = 5
            };
            db.Table <SomeData>().Save(d);
            d = new SomeData()
            {
                Id         = 2,
                Normalized = 2.3,
                PeriodId   = 10
            };
            db.Table <SomeData>().Save(d);
            d = new SomeData()
            {
                Id         = 3,
                Normalized = 4.5,
                PeriodId   = 15
            };
            db.Table <SomeData>().Save(d);

            var statistics = new LinqdbSelectStatistics();
            var res        = db.Table <SomeData>()
                             .Where(f => f.Normalized > 2 && f.Normalized < 3)
                             .OrderBy(f => f.Date)
                             .Select(f => new
            {
                PeriodId = f.PeriodId
            }, statistics);
            if (res.Count() != statistics.Total)
            {
                throw new Exception("Assert failure");
            }

            statistics = new LinqdbSelectStatistics();
            res        = db.Table <SomeData>()
                         .OrderBy(f => f.Date)
                         .Skip(1)
                         .Take(1)
                         .Select(f => new
            {
                PeriodId = f.PeriodId
            }, statistics);
            if (statistics.Total != 3)
            {
                throw new Exception("Assert failure");
            }

            statistics = new LinqdbSelectStatistics();
            var res2 = db.Table <SomeData>()
                       .OrderBy(f => f.Date)
                       .Skip(1)
                       .Take(2)
                       .SelectEntity(statistics);
            if (statistics.Total != 3)
            {
                throw new Exception("Assert failure");
            }

#if (SERVER || SOCKETS)
            if (dispose)
            {
                Logic.Dispose();
            }
#else
            if (dispose)
            {
                db.Dispose();
            }
#endif
#if (!SOCKETS && !SAMEDB && !INDEXES && !SERVER)
            if (dispose)
            {
                ServerSharedData.SharedUtils.DeleteFilesAndFoldersRecursively("DATA");
            }
#endif
        }
Beispiel #3
0
        public void Do(Db db)
        {
            bool dispose = false; if (db == null)

            {
                db = new Db("DATA"); dispose = true;
            }

#if (SERVER)
            db._db_internal.CallServer = (byte[] f) => { return(SocketTesting.CallServer(f)); };
#endif
#if (SOCKETS)
            db._db_internal.CallServer = (byte[] f) => { return(SocketTesting.CallServer(f, db)); };
#endif
#if (SOCKETS || SAMEDB || INDEXES || SERVER)
            db.Table <SomeData>().DeleteNonAtomically(new HashSet <int>(db.Table <SomeData>().Select(f => new { f.Id }).Select(f => f.Id).ToList()));
#endif
            try
            {
                var d = new SomeData()
                {
                    Id         = 1,
                    Normalized = 1.2,
                    PeriodId   = 5,
                    NameSearch = "test 123 abc"
                };
                db.Table <SomeData>().Save(d);
                d = new SomeData()
                {
                    Id         = 2,
                    Normalized = 0.9,
                    PeriodId   = 7,
                    NameSearch = "test"
                };
                db.Table <SomeData>().Save(d);
                d = new SomeData()
                {
                    Id         = 3,
                    Normalized = 0.5,
                    PeriodId   = 10
                };
                db.Table <SomeData>().Save(d);


                var statistics = new LinqdbSelectStatistics();
                var res        = db.Table <SomeData>()
                                 .SearchTimeLimited(f => f.NameSearch, "test", 1000)
                                 .OrderBy(f => f.Id)
                                 .Select(f => new
                {
                    Id       = f.Id,
                    PeriodId = f.PeriodId
                }, statistics);
                if (res.Count() != 2 || res[0].Id != 1 || res[1].Id != 2)
                {
                    throw new Exception("Assert failure");
                }
                if ((int)statistics.Total != res.Count())
                {
                    throw new Exception("Assert failure");
                }


                db.Table <SomeData>().SaveNonAtomically(Enumerable.Range(0, 1000000).Select(f => new SomeData()
                {
                    NameSearch = "test 123 abc " + f
                }).ToList());

                res = db.Table <SomeData>()
                      .SearchTimeLimited(f => f.NameSearch, "test", 10)
                      .OrderBy(f => f.Id)
                      .Select(f => new
                {
                    Id       = f.Id,
                    PeriodId = f.PeriodId
                }, statistics);

                if ((int)statistics.SearchedPercentile > 90 || res.Count > 900000)
                {
                    throw new Exception("Assert failure");
                }
            }
            finally
            {
                db.Table <SomeData>().DeleteNonAtomically(new HashSet <int>(db.Table <SomeData>().Select(f => new { f.Id }).Select(f => f.Id).ToList()));
            }


#if (SERVER || SOCKETS)
            if (dispose)
            {
                Logic.Dispose();
            }
#else
            if (dispose)
            {
                db.Dispose();
            }
#endif
#if (!SOCKETS && !SAMEDB && !INDEXES && !SERVER)
            if (dispose)
            {
                ServerSharedData.SharedUtils.DeleteFilesAndFoldersRecursively("DATA");
            }
#endif
        }