5151
5252#include < algorithm>
5353#include < atomic>
54+ #include < cstdio>
5455#include < future>
5556#include < iomanip>
5657#include < ios>
@@ -127,6 +128,7 @@ TEST( KmerColorGamut, Basics )
127128
128129TEST ( KmerColorGamut, Example )
129130{
131+ NEEDS_TEST_DATA ;
130132 auto const p = 10 ;
131133 auto const r = 60 ;
132134
@@ -252,8 +254,8 @@ TEST( KmerColorGamut, Example )
252254
253255 // We added 12 imaginary colors now, and have switched to gamut now.
254256 EXPECT_EQ ( initial_gamut_size + 5 * 8 , gamut.get_color_list ().size () );
255- EXPECT_EQ ( r, gamut.get_gamut ().rows () );
256- EXPECT_EQ ( p, gamut.get_gamut ().cols () );
257+ EXPECT_EQ ( r, gamut.get_gamut_matrix ().rows () );
258+ EXPECT_EQ ( p, gamut.get_gamut_matrix ().cols () );
257259 EXPECT_EQ ( 0 , gamut.get_gamut_statistics ().real_color_count );
258260 EXPECT_EQ ( 12 , gamut.get_gamut_statistics ().imag_color_count );
259261
@@ -263,6 +265,25 @@ TEST( KmerColorGamut, Example )
263265 // LOG_DBG << print_kmer_color_lookup( gamut );
264266 // LOG_DBG << print_kmer_color_gamut( gamut );
265267 // LOG_DBG << print_kmer_color_gamut_summary( gamut );
268+
269+ // Test the serialization
270+ auto const colors_file = environment->data_dir + " sequence/gamut_example_colors.bin" ;
271+ auto const matrix_file = environment->data_dir + " sequence/gamut_example_matrix.bin" ;
272+ serialize_kmer_color_gamut_colors ( gamut, to_file ( colors_file ));
273+ serialize_kmer_color_gamut_matrix ( gamut, to_file ( matrix_file ));
274+ auto const deser_colors = deserialize_kmer_color_gamut_colors ( from_file ( colors_file ));
275+ auto const deser_matrix = deserialize_kmer_color_gamut_matrix ( from_file ( matrix_file ));
276+ EXPECT_EQ ( 0 , std::remove ( colors_file.c_str () ));
277+ EXPECT_EQ ( 0 , std::remove ( matrix_file.c_str () ));
278+ EXPECT_EQ ( initial_gamut_size + 5 * 8 , deser_colors.size () );
279+ EXPECT_EQ ( gamut.get_color_list ().size (), deser_colors.size () );
280+ for ( size_t i = 0 ; i < deser_colors.size (); ++i ) {
281+ EXPECT_EQ ( p, deser_colors[i].size () );
282+ EXPECT_EQ ( gamut.get_color_at (i).elements , deser_colors[i] );
283+ }
284+ EXPECT_EQ ( r, deser_matrix.rows () );
285+ EXPECT_EQ ( p, deser_matrix.cols () );
286+ EXPECT_EQ ( gamut.get_gamut_matrix (), deser_matrix );
266287}
267288
268289// -------------------------------------------------------------------------
@@ -319,10 +340,10 @@ TEST( KmerColorGamut, Random )
319340 // We have run the loop enough that we can be virtually sure to have requested
320341 // every color in the 8 bit range that we are using here, so the gamut should be full.
321342 EXPECT_EQ ( 16 , gamut.get_color_list ().size () );
322- EXPECT_EQ ( 16 , gamut.get_gamut ().rows () );
323- EXPECT_EQ ( 8 , gamut.get_gamut ().cols () );
343+ EXPECT_EQ ( 16 , gamut.get_gamut_matrix ().rows () );
344+ EXPECT_EQ ( 8 , gamut.get_gamut_matrix ().cols () );
324345 auto img_idx_counts = std::vector<size_t >( 16 , 0 );
325- for ( auto c : gamut.get_gamut () ) {
346+ for ( auto c : gamut.get_gamut_matrix () ) {
326347 ++img_idx_counts[c];
327348 }
328349
0 commit comments