예제 #1
0
        public void AddAndReadTest()
        {
            if (System.IO.File.Exists(File2))
            {
                System.IO.File.Delete(File2);
            }
            if (System.IO.File.Exists($"{File2}.h"))
            {
                System.IO.File.Delete($"{File2}.h");
            }
            var blockChain = new BlockChain <TestBlockData>(File2);


            using var sha256 = SHA256.Create();
            TestBlockData data      = new TestBlockData("12345678910");
            var           prevBlock = blockChain.First();
            var           block     = Block <TestBlockData> .Create(prevBlock.Hash(sha256), data, prevBlock.GetBlockHeader().GetTarget(), sha256);

            var token = new CancellationTokenSource();

            token.CancelAfter(TimeSpan.FromSeconds(TimeoutInSec));
            var m = block.Mine(token.Token);

            m.Wait();
            block = m.Result;

            blockChain.Add(block);

            Assert.IsTrue(TestHelper.ArrayEquals(block.ToArray(), blockChain.First().ToArray()),
                          "Block is not added to the blockchain, or could not read the blockchain");
            Assert.IsTrue(blockChain.First().IsValid(prevBlock.Hash(sha256), sha256), "Added block is not valid");
        }
예제 #2
0
    private void EvaluateEndedBlock()
    {
        //Calculates a throughput for the block as an average of the throughputs of all sequences
        double throughputTotal = 0;

        foreach (TestSequence sequence in TestBlockData.Sequences)
        {
            throughputTotal += sequence.Throughput;
        }
        TestBlockData.Throughput = throughputTotal / TestBlockData.Sequences.Count;
        //Calculates a throughput for the block using all sequences' and trials' center errors and movement times
        //TestBlockData.Throughput = TestDataHelper.CalculateThroughput(TestBlockData.TargetAmplitudes,
        //    TestDataHelper.CalculateDeltaX(TestBlockData.GetTrialCenterError()), TestBlockData.GetMovementTimes());
        TestBlockData.CalculateMeanMovementTime();
        TestBlockData.CalculateErrorRate();


        TestBlockData.MeanRotationSumDegree = TestBlockData.Sequences.Average(el => el.RotationSumDegree);
        //if (_useDB)
        //{
        //    SaveToDb();
        //    Debug.Log("----Test Data Saved To Database----");
        //}

        StudyManager.Instance.AddLogGeneral(TestBlockData);
        Debug.Log("Evaluating block ended");
        //Cursor.visible = true;
        //Cursor.lockState = CursorLockMode.None;
        //SendToEmail();
        StudyManager.Instance.StartChangeBlock();
    }
예제 #3
0
        public void AddTest()
        {
            if (System.IO.File.Exists(File))
            {
                System.IO.File.Delete(File);
            }
            var blockChain = new BlockChain <TestBlockData>(File);

            var data  = new TestBlockData("12345678910");
            var token = new CancellationTokenSource();

            token.CancelAfter(TimeSpan.FromSeconds(TimeoutInSec));

            blockChain.Add(data, token: token.Token).Wait();

            Assert.IsTrue(TestHelper.ArrayEquals(data.ToArray(), blockChain.First().GetData().ToArray()), "Block is not added to the blockchain, or could not read the blockchain");
            Assert.IsTrue(blockChain.First().IsValid(blockChain.First().GetBlockHeader().HashPrevBlock, blockChain.GetHashingAlgorithm()), "Added block is not valid");
        }
예제 #4
0
    private void EvaluateEndedBlock()
    {
        //Calculates a throughput for the block as an average of the throughputs of all sequences
        double throughputTotal = 0;

        foreach (TestSequence sequence in TestBlockData.Sequences)
        {
            throughputTotal += sequence.Throughput;
        }
        TestBlockData.Throughput = throughputTotal / TestBlockData.Sequences.Count;
        //Calculates a throughput for the block using all sequences' and trials' center errors and movement times
        //TestBlockData.Throughput = TestDataHelper.CalculateThroughput(TestBlockData.TargetAmplitudes,
        //    TestDataHelper.CalculateDeltaX(TestBlockData.GetTrialCenterError()), TestBlockData.GetMovementTimes());
        TestBlockData.CalculateMeanMovementTime();
        TestBlockData.CalculateErrorRate();

        if (_useDB)
        {
            SaveToDb();
            Debug.Log("----Test Data Saved To Database----");
        }
    }
예제 #5
0
 private void SaveToDb()
 {
     _dbController.InsertTestResults(TestBlockData.CreateDTO());
 }
예제 #6
0
    private void SaveToDb()
    {
        var dataDto = TestBlockData.CreateDTO();

        _dbController.InsertTestResults(dataDto);
    }