示例#1
0
    static void Main(string[] args)
    {
        var agency         = new Agency();
        var inputGenerator = new InputGenerator();

        List <Invoice> invoices = inputGenerator.GenerateInvoices(10000);

        foreach (var inv in invoices)
        {
            agency.Create(inv);
        }

        var mostOccur = inputGenerator.MostOccur(invoices, x => x.DueDate);

        DateTime mostOccurDueDate = mostOccur.Key;

        DateTime minDueDate = mostOccurDueDate.AddYears(-1);
        DateTime maxDueDate = mostOccurDueDate.AddYears(1);

        var watch = new Stopwatch();

        watch.Start();
        try
        {
            agency.ThrowInvoiceInPeriod(minDueDate, maxDueDate);
        }
        catch (ArgumentException ignored)
        {
        }
        watch.Stop();

        long elapsedTime = watch.ElapsedMilliseconds;

        System.Console.WriteLine(elapsedTime);
    }
    public void RemoveWithBrand_With_100_000_Entities()
    {
        List <Computer> computers = this.inputGenerator.GenerateComputers(100000);
        Brand           brand     = inputGenerator.MostOccur(computers, x => x.Brand).Key;

        foreach (var comp in computers)
        {
            microsystems.CreateComputer(comp);
        }
        var watch = new Stopwatch();

        watch.Start();

        microsystems.RemoveWithBrand(brand);


        watch.Stop();

        long elapsedTime = watch.ElapsedMilliseconds;

        // throw new ArgumentException("time: " + elapsedTime);

        Assert.IsTrue(elapsedTime <= 65);
    }
    public void GetInRangePrice_With_10_000_Entities()
    {
        List <Computer> computers = this.inputGenerator.GenerateComputers(10000);
        var             color     = inputGenerator.MostOccur(computers, x => x.Color).Key;

        foreach (var comp in computers)
        {
            microsystems.CreateComputer(comp);
        }
        var watch = new Stopwatch();

        watch.Start();

        microsystems.GetInRangePrice(1000, 5000);


        watch.Stop();

        long elapsedTime = watch.ElapsedMilliseconds;

        // throw new ArgumentException("time: " + elapsedTime);

        Assert.IsTrue(elapsedTime <= 30);
    }
    public void GetAllWithScreenSize_With_200_000_Entities()
    {
        List <Computer> computers = this.inputGenerator.GenerateComputers(200000);
        var             size      = inputGenerator.MostOccur(computers, x => x.ScreenSize).Key;

        foreach (var comp in computers)
        {
            microsystems.CreateComputer(comp);
        }
        var watch = new Stopwatch();

        watch.Start();

        microsystems.GetAllWithScreenSize(size);


        watch.Stop();

        long elapsedTime = watch.ElapsedMilliseconds;

        //throw new ArgumentException("time: " + elapsedTime);

        Assert.IsTrue(elapsedTime <= 115);
    }