@@ -324,80 +324,22 @@ mod tests {
324
324
use super :: * ;
325
325
use tonic:: Code ;
326
326
327
- use crate :: commit:: { ScalarValue , TimeSeries } ;
328
- use crate :: data_compat;
329
- use crate :: proto:: tensorboard as pb;
330
- use crate :: reservoir:: StageReservoir ;
331
- use crate :: types:: { Run , Step , Tag , WallTime } ;
332
-
333
- /// Creates a commit with some test data.
334
- fn sample_commit ( ) -> Commit {
335
- let commit = Commit :: new ( ) ;
336
-
337
- let mut runs = commit. runs . write ( ) . unwrap ( ) ;
338
-
339
- fn scalar_series ( points : Vec < ( Step , WallTime , f32 ) > ) -> TimeSeries < ScalarValue > {
340
- use pb:: summary:: value:: Value :: SimpleValue ;
341
- let mut ts = commit:: TimeSeries :: new (
342
- data_compat:: SummaryValue ( Box :: new ( SimpleValue ( 0.0 ) ) ) . initial_metadata ( None ) ,
343
- ) ;
344
- let mut rsv = StageReservoir :: new ( points. len ( ) ) ;
345
- for ( step, wall_time, value) in points {
346
- rsv. offer ( step, ( wall_time, Ok ( commit:: ScalarValue ( value) ) ) ) ;
347
- }
348
- rsv. commit ( & mut ts. basin ) ;
349
- ts
350
- }
351
-
352
- let mut train = runs
353
- . entry ( Run ( "train" . to_string ( ) ) )
354
- . or_default ( )
355
- . write ( )
356
- . unwrap ( ) ;
357
- train. start_time = Some ( WallTime :: new ( 1234.0 ) . unwrap ( ) ) ;
358
- train. scalars . insert (
359
- Tag ( "xent" . to_string ( ) ) ,
360
- scalar_series ( vec ! [
361
- ( Step ( 0 ) , WallTime :: new( 1235.0 ) . unwrap( ) , 0.5 ) ,
362
- ( Step ( 1 ) , WallTime :: new( 1236.0 ) . unwrap( ) , 0.25 ) ,
363
- ( Step ( 2 ) , WallTime :: new( 1237.0 ) . unwrap( ) , 0.125 ) ,
364
- ] ) ,
365
- ) ;
366
- drop ( train) ;
367
-
368
- let mut test = runs
369
- . entry ( Run ( "test" . to_string ( ) ) )
370
- . or_default ( )
371
- . write ( )
372
- . unwrap ( ) ;
373
- test. start_time = Some ( WallTime :: new ( 6234.0 ) . unwrap ( ) ) ;
374
- test. scalars . insert (
375
- Tag ( "accuracy" . to_string ( ) ) ,
376
- scalar_series ( vec ! [
377
- ( Step ( 0 ) , WallTime :: new( 6235.0 ) . unwrap( ) , 0.125 ) ,
378
- ( Step ( 1 ) , WallTime :: new( 6236.0 ) . unwrap( ) , 0.25 ) ,
379
- ( Step ( 2 ) , WallTime :: new( 6237.0 ) . unwrap( ) , 0.5 ) ,
380
- ] ) ,
381
- ) ;
382
- drop ( test) ;
383
-
384
- // An run with no start time or data: should not show up in results.
385
- runs. entry ( Run ( "empty" . to_string ( ) ) ) . or_default ( ) ;
386
-
387
- drop ( runs) ;
388
- commit
389
- }
327
+ use crate :: commit:: test_data:: CommitBuilder ;
328
+ use crate :: types:: { Run , Tag } ;
390
329
391
- fn sample_handler ( ) -> DataProviderHandler {
330
+ fn sample_handler ( commit : Commit ) -> DataProviderHandler {
392
331
DataProviderHandler {
393
332
// Leak the commit object, since the Tonic server must have only 'static references.
394
- commit : Box :: leak ( Box :: new ( sample_commit ( ) ) ) ,
333
+ commit : Box :: leak ( Box :: new ( commit ) ) ,
395
334
}
396
335
}
397
336
398
337
#[ tokio:: test]
399
338
async fn test_list_plugins ( ) {
400
- let handler = sample_handler ( ) ;
339
+ let commit = CommitBuilder :: new ( )
340
+ . scalars ( "train" , "xent" , |b| b. build ( ) )
341
+ . build ( ) ;
342
+ let handler = sample_handler ( commit) ;
401
343
let req = Request :: new ( data:: ListPluginsRequest {
402
344
experiment_id : "123" . to_string ( ) ,
403
345
} ) ;
@@ -410,7 +352,14 @@ mod tests {
410
352
411
353
#[ tokio:: test]
412
354
async fn test_list_runs ( ) {
413
- let handler = sample_handler ( ) ;
355
+ let commit = CommitBuilder :: new ( )
356
+ . run ( "train" , Some ( 1234.0 ) )
357
+ . run ( "test" , Some ( 6234.0 ) )
358
+ . run ( "run_with_no_data" , None )
359
+ . scalars ( "train" , "xent" , |mut b| b. wall_time_start ( 1235.0 ) . build ( ) )
360
+ . scalars ( "test" , "acc" , |mut b| b. wall_time_start ( 6235.0 ) . build ( ) )
361
+ . build ( ) ;
362
+ let handler = sample_handler ( commit) ;
414
363
let req = Request :: new ( data:: ListRunsRequest {
415
364
experiment_id : "123" . to_string ( ) ,
416
365
} ) ;
@@ -457,7 +406,18 @@ mod tests {
457
406
458
407
#[ tokio:: test]
459
408
async fn test_list_scalars ( ) {
460
- let handler = sample_handler ( ) ;
409
+ let commit = CommitBuilder :: new ( )
410
+ . run ( "train" , Some ( 1234.0 ) )
411
+ . run ( "test" , Some ( 6234.0 ) )
412
+ . run ( "run_with_no_data" , None )
413
+ . scalars ( "train" , "xent" , |mut b| {
414
+ b. wall_time_start ( 1235.0 ) . len ( 3 ) . build ( )
415
+ } )
416
+ . scalars ( "test" , "accuracy" , |mut b| {
417
+ b. wall_time_start ( 6235.0 ) . len ( 3 ) . build ( )
418
+ } )
419
+ . build ( ) ;
420
+ let handler = sample_handler ( commit) ;
461
421
let req = Request :: new ( data:: ListScalarsRequest {
462
422
experiment_id : "123" . to_string ( ) ,
463
423
plugin_filter : Some ( data:: PluginFilter {
@@ -501,7 +461,11 @@ mod tests {
501
461
502
462
#[ tokio:: test]
503
463
async fn test_read_scalars ( ) {
504
- let handler = sample_handler ( ) ;
464
+ let commit = CommitBuilder :: new ( )
465
+ . scalars ( "train" , "xent" , |b| b. build ( ) )
466
+ . scalars ( "test" , "xent" , |b| b. build ( ) )
467
+ . build ( ) ;
468
+ let handler = sample_handler ( commit) ;
505
469
let req = Request :: new ( data:: ReadScalarsRequest {
506
470
experiment_id : "123" . to_string ( ) ,
507
471
plugin_filter : Some ( data:: PluginFilter {
@@ -532,7 +496,7 @@ mod tests {
532
496
533
497
#[ tokio:: test]
534
498
async fn test_read_scalars_needs_downsample ( ) {
535
- let handler = sample_handler ( ) ;
499
+ let handler = sample_handler ( Commit :: default ( ) ) ;
536
500
let req = Request :: new ( data:: ReadScalarsRequest {
537
501
experiment_id : "123" . to_string ( ) ,
538
502
plugin_filter : Some ( data:: PluginFilter {
@@ -550,7 +514,11 @@ mod tests {
550
514
551
515
#[ tokio:: test]
552
516
async fn test_read_scalars_downsample_zero_okay ( ) {
553
- let handler = sample_handler ( ) ;
517
+ let commit = CommitBuilder :: new ( )
518
+ . scalars ( "train" , "xent" , |b| b. build ( ) )
519
+ . scalars ( "test" , "xent" , |b| b. build ( ) )
520
+ . build ( ) ;
521
+ let handler = sample_handler ( commit) ;
554
522
let req = Request :: new ( data:: ReadScalarsRequest {
555
523
experiment_id : "123" . to_string ( ) ,
556
524
plugin_filter : Some ( data:: PluginFilter {
0 commit comments