@@ -64,27 +64,46 @@ class RateSourceSuite extends StreamTest {
6464 )
6565 }
6666
67+ test(" valueAtSecond" ) {
68+ import RateStreamSource ._
69+
70+ assert(valueAtSecond(seconds = 0 , tuplesPerSecond = 5 , rampUpTimeSeconds = 2 ) === 0 )
71+ assert(valueAtSecond(seconds = 1 , tuplesPerSecond = 5 , rampUpTimeSeconds = 2 ) === 1 )
72+ assert(valueAtSecond(seconds = 2 , tuplesPerSecond = 5 , rampUpTimeSeconds = 2 ) === 3 )
73+ assert(valueAtSecond(seconds = 3 , tuplesPerSecond = 5 , rampUpTimeSeconds = 2 ) === 8 )
74+
75+ assert(valueAtSecond(seconds = 0 , tuplesPerSecond = 10 , rampUpTimeSeconds = 4 ) === 0 )
76+ assert(valueAtSecond(seconds = 1 , tuplesPerSecond = 10 , rampUpTimeSeconds = 4 ) === 2 )
77+ assert(valueAtSecond(seconds = 2 , tuplesPerSecond = 10 , rampUpTimeSeconds = 4 ) === 6 )
78+ assert(valueAtSecond(seconds = 3 , tuplesPerSecond = 10 , rampUpTimeSeconds = 4 ) === 12 )
79+ assert(valueAtSecond(seconds = 4 , tuplesPerSecond = 10 , rampUpTimeSeconds = 4 ) === 20 )
80+ assert(valueAtSecond(seconds = 5 , tuplesPerSecond = 10 , rampUpTimeSeconds = 4 ) === 30 )
81+ }
82+
6783 test(" rampUpTimeSeconds" ) {
6884 val input = spark.readStream
6985 .format(" rate" )
7086 .option(" tuplesPerSecond" , " 10" )
71- .option(" rampUpTimeSeconds" , " 5 " )
87+ .option(" rampUpTimeSeconds" , " 4 " )
7288 .option(" useManualClock" , " true" )
7389 .load()
7490 .select($" value" )
7591 testStream(input)(
7692 AdvanceRateManualClock (seconds = 1 ),
77- CheckLastBatch ((0 until 2 ): _* ),
93+ CheckLastBatch (0 until 2 : _* ), // speed = 2
94+ AdvanceRateManualClock (seconds = 1 ),
95+ CheckLastBatch (2 until 6 : _* ), // speed = 4
7896 AdvanceRateManualClock (seconds = 1 ),
79- CheckLastBatch (( 2 until 8 ) : _* ),
97+ CheckLastBatch (6 until 12 : _* ), // speed = 6
8098 AdvanceRateManualClock (seconds = 1 ),
81- CheckLastBatch (( 8 until 18 ) : _* ),
99+ CheckLastBatch (12 until 20 : _* ), // speed = 8
82100 AdvanceRateManualClock (seconds = 1 ),
83- CheckLastBatch ((18 until 32 ): _* ),
101+ // Now we should reach full speed
102+ CheckLastBatch (20 until 30 : _* ), // speed = 10
84103 AdvanceRateManualClock (seconds = 1 ),
85- CheckLastBatch (( 32 until 50 ) : _* ),
104+ CheckLastBatch (30 until 40 : _* ), // speed = 10
86105 AdvanceRateManualClock (seconds = 1 ),
87- CheckLastBatch (( 50 until 60 ) : _* )
106+ CheckLastBatch (40 until 50 : _* ) // speed = 10
88107 )
89108 }
90109
0 commit comments