private static Type GetResponseType(ResponseDescriptor response)
 {
     return(response.HttpStatus switch
     {
         var x when x >= 200 && x <= 299 => response.Type,
         422 => typeof(ValidationProblemDetails),
         _ => typeof(ProblemDetails)
     });
        public void Should_To_ResponseDescriptor(byte paramByte1, byte paramByte2, byte paramByte3, byte paramByte4, byte paramByte5, UInt32 dataResponseLength, SendMode sendMode, DataType dataType)
        {
            ResponseDescriptor result = ResponseDescriptorHelper.ToResponseDescriptor(new [] { paramByte1, paramByte2, paramByte3, paramByte4, paramByte5 });

            Assert.Equal(dataResponseLength, result.DataResponseLength);
            Assert.Equal(sendMode, result.SendMode);
            Assert.Equal(dataType, result.DataType);
        }
Пример #3
0
 public IObservable <ResponseDescriptor> Process(IObservable <IList <ResponseId> > source)
 {
     return(source.Select(responses =>
     {
         var stats = new ResponseDescriptor();
         foreach (var response in responses)
         {
             UpdateStatistics(ref stats, response);
         }
         return stats;
     }));
 }
Пример #4
0
    void UpdateStatistics(ref ResponseDescriptor stats, ResponseId response)
    {
        stats.Epoch++;
        switch (response)
        {
        case ResponseId.Hit: stats.Hits++; break;

        case ResponseId.Miss: stats.Misses++; break;

        case ResponseId.FalseAlarm: stats.FalseAlarms++; break;

        case ResponseId.CorrectRejection: stats.CorrectRejections++; break;
        }
    }
    void UpdateTotalStatistics(ref ResponseDescriptor stats, ResponseId response)
    {
        stats.Epoch++;
        switch (response)
        {
        case ResponseId.Hit: stats.TotalGoTrials++; stats.TotalHits++; break;

        case ResponseId.Miss: stats.TotalGoTrials++; break;

        case ResponseId.PullPenalty: stats.TotalGoTrials++; break;

        case ResponseId.FalseAlarm: stats.TotalNoGoTrials++; break;

        case ResponseId.CorrectRejection: stats.TotalNoGoTrials++; break;
        }
    }
        public static ResponseDescriptor ToResponseDescriptor(byte[] data)
        {
            if (data.Length < Constants.ResponseDescriptorLength)
            {
                throw new Exception("RESULT_INVALID_ANS_TYPE");
            }

            //Check Validity
            if (!IsValid(data[0], data[1]))
            {
                throw new Exception("RESULT_INVALID_ANS_TYPE");
            }

            Tuple <uint, SendMode> tuple = GetDataResponseLengthAndSendMode(data);

            ResponseDescriptor responseDescriptor = new ResponseDescriptor();

            responseDescriptor.DataResponseLength = tuple.Item1;
            responseDescriptor.SendMode           = tuple.Item2;
            responseDescriptor.DataType           = (DataType)data[6];

            return(responseDescriptor);
        }