Esempio n. 1
0
        public void TriangleFilter2()
        {
            var filter = new FilterSample(new IOconfFilter("Filter;MyFilter;Triangle;1;X", 0));
            var now    = DateTime.Now;

            filter.Input(new List <SensorSample>()
            {
                new SensorSample("X", 3)
                {
                    TimeStamp = now
                }
            });
            filter.Input(new List <SensorSample>()
            {
                new SensorSample("X", 3)
                {
                    TimeStamp = now.AddSeconds(0.1)
                }
            });
            filter.Input(new List <SensorSample>()
            {
                new SensorSample("X", 3)
                {
                    TimeStamp = now.AddSeconds(0.2)
                }
            });
            filter.Input(new List <SensorSample>()
            {
                new SensorSample("X", 3)
                {
                    TimeStamp = now.AddSeconds(0.3)
                }
            });
            filter.Input(new List <SensorSample>()
            {
                new SensorSample("X", 3)
                {
                    TimeStamp = now.AddSeconds(0.4)
                }
            });
            filter.Input(new List <SensorSample>()
            {
                new SensorSample("X", 3)
                {
                    TimeStamp = now.AddSeconds(0.5)
                }
            });
            filter.Input(new List <SensorSample>()
            {
                new SensorSample("X", 3)
                {
                    TimeStamp = now.AddSeconds(0.6)
                }
            });
            filter.Input(new List <SensorSample>()
            {
                new SensorSample("X", 3)
                {
                    TimeStamp = now.AddSeconds(0.7)
                }
            });
            filter.Input(new List <SensorSample>()
            {
                new SensorSample("X", 3)
                {
                    TimeStamp = now.AddSeconds(0.8)
                }
            });
            filter.Input(new List <SensorSample>()
            {
                new SensorSample("X", 4)
                {
                    TimeStamp = now.AddSeconds(0.9)
                }
            });
            filter.Input(new List <SensorSample>()
            {
                new SensorSample("X", 4)
                {
                    TimeStamp = now.AddSeconds(1.0)
                }
            });
            filter.Input(new List <SensorSample>()
            {
                new SensorSample("X", 4)
                {
                    TimeStamp = now.AddSeconds(1.1)
                }
            });
            filter.Input(new List <SensorSample>()
            {
                new SensorSample("X", 4)
                {
                    TimeStamp = now.AddSeconds(1.2)
                }
            });
            filter.Input(new List <SensorSample>()
            {
                new SensorSample("X", 4)
                {
                    TimeStamp = now.AddSeconds(1.3)
                }
            });
            var result = filter.Output.Value;

            Assert.IsTrue(Math.Abs(3.727272727d - result) < 0.0000001, $"{result} - {now:o}");
        }
Esempio n. 2
0
        public void TriangleFilterHandlesTimeAverageWithoutPrecisionLoss()
        { // this test is a stable reproduction of an issue reproduced by test 2 that only happens with some dates, resulting in a wrong value in the original test
            var filter = new FilterSample(new IOconfFilter("Filter;MyFilter;Triangle;1;X", 0));
            var now    = DateTime.ParseExact("2020-12-04T18:34:53.2064482+01:00", "o", Thread.CurrentThread.CurrentCulture);

            filter.Input(new List <SensorSample>()
            {
                new SensorSample("X", 3)
                {
                    TimeStamp = now
                }
            });
            filter.Input(new List <SensorSample>()
            {
                new SensorSample("X", 3)
                {
                    TimeStamp = now.AddSeconds(0.1)
                }
            });
            filter.Input(new List <SensorSample>()
            {
                new SensorSample("X", 3)
                {
                    TimeStamp = now.AddSeconds(0.2)
                }
            });
            filter.Input(new List <SensorSample>()
            {
                new SensorSample("X", 3)
                {
                    TimeStamp = now.AddSeconds(0.3)
                }
            });
            filter.Input(new List <SensorSample>()
            {
                new SensorSample("X", 3)
                {
                    TimeStamp = now.AddSeconds(0.4)
                }
            });
            filter.Input(new List <SensorSample>()
            {
                new SensorSample("X", 3)
                {
                    TimeStamp = now.AddSeconds(0.5)
                }
            });
            filter.Input(new List <SensorSample>()
            {
                new SensorSample("X", 3)
                {
                    TimeStamp = now.AddSeconds(0.6)
                }
            });
            filter.Input(new List <SensorSample>()
            {
                new SensorSample("X", 3)
                {
                    TimeStamp = now.AddSeconds(0.7)
                }
            });
            filter.Input(new List <SensorSample>()
            {
                new SensorSample("X", 3)
                {
                    TimeStamp = now.AddSeconds(0.8)
                }
            });
            filter.Input(new List <SensorSample>()
            {
                new SensorSample("X", 4)
                {
                    TimeStamp = now.AddSeconds(0.9)
                }
            });
            filter.Input(new List <SensorSample>()
            {
                new SensorSample("X", 4)
                {
                    TimeStamp = now.AddSeconds(1.0)
                }
            });
            filter.Input(new List <SensorSample>()
            {
                new SensorSample("X", 4)
                {
                    TimeStamp = now.AddSeconds(1.1)
                }
            });
            filter.Input(new List <SensorSample>()
            {
                new SensorSample("X", 4)
                {
                    TimeStamp = now.AddSeconds(1.2)
                }
            });
            filter.Input(new List <SensorSample>()
            {
                new SensorSample("X", 4)
                {
                    TimeStamp = now.AddSeconds(1.3)
                }
            });
            var result = filter.Output.Value;

            Assert.IsTrue(Math.Abs(3.727272727d - result) < 0.0000001, $"{result}");
        }
Esempio n. 3
0
        public void TriangleFilterHandlesManySamples()
        { // this test is to detect issues with averaging dates when having many samples
            var filter = new FilterSample(new IOconfFilter("Filter;MyFilter;Triangle;1;X", 0));
            var now    = DateTime.Now;

            filter.Input(new List <SensorSample>()
            {
                new SensorSample("X", 3)
                {
                    TimeStamp = now
                }
            });
            filter.Input(new List <SensorSample>()
            {
                new SensorSample("X", 3)
                {
                    TimeStamp = now.AddSeconds(0.1)
                }
            });
            filter.Input(new List <SensorSample>()
            {
                new SensorSample("X", 3)
                {
                    TimeStamp = now.AddSeconds(0.2)
                }
            });
            filter.Input(new List <SensorSample>()
            {
                new SensorSample("X", 3)
                {
                    TimeStamp = now.AddSeconds(0.3)
                }
            });
            filter.Input(new List <SensorSample>()
            {
                new SensorSample("X", 3)
                {
                    TimeStamp = now.AddSeconds(0.4)
                }
            });
            filter.Input(new List <SensorSample>()
            {
                new SensorSample("X", 3)
                {
                    TimeStamp = now.AddSeconds(0.5)
                }
            });
            filter.Input(new List <SensorSample>()
            {
                new SensorSample("X", 3)
                {
                    TimeStamp = now.AddSeconds(0.6)
                }
            });
            filter.Input(new List <SensorSample>()
            {
                new SensorSample("X", 3)
                {
                    TimeStamp = now.AddSeconds(0.7)
                }
            });
            filter.Input(new List <SensorSample>()
            {
                new SensorSample("X", 3)
                {
                    TimeStamp = now.AddSeconds(0.8)
                }
            });
            filter.Input(new List <SensorSample>()
            {
                new SensorSample("X", 4)
                {
                    TimeStamp = now.AddSeconds(0.9)
                }
            });
            filter.Input(new List <SensorSample>()
            {
                new SensorSample("X", 4)
                {
                    TimeStamp = now.AddSeconds(1.0)
                },
                new SensorSample("X", 4)
                {
                    TimeStamp = now.AddSeconds(1.0)
                },
                new SensorSample("X", 4)
                {
                    TimeStamp = now.AddSeconds(1.0)
                },
                new SensorSample("X", 4)
                {
                    TimeStamp = now.AddSeconds(1.0)
                },
                new SensorSample("X", 4)
                {
                    TimeStamp = now.AddSeconds(1.0)
                },
                new SensorSample("X", 4)
                {
                    TimeStamp = now.AddSeconds(1.0)
                },
                new SensorSample("X", 4)
                {
                    TimeStamp = now.AddSeconds(1.0)
                },
                new SensorSample("X", 4)
                {
                    TimeStamp = now.AddSeconds(1.0)
                },
                new SensorSample("X", 4)
                {
                    TimeStamp = now.AddSeconds(1.0)
                },
                new SensorSample("X", 4)
                {
                    TimeStamp = now.AddSeconds(1.0)
                },
                new SensorSample("X", 4)
                {
                    TimeStamp = now.AddSeconds(1.0)
                },
                new SensorSample("X", 4)
                {
                    TimeStamp = now.AddSeconds(1.0)
                },
                new SensorSample("X", 4)
                {
                    TimeStamp = now.AddSeconds(1.0)
                },
                new SensorSample("X", 4)
                {
                    TimeStamp = now.AddSeconds(1.0)
                },
                new SensorSample("X", 4)
                {
                    TimeStamp = now.AddSeconds(1.0)
                },
                new SensorSample("X", 4)
                {
                    TimeStamp = now.AddSeconds(1.0)
                },
                new SensorSample("X", 4)
                {
                    TimeStamp = now.AddSeconds(1.0)
                },
                new SensorSample("X", 4)
                {
                    TimeStamp = now.AddSeconds(1.0)
                },
                new SensorSample("X", 4)
                {
                    TimeStamp = now.AddSeconds(1.0)
                },
                new SensorSample("X", 4)
                {
                    TimeStamp = now.AddSeconds(1.0)
                },
                new SensorSample("X", 4)
                {
                    TimeStamp = now.AddSeconds(1.0)
                },
                new SensorSample("X", 4)
                {
                    TimeStamp = now.AddSeconds(1.0)
                },
                new SensorSample("X", 4)
                {
                    TimeStamp = now.AddSeconds(1.0)
                },
                new SensorSample("X", 4)
                {
                    TimeStamp = now.AddSeconds(1.0)
                },
                new SensorSample("X", 4)
                {
                    TimeStamp = now.AddSeconds(1.0)
                },
                new SensorSample("X", 4)
                {
                    TimeStamp = now.AddSeconds(1.0)
                },
                new SensorSample("X", 4)
                {
                    TimeStamp = now.AddSeconds(1.0)
                },
                new SensorSample("X", 4)
                {
                    TimeStamp = now.AddSeconds(1.0)
                },
                new SensorSample("X", 4)
                {
                    TimeStamp = now.AddSeconds(1.0)
                },
                new SensorSample("X", 4)
                {
                    TimeStamp = now.AddSeconds(1.0)
                },
                new SensorSample("X", 4)
                {
                    TimeStamp = now.AddSeconds(1.0)
                },
                new SensorSample("X", 4)
                {
                    TimeStamp = now.AddSeconds(1.0)
                },
                new SensorSample("X", 4)
                {
                    TimeStamp = now.AddSeconds(1.0)
                },
            });
            filter.Input(new List <SensorSample>()
            {
                new SensorSample("X", 4)
                {
                    TimeStamp = now.AddSeconds(1.1)
                }
            });
            filter.Input(new List <SensorSample>()
            {
                new SensorSample("X", 4)
                {
                    TimeStamp = now.AddSeconds(1.2)
                }
            });
            filter.Input(new List <SensorSample>()
            {
                new SensorSample("X", 4)
                {
                    TimeStamp = now.AddSeconds(1.3)
                }
            });
            var result = filter.Output.Value;

            Assert.IsTrue(Math.Abs(3.727272727d - result) < 0.0000001, $"{result}");
        }
Esempio n. 4
0
        // GET: Samples2

        public async Task <IActionResult> Index(FilterSample filter, int?sampleId, int pageNum = 1)
        {
            var filterSampleLogic = new FilterSampleLogic(_context);

            var queryModel = filterSampleLogic.GetSamples(filter);


            //creates a list of Burial with Burial IDs (so we can link them in the view)
            ViewBag.MasterBurialList = _context.MasterBurial2
                                       .Where(c => c.BurialId != null)
                                       .ToList();


            //check to see if user is admin
            var isAdmin = _context.AspNetUsers
                          .Where(c => c.UserName == User.Identity.Name);

            foreach (var thing in isAdmin)
            {
                if (thing.isAdmin == true)
                {
                    ViewData["isAdmin"] = true;
                }
            }

            //check to see if user is researcher
            var isResearcher = _context.AspNetUsers
                               .Where(c => c.UserName == User.Identity.Name);

            foreach (var thing in isResearcher)
            {
                if (thing.isResearcher == true)
                {
                    ViewData["isResearcher"] = true;
                }
            }

            //pageSize raised to enable the use of jquery tables
            int pageSize = 10000;

            int skip = 0;

            //used for asp.net pagination
            if (pageNum - 1 < 0)
            {
                skip = 0;
            }
            else
            {
                skip = (pageNum - 1) * pageSize;
            }



            return(View(new PaginationViewModel
            {
                Samples = (queryModel
                           //.Where(c => c.SampleId == sampleId || sampleId == null)
                           .Skip(skip)
                           .Take(pageSize)
                           .ToList()),

                PageNumberingInfo = new PageNumberingInfo
                {
                    NumItemsPerPage = pageSize,
                    CurrentPage = pageNum,

                    TotalNumItems = (sampleId == null ? queryModel.Count() :
                                     queryModel.Where(x => x.SampleId == sampleId).Count())
                },

                UrlInfo = Request.QueryString.Value
            }));


            //var waterbuffaloContext = _context.Samples2.Include(s => s.Burial);
            //return View(await waterbuffaloContext.ToListAsync());
        }