gitlab.com/Hugrid-1/go-kata@v0.0.0-20230510051527-462385f70668/module3/task/main_benchmark_test.go (about)

     1  package main
     2  
     3  import (
     4  	"testing"
     5  	"time"
     6  )
     7  
     8  func generateTestData() *DoubleLinkedList {
     9  	newList := &DoubleLinkedList{}
    10  	err := newList.LoadData("data/doublelinkedlist_testBigData.json")
    11  	if err != nil {
    12  		panic(err)
    13  	}
    14  	return newList
    15  }
    16  
    17  func BenchmarkDoubleLinkedList_LoadData(b *testing.B) {
    18  	newList := &DoubleLinkedList{}
    19  	b.ResetTimer()
    20  	for i := 0; i < b.N; i++ {
    21  		err := newList.LoadData("data/doublelinkedlist_testBigData.json")
    22  		if err != nil {
    23  			panic(err)
    24  		}
    25  	}
    26  }
    27  
    28  func BenchmarkDoubleLinkedList_Prev(b *testing.B) {
    29  	newList := generateTestData()
    30  	b.ResetTimer()
    31  	for i := 0; i < b.N; i++ {
    32  		newList.Prev()
    33  	}
    34  }
    35  
    36  func BenchmarkDoubleLinkedList_Next(b *testing.B) {
    37  	newList := generateTestData()
    38  	b.ResetTimer()
    39  	for i := 0; i < b.N; i++ {
    40  		newList.Next()
    41  	}
    42  }
    43  
    44  func BenchmarkDoubleLinkedList_Len(b *testing.B) {
    45  	newList := generateTestData()
    46  	b.ResetTimer()
    47  	for i := 0; i < b.N; i++ {
    48  		newList.Len()
    49  	}
    50  }
    51  
    52  func BenchmarkDoubleLinkedList_Index(b *testing.B) {
    53  	newList := generateTestData()
    54  	b.ResetTimer()
    55  	for i := 0; i < b.N; i++ {
    56  		_, err := newList.Index()
    57  		if err != nil {
    58  			return
    59  		}
    60  	}
    61  }
    62  func BenchmarkDoubleLinkedList_Current(b *testing.B) {
    63  	newList := generateTestData()
    64  	b.ResetTimer()
    65  	for i := 0; i < b.N; i++ {
    66  		newList.Current()
    67  	}
    68  }
    69  
    70  func BenchmarkDoubleLinkedList_Reverse(b *testing.B) {
    71  	newList := generateTestData()
    72  	b.ResetTimer()
    73  	for i := 0; i < b.N; i++ {
    74  		_, err := newList.Reverse()
    75  		if err != nil {
    76  			return
    77  		}
    78  	}
    79  }
    80  
    81  func BenchmarkDoubleLinkedList_Search(b *testing.B) {
    82  	newList := generateTestData()
    83  	b.ResetTimer()
    84  	for i := 0; i < b.N; i++ {
    85  		_, err := newList.Search("Kata secret commit")
    86  		if err != nil {
    87  			return
    88  		}
    89  	}
    90  }
    91  
    92  func BenchmarkDoubleLinkedList_SearchUUID(b *testing.B) {
    93  	newList := generateTestData()
    94  	b.ResetTimer()
    95  	for i := 0; i < b.N; i++ {
    96  		_, err := newList.SearchUUID("6958b3ae-875b-11ed-8150-acde48001122")
    97  		if err != nil {
    98  			return
    99  		}
   100  	}
   101  }
   102  
   103  func BenchmarkDoubleLinkedList_Shift(b *testing.B) {
   104  	newList := generateTestData()
   105  	b.ResetTimer()
   106  	for i := 0; i < newList.Len()-1; i++ {
   107  		_, err := newList.Shift()
   108  		if err != nil {
   109  			return
   110  		}
   111  	}
   112  }
   113  
   114  func BenchmarkDoubleLinkedList_Pop(b *testing.B) {
   115  	newList := generateTestData()
   116  	b.ResetTimer()
   117  	for i := 0; i < newList.Len()-1; i++ {
   118  		_, err := newList.Pop()
   119  		if err != nil {
   120  			return
   121  		}
   122  	}
   123  }
   124  func BenchmarkDoubleLinkedList_Delete(b *testing.B) {
   125  	newList := generateTestData()
   126  	b.ResetTimer()
   127  	for i := 0; i < newList.Len()-1; i++ {
   128  		err := newList.Delete(1)
   129  		if err != nil {
   130  			return
   131  		}
   132  	}
   133  }
   134  
   135  func BenchmarkDoubleLinkedList_DeleteCurrent(b *testing.B) {
   136  	newList := generateTestData()
   137  	b.ResetTimer()
   138  	for i := 0; i < newList.Len()-1; i++ {
   139  		err := newList.DeleteCurrent()
   140  		if err != nil {
   141  			return
   142  		}
   143  	}
   144  }
   145  func BenchmarkDoubleLinkedList_Insert(b *testing.B) {
   146  	newList := generateTestData()
   147  	testCommit := Commit{
   148  		Message: "newTest commit",
   149  		UUID:    "T3STUU1D--T3STUU1D--T3STUU1D-T3STUU1D--T3STUU1D-",
   150  		Date:    time.Now(),
   151  	}
   152  	b.ResetTimer()
   153  	for i := 0; i < b.N; i++ {
   154  		err := newList.Insert(0, testCommit)
   155  		if err != nil {
   156  			return
   157  		}
   158  	}
   159  }