@@ -324,80 +324,22 @@ mod tests {
324324 use super :: * ;
325325 use tonic:: Code ;
326326
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 } ;
390329
391- fn sample_handler ( ) -> DataProviderHandler {
330+ fn sample_handler ( commit : Commit ) -> DataProviderHandler {
392331 DataProviderHandler {
393332 // 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 ) ) ,
395334 }
396335 }
397336
398337 #[ tokio:: test]
399338 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) ;
401343 let req = Request :: new ( data:: ListPluginsRequest {
402344 experiment_id : "123" . to_string ( ) ,
403345 } ) ;
@@ -410,7 +352,14 @@ mod tests {
410352
411353 #[ tokio:: test]
412354 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) ;
414363 let req = Request :: new ( data:: ListRunsRequest {
415364 experiment_id : "123" . to_string ( ) ,
416365 } ) ;
@@ -457,7 +406,18 @@ mod tests {
457406
458407 #[ tokio:: test]
459408 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) ;
461421 let req = Request :: new ( data:: ListScalarsRequest {
462422 experiment_id : "123" . to_string ( ) ,
463423 plugin_filter : Some ( data:: PluginFilter {
@@ -501,7 +461,11 @@ mod tests {
501461
502462 #[ tokio:: test]
503463 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) ;
505469 let req = Request :: new ( data:: ReadScalarsRequest {
506470 experiment_id : "123" . to_string ( ) ,
507471 plugin_filter : Some ( data:: PluginFilter {
@@ -532,7 +496,7 @@ mod tests {
532496
533497 #[ tokio:: test]
534498 async fn test_read_scalars_needs_downsample ( ) {
535- let handler = sample_handler ( ) ;
499+ let handler = sample_handler ( Commit :: default ( ) ) ;
536500 let req = Request :: new ( data:: ReadScalarsRequest {
537501 experiment_id : "123" . to_string ( ) ,
538502 plugin_filter : Some ( data:: PluginFilter {
@@ -550,7 +514,11 @@ mod tests {
550514
551515 #[ tokio:: test]
552516 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) ;
554522 let req = Request :: new ( data:: ReadScalarsRequest {
555523 experiment_id : "123" . to_string ( ) ,
556524 plugin_filter : Some ( data:: PluginFilter {
0 commit comments