@@ -528,7 +528,7 @@ private class IndicatorData
528528 {
529529 public int Line { get ; init ; }
530530 public CandleMessage Candle { get ; init ; }
531- public decimal [ ] Values { get ; init ; }
531+ public decimal ? [ ] Values { get ; init ; }
532532 }
533533
534534 public static void Check < T > ( this IIndicator indicator , CandleMessage [ ] candles , Func < ICandleMessage , T > getValue )
@@ -553,7 +553,7 @@ public static void Check<T>(this IIndicator indicator, CandleMessage[] candles,
553553 {
554554 Line = idx ,
555555 Candle = candles [ idx ] ,
556- Values = [ .. parts . Select ( p => p . To < decimal > ( ) ) ] ,
556+ Values = [ .. parts . Select ( p => p . To < decimal ? > ( ) ) ] ,
557557 } ;
558558 } ) . ToArray ( ) ) ;
559559
@@ -578,20 +578,21 @@ void CheckValue(IIndicatorValue value, int column)
578578 if ( ! indicator . IsFormed )
579579 return ;
580580
581- var shift = value is ShiftedIndicatorValue sv ? sv . Shift : 0 ;
582-
583- var data = values [ values . Count - shift - 1 ] ;
581+ var data = values [ values . Count - 1 ] ;
584582
585583 if ( value . IsEmpty )
586584 {
587- data . Values . Length . AssertEqual ( 0 ) ;
585+ //testValue.AssertNull( );
588586 }
589587 else
590588 {
591589 var testValue = data . Values [ column ] ;
590+
591+ testValue . AssertNotNull ( ) ;
592+
592593 var indValue = value . ToDecimal ( ) . Round ( 2 ) ;
593594
594- ( ( testValue - indValue ) . Abs ( ) < epsilon ) . AssertTrue ( ) ;
595+ ( ( testValue . Value - indValue ) . Abs ( ) < epsilon ) . AssertTrue ( ) ;
595596 }
596597 }
597598
0 commit comments