Unit Test Report: timerset
==========================

   SCENARIO 1: 2 timer sets, ts-1: timer-1 called twice, timer-2 called in between; ts-2: timer-1 called twice, initTime called in between; all outputs; mocked : 0 failed of 8: SUCCESS
   SCENARIO 2: As scenario 1 but not mocked, and with SELFs : 0 failed of 8: SUCCESS
   SCENARIO 3: Large numbers, mocked : 0 failed of 8: SUCCESS
   SCENARIO 4: Small numbers, mocked : 0 failed of 8: SUCCESS
   SCENARIO 5: Non-default DP, mocked : 0 failed of 8: SUCCESS
   SCENARIO 6: Zero DP, mocked : 0 failed of 8: SUCCESS
   SCENARIO 7: Error DP, mocked : 0 failed of 8: SUCCESS

Test scenarios: 0 failed of 7: SUCCESS
======================================

SCENARIO 1: 2 timer sets, ts-1: timer-1 called twice, timer-2 called in between; ts-2: timer-1 called twice, initTime called in between; all outputs; mocked {
==============================================================================================================================================================

   INPUTS
   ======

      GROUP 1: Event Sequence {
      =========================

            #   Set Name  Timer Name  Event  Elapsed Time  CPU Time
            --  --------  ----------  -----  ------------  --------
            1   Set 1                 CON    3.000         .800    
            2   Set 1     Timer 1     INC    33.123        9.256   
            3   Set 2                 CON    33.123        9.256   
            4   Set 1     Timer 2     INC    63.246        17.712  
            5   Set 1     Timer 1     INC    93.369        26.168  
            6   Set 2     Timer 1     INC    123.492       34.624  
            7   Set 2                 INI    153.615       43.080  
            8   Set 2     Timer 1     INC    183.738       51.536  
            9   Set 1                 GET    213.861       59.992  
            10  Set 1                 GETF   213.861       59.992  
            11  Set 1                 RES    213.861       59.992  
            12  Set 2                 GET    213.861       59.992  

      }
      =

      GROUP 2: Scalars {
      ==================

            #  Mock Flag  Time Width  Decimal Places (Totals)  Decimal Places (per call)  Calls Width
            -  ---------  ----------  -----------------------  -------------------------  -----------
            1  Y                                                                                     

      }
      =

   OUTPUTS
   =======

      GROUP 1: Set 1 {
      ================

            #  Timer Name  Elapsed Time  CPU Time  #Calls
            -  ----------  ------------  --------  ------
            1  Timer 1     60.246        16.912    2     
            2  Timer 2     30.123        8.456     1     
            3  (Other)     120.492       33.824    1     
            4  Total       210.861       59.192    4     

      } 0 failed of 4: SUCCESS
      ========================

      GROUP 2: Set 1 (formatted) {
      ============================

            #  Line                                                                     
            -  -------------------------------------------------------------------------
            1  Timer       Elapsed         CPU       Calls       Ela/Call       CPU/Call
            2  -------  ----------  ----------  ----------  -------------  -------------
            3  Timer 1       60.25       16.91           2       30.12300        8.45600
            4  Timer 2       30.12        8.46           1       30.12300        8.45600
            5  (Other)      120.49       33.82           1      120.49200       33.82400
            6  -------  ----------  ----------  ----------  -------------  -------------
            7  Total        210.86       59.19           4       52.71525       14.79800
            8  -------  ----------  ----------  ----------  -------------  -------------

      } 0 failed of 8: SUCCESS
      ========================

      GROUP 3: Set 2 {
      ================

            #  Timer Name  Elapsed Time  CPU Time  #Calls
            -  ----------  ------------  --------  ------
            1  Timer 1     120.492       33.824    2     
            2  (Other)     60.246        16.912    1     
            3  Total       180.738       50.736    3     

      } 0 failed of 3: SUCCESS
      ========================

      GROUP 4: Set 2 (formatted): Empty as expected: SUCCESS
      ======================================================

      GROUP 5: Self (unmocked): Empty as expected: SUCCESS
      ====================================================

      GROUP 6: Self (unmocked, formatted): Empty as expected: SUCCESS
      ===============================================================

      GROUP 7: Results {
      ==================

            #  Lines                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
            -  ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
            1  LIKE /Timer[^]*Timer 1[^]*\[Timer timed[^]*\]/: 
Timer set: Set 1, constructed at 2018-12-08 16:37:01, written at 2018-12-08 16:37:01
====================================================================================
Timer       Elapsed         CPU       Calls       Ela/Call       CPU/Call
-------  ----------  ----------  ----------  -------------  -------------
Timer 1       60.25       16.91           2       30.12300        8.45600
Timer 2       30.12        8.46           1       30.12300        8.45600
(Other)      120.49       33.82           1      120.49200       33.82400
-------  ----------  ----------  ----------  -------------  -------------
Total        210.86       59.19           4       52.71525       14.79800
-------  ----------  ----------  ----------  -------------  -------------
[Timer timed (per call in ms): Elapsed: 0.00213, CPU: 0.00199]

      } 0 failed of 1: SUCCESS
      ========================

      GROUP 8: Exception: Empty as expected: SUCCESS
      ==============================================

} 0 failed of 8: SUCCESS
========================

SCENARIO 2: As scenario 1 but not mocked, and with SELFs {
==========================================================

   INPUTS
   ======

      GROUP 1: Event Sequence {
      =========================

            #   Set Name  Timer Name  Event  Elapsed Time  CPU Time
            --  --------  ----------  -----  ------------  --------
            1   Set 1                 CON    0                     
            2   Set 1     Timer 1     INC    1.023                 
            3   Set 2                 CON    0                     
            4   Set 1     Timer 2     INC    1.023                 
            5   Set 1     Timer 1     INC    1.023                 
            6   Set 2     Timer 1     INC    1.023                 
            7   Set 2                 INI    1.023                 
            8   Set 2     Timer 1     INC    1.023                 
            9   Set 1                 GET    1.023                 
            10  Set 1                 GETF   0                     
            11  Set 1                 RES    0                     
            12                        SELF   0                     
            13                        SELFF  0                     
            14  Set 2                 GET    0                     

      }
      =

      GROUP 2: Scalars {
      ==================

            #  Mock Flag  Time Width  Decimal Places (Totals)  Decimal Places (per call)  Calls Width
            -  ---------  ----------  -----------------------  -------------------------  -----------
            1  N                                                                                     

      }
      =

   OUTPUTS
   =======

      GROUP 1: Set 1 {
      ================

            #  Timer Name  Elapsed Time             CPU Time             #Calls
            -  ----------  -----------------------  -------------------  ------
            1  Timer 1     IN [2.000,3.000]: 2.047  IN [0.5,1.5]: 1.016  2     
            2  Timer 2     IN [1.000,3.000]: 1.024  IN [0.5,1.5]: 0.516  1     
            3  (Other)     IN [4.000,5.000]: 4.094  IN [1.5,2.5]: 2.047  1     
            4  Total       IN [6.000,8.000]: 7.165  IN [3.0,4.0]: 3.578  4     

      } 0 failed of 4: SUCCESS
      ========================

      GROUP 2: Set 1 (formatted) {
      ============================

            #  Line                                                                                         
            -  ---------------------------------------------------------------------------------------------
            1  Timer       Elapsed         CPU       Calls       Ela/Call       CPU/Call                    
            2  -------  ----------  ----------  ----------  -------------  -------------                    
            3  LIKE /Timer 1.*/: Timer 1        2.05        1.02           2        1.02355        0.50781  
            4  LIKE /Timer 2.*/: Timer 2        1.02        0.52           1        1.02430        0.51562  
            5  LIKE /\(Other\).*/: (Other)        4.09        2.05           1        4.09364        2.04688
            6  -------  ----------  ----------  ----------  -------------  -------------                    
            7  LIKE /Total.*/: Total          7.17        3.58           4        1.79126        0.89453    
            8  -------  ----------  ----------  ----------  -------------  -------------                    

      } 0 failed of 8: SUCCESS
      ========================

      GROUP 3: Set 2 {
      ================

            #  Timer Name  Elapsed Time             CPU Time             #Calls
            -  ----------  -----------------------  -------------------  ------
            1  Timer 1     IN [4.000,5.000]: 4.094  IN [1.5,2.5]: 2.047  2     
            2  (Other)     IN [2.000,3.000]: 2.348  IN [0.5,1.5]: 1.312  1     
            3  Total       IN [6.000,7000]: 6.442   IN [2.5,3.5]: 3.359  3     

      } 0 failed of 3: SUCCESS
      ========================

      GROUP 4: Set 2 (formatted): Empty as expected: SUCCESS
      ======================================================

      GROUP 5: Self (unmocked) {
      ==========================

            #  Elapsed Time                        CPU Time                           
            -  ----------------------------------  -----------------------------------
            1  IN [0,0.5]: 2.0705496273292045e-06  IN [0,0.05]: 2.2644927536231883e-06

      } 0 failed of 1: SUCCESS
      ========================

      GROUP 6: Self (unmocked, formatted) {
      =====================================

            #  Self Timing Ratios                                                                                                    
            -  ----------------------------------------------------------------------------------------------------------------------
            1  LIKE /\[Timer timed \(per call in ms\): Elapsed: .*\]/: [Timer timed (per call in ms): Elapsed: 0.00208, CPU: 0.00195]

      } 0 failed of 1: SUCCESS
      ========================

      GROUP 7: Results {
      ==================

            #  Lines                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
            -  ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
            1  LIKE /Timer[^]*Timer 1[^]*\[Timer timed[^]*\]/: 
Timer set: Set 1, constructed at 2018-12-08 16:37:01, written at 2018-12-08 16:37:01
====================================================================================
Timer       Elapsed         CPU       Calls       Ela/Call       CPU/Call
-------  ----------  ----------  ----------  -------------  -------------
Timer 1        2.05        1.02           2        1.02355        0.50781
Timer 2        1.02        0.52           1        1.02430        0.51562
(Other)        4.09        2.05           1        4.09364        2.04688
-------  ----------  ----------  ----------  -------------  -------------
Total          7.17        3.58           4        1.79126        0.89453
-------  ----------  ----------  ----------  -------------  -------------
[Timer timed (per call in ms): Elapsed: 0.00328, CPU: 0.00307]

      } 0 failed of 1: SUCCESS
      ========================

      GROUP 8: Exception: Empty as expected: SUCCESS
      ==============================================

} 0 failed of 8: SUCCESS
========================

SCENARIO 3: Large numbers, mocked {
===================================

   INPUTS
   ======

      GROUP 1: Event Sequence {
      =========================

            #  Set Name  Timer Name  Event  Elapsed Time  CPU Time
            -  --------  ----------  -----  ------------  --------
            1  Set 1                 CON    3.000         .800    
            2  Set 1     Timer 1     INC    10003.000     2000.800
            3  Set 1                 GETF   20003.000     4000.800

      }
      =

      GROUP 2: Scalars {
      ==================

            #  Mock Flag  Time Width  Decimal Places (Totals)  Decimal Places (per call)  Calls Width
            -  ---------  ----------  -----------------------  -------------------------  -----------
            1  Y                                                                                     

      }
      =

   OUTPUTS
   =======

      GROUP 1: Set 1: Empty as expected: SUCCESS
      ==========================================

      GROUP 2: Set 1 (formatted) {
      ============================

            #  Line                                                                     
            -  -------------------------------------------------------------------------
            1  Timer       Elapsed         CPU       Calls       Ela/Call       CPU/Call
            2  -------  ----------  ----------  ----------  -------------  -------------
            3  Timer 1    10000.00     2000.00           1    10000.00000     2000.00000
            4  (Other)    10000.00     2000.00           1    10000.00000     2000.00000
            5  -------  ----------  ----------  ----------  -------------  -------------
            6  Total      20000.00     4000.00           2    10000.00000     2000.00000
            7  -------  ----------  ----------  ----------  -------------  -------------

      } 0 failed of 7: SUCCESS
      ========================

      GROUP 3: Set 2: Empty as expected: SUCCESS
      ==========================================

      GROUP 4: Set 2 (formatted): Empty as expected: SUCCESS
      ======================================================

      GROUP 5: Self (unmocked): Empty as expected: SUCCESS
      ====================================================

      GROUP 6: Self (unmocked, formatted): Empty as expected: SUCCESS
      ===============================================================

      GROUP 7: Results: Empty as expected: SUCCESS
      ============================================

      GROUP 8: Exception: Empty as expected: SUCCESS
      ==============================================

} 0 failed of 8: SUCCESS
========================

SCENARIO 4: Small numbers, mocked {
===================================

   INPUTS
   ======

      GROUP 1: Event Sequence {
      =========================

            #  Set Name  Timer Name  Event  Elapsed Time  CPU Time
            -  --------  ----------  -----  ------------  --------
            1  Set 1                 CON    3.000         .800    
            2  Set 1     Timer 1     INC    3.006         .802    
            3  Set 1                 GETF   3.012         .808    

      }
      =

      GROUP 2: Scalars {
      ==================

            #  Mock Flag  Time Width  Decimal Places (Totals)  Decimal Places (per call)  Calls Width
            -  ---------  ----------  -----------------------  -------------------------  -----------
            1  Y                                                                                     

      }
      =

   OUTPUTS
   =======

      GROUP 1: Set 1: Empty as expected: SUCCESS
      ==========================================

      GROUP 2: Set 1 (formatted) {
      ============================

            #  Line                                                                     
            -  -------------------------------------------------------------------------
            1  Timer       Elapsed         CPU       Calls       Ela/Call       CPU/Call
            2  -------  ----------  ----------  ----------  -------------  -------------
            3  Timer 1        0.01        0.00           1        0.00600        0.00200
            4  (Other)        0.01        0.01           1        0.00600        0.00600
            5  -------  ----------  ----------  ----------  -------------  -------------
            6  Total          0.01        0.01           2        0.00600        0.00400
            7  -------  ----------  ----------  ----------  -------------  -------------

      } 0 failed of 7: SUCCESS
      ========================

      GROUP 3: Set 2: Empty as expected: SUCCESS
      ==========================================

      GROUP 4: Set 2 (formatted): Empty as expected: SUCCESS
      ======================================================

      GROUP 5: Self (unmocked): Empty as expected: SUCCESS
      ====================================================

      GROUP 6: Self (unmocked, formatted): Empty as expected: SUCCESS
      ===============================================================

      GROUP 7: Results: Empty as expected: SUCCESS
      ============================================

      GROUP 8: Exception: Empty as expected: SUCCESS
      ==============================================

} 0 failed of 8: SUCCESS
========================

SCENARIO 5: Non-default DP, mocked {
====================================

   INPUTS
   ======

      GROUP 1: Event Sequence {
      =========================

            #  Set Name  Timer Name  Event  Elapsed Time  CPU Time
            -  --------  ----------  -----  ------------  --------
            1  Set 1                 CON    3.000         .800    
            2  Set 1     Timer 1     INC    33.123        9.256   
            3  Set 1                 GETF   63.246        17.712  
            4  Set 1                 RES    63.246        17.712  

      }
      =

      GROUP 2: Scalars {
      ==================

            #  Mock Flag  Time Width  Decimal Places (Totals)  Decimal Places (per call)  Calls Width
            -  ---------  ----------  -----------------------  -------------------------  -----------
            1  Y          7           1                        3                          5          

      }
      =

   OUTPUTS
   =======

      GROUP 1: Set 1: Empty as expected: SUCCESS
      ==========================================

      GROUP 2: Set 1 (formatted) {
      ============================

            #  Line                                                      
            -  ----------------------------------------------------------
            1  Timer     Elapsed       CPU  Calls    Ela/Call    CPU/Call
            2  -------  --------  --------  -----  ----------  ----------
            3  Timer 1      30.1       8.5      1      30.123       8.456
            4  (Other)      30.1       8.5      1      30.123       8.456
            5  -------  --------  --------  -----  ----------  ----------
            6  Total        60.2      16.9      2      30.123       8.456
            7  -------  --------  --------  -----  ----------  ----------

      } 0 failed of 7: SUCCESS
      ========================

      GROUP 3: Set 2: Empty as expected: SUCCESS
      ==========================================

      GROUP 4: Set 2 (formatted): Empty as expected: SUCCESS
      ======================================================

      GROUP 5: Self (unmocked): Empty as expected: SUCCESS
      ====================================================

      GROUP 6: Self (unmocked, formatted): Empty as expected: SUCCESS
      ===============================================================

      GROUP 7: Results {
      ==================

            #  Lines                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
            -  -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
            1  LIKE /Timer[^]*Timer 1 +30.1 +8.5 +1 +30.123 +8.456[^]*\[Timer timed[^]*\]/: 
Timer set: Set 1, constructed at 2018-12-08 16:37:08, written at 2018-12-08 16:37:01
====================================================================================
Timer     Elapsed       CPU  Calls    Ela/Call    CPU/Call
-------  --------  --------  -----  ----------  ----------
Timer 1      30.1       8.5      1      30.123       8.456
(Other)      30.1       8.5      1      30.123       8.456
-------  --------  --------  -----  ----------  ----------
Total        60.2      16.9      2      30.123       8.456
-------  --------  --------  -----  ----------  ----------
[Timer timed (per call in ms): Elapsed: 0.002, CPU: 0.002]

      } 0 failed of 1: SUCCESS
      ========================

      GROUP 8: Exception: Empty as expected: SUCCESS
      ==============================================

} 0 failed of 8: SUCCESS
========================

SCENARIO 6: Zero DP, mocked {
=============================

   INPUTS
   ======

      GROUP 1: Event Sequence {
      =========================

            #  Set Name  Timer Name  Event  Elapsed Time  CPU Time
            -  --------  ----------  -----  ------------  --------
            1  Set 1                 CON    3.000         .800    
            2  Set 1     Timer 1     INC    33.123        9.256   
            3  Set 1                 GETF   63.246        17.712  

      }
      =

      GROUP 2: Scalars {
      ==================

            #  Mock Flag  Time Width  Decimal Places (Totals)  Decimal Places (per call)  Calls Width
            -  ---------  ----------  -----------------------  -------------------------  -----------
            1  Y          7           0                        3                          5          

      }
      =

   OUTPUTS
   =======

      GROUP 1: Set 1: Empty as expected: SUCCESS
      ==========================================

      GROUP 2: Set 1 (formatted) {
      ============================

            #  Line                                                    
            -  --------------------------------------------------------
            1  Timer    Elapsed      CPU  Calls    Ela/Call    CPU/Call
            2  -------  -------  -------  -----  ----------  ----------
            3  Timer 1       30        8      1      30.123       8.456
            4  (Other)       30        8      1      30.123       8.456
            5  -------  -------  -------  -----  ----------  ----------
            6  Total         60       17      2      30.123       8.456
            7  -------  -------  -------  -----  ----------  ----------

      } 0 failed of 7: SUCCESS
      ========================

      GROUP 3: Set 2: Empty as expected: SUCCESS
      ==========================================

      GROUP 4: Set 2 (formatted): Empty as expected: SUCCESS
      ======================================================

      GROUP 5: Self (unmocked): Empty as expected: SUCCESS
      ====================================================

      GROUP 6: Self (unmocked, formatted): Empty as expected: SUCCESS
      ===============================================================

      GROUP 7: Results: Empty as expected: SUCCESS
      ============================================

      GROUP 8: Exception: Empty as expected: SUCCESS
      ==============================================

} 0 failed of 8: SUCCESS
========================

SCENARIO 7: Error DP, mocked {
==============================

   INPUTS
   ======

      GROUP 1: Event Sequence {
      =========================

            #  Set Name  Timer Name  Event  Elapsed Time  CPU Time
            -  --------  ----------  -----  ------------  --------
            1  Set 1                 CON    3.000         .800    
            2  Set 1     Timer 1     INC    33.123        9.256   
            3  Set 1                 GETF   63.246        17.712  

      }
      =

      GROUP 2: Scalars {
      ==================

            #  Mock Flag  Time Width  Decimal Places (Totals)  Decimal Places (per call)  Calls Width
            -  ---------  ----------  -----------------------  -------------------------  -----------
            1  Y          4           1                        3                          5          

      }
      =

   OUTPUTS
   =======

      GROUP 1: Set 1: Empty as expected: SUCCESS
      ==========================================

      GROUP 2: Set 1 (formatted): Empty as expected: SUCCESS
      ======================================================

      GROUP 3: Set 2: Empty as expected: SUCCESS
      ==========================================

      GROUP 4: Set 2 (formatted): Empty as expected: SUCCESS
      ======================================================

      GROUP 5: Self (unmocked): Empty as expected: SUCCESS
      ====================================================

      GROUP 6: Self (unmocked, formatted): Empty as expected: SUCCESS
      ===============================================================

      GROUP 7: Results: Empty as expected: SUCCESS
      ============================================

      GROUP 8: Exception {
      ====================

            #  1 Message, 2 Stack                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
            -  ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
            1  Error, time_width + time_dp must be > 6, actual: 4 + 1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
            2  UNTESTED: Traceback (most recent call last):
  File "./test/testtimerset.py", line 109, in purely_wrap_unit
    dp_per_call, calls_width)
  File "C:\Users\Brend_000\OneDrive\Script\pip\timerset\timerset\timerset.py", line 168, in format_timers
    time_width, time_dp, time_ratio_dp, calls_width)
  File "C:\Users\Brend_000\OneDrive\Script\pip\timerset\timerset\timerset.py", line 70, in _val_widths
    format(actual=str(time_width) + ' + ' + str(time_dp)))
ValueError: Error, time_width + time_dp must be > 6, actual: 4 + 1


      } 0 failed of 2: SUCCESS
      ========================

} 0 failed of 8: SUCCESS
========================