github.com/tawesoft/golib/v2@v2.10.0/legacy/operator/bench_bool_test.go (about)

     1  package operator
     2  
     3  // Conclusion: the v1 version of each function wins in every case except BenchmarkBoolNaryAll2Short
     4  
     5  import (
     6      "testing"
     7  )
     8  
     9  const benchloops = 1000000
    10  
    11  // ===[ BoolNaryAll1 ]==============================================================================[ BoolNaryAll1 ]===
    12  
    13  func BenchmarkBoolNaryAll1Short1(b *testing.B) {
    14      for i := 0; i < benchloops; i++ {
    15          if boolNaryAll1(T, T, T, T) != T { panic("assertion failed") }
    16      }
    17  }
    18  
    19  func BenchmarkBoolNaryAll1Short2(b *testing.B) {
    20      for i := 0; i < benchloops; i++ {
    21          if boolNaryAll1(F, T, T, T) != F { panic("assertion failed") }
    22      }
    23  }
    24  
    25  func BenchmarkBoolNaryAll1Short3(b *testing.B) {
    26      for i := 0; i < benchloops; i++ {
    27          if boolNaryAll1(F, T, T, T) != F { panic("assertion failed") }
    28      }
    29  }
    30  
    31  func BenchmarkBoolNaryAll1Long1(b *testing.B) {
    32      for i := 0; i < benchloops; i++ {
    33          if boolNaryAll1(T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T) != T { panic("assertion failed") }
    34      }
    35  }
    36  
    37  func BenchmarkBoolNaryAll1Long2(b *testing.B) {
    38      for i := 0; i < benchloops; i++ {
    39          if boolNaryAll1(T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, F) != F { panic("assertion failed") }
    40      }
    41  }
    42  
    43  func BenchmarkBoolNaryAll1Long3(b *testing.B) {
    44      for i := 0; i < benchloops; i++ {
    45          if boolNaryAll1(F, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T) != F { panic("assertion failed") }
    46      }
    47  }
    48  
    49  func BenchmarkBoolNaryAll1Mixed(b *testing.B) {
    50      for i := 0; i < benchloops; i++ {
    51          if boolNaryAll1(T, T, T, T) != T { panic("assertion failed") }
    52          if boolNaryAll1(F, T, T, T) != F { panic("assertion failed") }
    53          if boolNaryAll1(F, T, T, T) != F { panic("assertion failed") }
    54          if boolNaryAll1(T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T) != T { panic("assertion failed") }
    55          if boolNaryAll1(T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, F) != F { panic("assertion failed") }
    56          if boolNaryAll1(F, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T) != F { panic("assertion failed") }
    57      }
    58  }
    59  
    60  // ===[ BoolNaryAll2 ]==============================================================================[ BoolNaryAll2 ]===
    61  
    62  func BenchmarkBoolNaryAll2Short1(b *testing.B) {
    63      for i := 0; i < benchloops; i++ {
    64          if boolNaryAll2(T, T, T, T) != T { panic("assertion failed") }
    65      }
    66  }
    67  
    68  func BenchmarkBoolNaryAll2Short2(b *testing.B) {
    69      for i := 0; i < benchloops; i++ {
    70          if boolNaryAll2(F, T, T, T) != F { panic("assertion failed") }
    71      }
    72  }
    73  
    74  func BenchmarkBoolNaryAll2Short3(b *testing.B) {
    75      for i := 0; i < benchloops; i++ {
    76          if boolNaryAll2(F, T, T, T) != F { panic("assertion failed") }
    77      }
    78  }
    79  
    80  func BenchmarkBoolNaryAll2Long1(b *testing.B) {
    81      for i := 0; i < benchloops; i++ {
    82          if boolNaryAll2(T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T) != T { panic("assertion failed") }
    83      }
    84  }
    85  
    86  func BenchmarkBoolNaryAll2Long2(b *testing.B) {
    87      for i := 0; i < benchloops; i++ {
    88          if boolNaryAll2(T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, F) != F { panic("assertion failed") }
    89      }
    90  }
    91  
    92  func BenchmarkBoolNaryAll2Long3(b *testing.B) {
    93      for i := 0; i < benchloops; i++ {
    94          if boolNaryAll2(F, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T) != F { panic("assertion failed") }
    95      }
    96  }
    97  
    98  func BenchmarkBoolNaryAll2Mixed(b *testing.B) {
    99      for i := 0; i < benchloops; i++ {
   100          if boolNaryAll2(T, T, T, T) != T { panic("assertion failed") }
   101          if boolNaryAll2(F, T, T, T) != F { panic("assertion failed") }
   102          if boolNaryAll2(F, T, T, T) != F { panic("assertion failed") }
   103          if boolNaryAll2(T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T) != T { panic("assertion failed") }
   104          if boolNaryAll2(T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, F) != F { panic("assertion failed") }
   105          if boolNaryAll2(F, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T) != F { panic("assertion failed") }
   106      }
   107  }
   108  
   109  // ===[ BoolNaryAny1 ]==============================================================================[ BoolNaryAny1 ]===
   110  
   111  func BenchmarkBoolNaryAny1Short1(b *testing.B) {
   112      for i := 0; i < benchloops; i++ {
   113          if boolNaryAny1(F, F, F, F) != F { panic("assertion failed") }
   114      }
   115  }
   116  
   117  func BenchmarkBoolNaryAny1Short2(b *testing.B) {
   118      for i := 0; i < benchloops; i++ {
   119          if boolNaryAny1(T, F, F, F) != T { panic("assertion failed") }
   120      }
   121  }
   122  
   123  func BenchmarkBoolNaryAny1Short3(b *testing.B) {
   124      for i := 0; i < benchloops; i++ {
   125          if boolNaryAny1(F, F, F, T) != T { panic("assertion failed") }
   126      }
   127  }
   128  
   129  func BenchmarkBoolNaryAny1Long1(b *testing.B) {
   130      for i := 0; i < benchloops; i++ {
   131          if boolNaryAny1(F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F) != F { panic("assertion failed") }
   132      }
   133  }
   134  
   135  func BenchmarkBoolNaryAny1Long2(b *testing.B) {
   136      for i := 0; i < benchloops; i++ {
   137          if boolNaryAny1(T, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F) != T { panic("assertion failed") }
   138      }
   139  }
   140  
   141  func BenchmarkBoolNaryAny1Long3(b *testing.B) {
   142      for i := 0; i < benchloops; i++ {
   143          if boolNaryAny1(F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, T) != T { panic("assertion failed") }
   144      }
   145  }
   146  
   147  func BenchmarkBoolNaryAny1Mixed(b *testing.B) {
   148      for i := 0; i < benchloops; i++ {
   149          if boolNaryAny1(F, F, F, F) != F { panic("assertion failed") }
   150          if boolNaryAny1(T, F, F, F) != T { panic("assertion failed") }
   151          if boolNaryAny1(F, F, F, T) != T { panic("assertion failed") }
   152          if boolNaryAny1(F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F) != F { panic("assertion failed") }
   153          if boolNaryAny1(T, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F) != T { panic("assertion failed") }
   154          if boolNaryAny1(F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, T) != T { panic("assertion failed") }
   155      }
   156  }
   157  
   158  // ===[ BoolNaryAny2 ]==============================================================================[ BoolNaryAny2 ]===
   159  
   160  func BenchmarkBoolNaryAny2Short1(b *testing.B) {
   161      for i := 0; i < benchloops; i++ {
   162          if boolNaryAny2(F, F, F, F) != F { panic("assertion failed") }
   163      }
   164  }
   165  
   166  func BenchmarkBoolNaryAny2Short2(b *testing.B) {
   167      for i := 0; i < benchloops; i++ {
   168          if boolNaryAny2(T, F, F, F) != T { panic("assertion failed") }
   169      }
   170  }
   171  
   172  func BenchmarkBoolNaryAny2Short3(b *testing.B) {
   173      for i := 0; i < benchloops; i++ {
   174          if boolNaryAny2(F, F, F, T) != T { panic("assertion failed") }
   175      }
   176  }
   177  
   178  func BenchmarkBoolNaryAny2Long1(b *testing.B) {
   179      for i := 0; i < benchloops; i++ {
   180          if boolNaryAny2(F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F) != F { panic("assertion failed") }
   181      }
   182  }
   183  
   184  func BenchmarkBoolNaryAny2Long2(b *testing.B) {
   185      for i := 0; i < benchloops; i++ {
   186          if boolNaryAny2(T, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F) != T { panic("assertion failed") }
   187      }
   188  }
   189  
   190  func BenchmarkBoolNaryAny2Long3(b *testing.B) {
   191      for i := 0; i < benchloops; i++ {
   192          if boolNaryAny2(F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, T) != T { panic("assertion failed") }
   193      }
   194  }
   195  
   196  func BenchmarkBoolNaryAny2Mixed(b *testing.B) {
   197      for i := 0; i < benchloops; i++ {
   198          if boolNaryAny2(F, F, F, F) != F { panic("assertion failed") }
   199          if boolNaryAny2(T, F, F, F) != T { panic("assertion failed") }
   200          if boolNaryAny2(F, F, F, T) != T { panic("assertion failed") }
   201          if boolNaryAny2(F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F) != F { panic("assertion failed") }
   202          if boolNaryAny2(T, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F) != T { panic("assertion failed") }
   203          if boolNaryAny2(F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, T) != T { panic("assertion failed") }
   204      }
   205  }
   206