Skip to content

Commit

Permalink
Updating Count function (#36)
Browse files Browse the repository at this point in the history
* Adding some new funky functions which I find useful

Created a Tuple struct as some of the new functions require you to return a new slice with two fields which is the result of the new functions

Created the Join, JoinProjection, Range, SumMap, Zip functions, ecah fuction is documented with how it works and had a unit test or maybe more

* Added in an OrderBy function

* Documentation comment for OrderBy which I missed out

* Adding a Unit test for JoinProject function

Updated the comments on the Join & OrderBy functions so they make a little more sense.

Covered an extra test case with the Join test, where the left set has more data than the right and so the Right handside array of the join is empty

* Adding a count method to the package, so you can find out how many items in a slice satisfy and given condition

* Updating count to work with any so you can count structs as well as basic types

* Removing extra underscores
  • Loading branch information
theouteredge authored Jun 13, 2023
1 parent 541e707 commit bfac048
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 3 deletions.
2 changes: 1 addition & 1 deletion count.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package underscore

// Count returns the number of elements in the slice that satisfy the predicate.
// example: Count([]int{1,2,3,4,5}, func(n int) bool { return n%2 == 0 }) // 2
func Count[T comparable](slice []T, predicate func(T) bool) int {
func Count[T any](slice []T, predicate func(T) bool) int {
count := 0
for _, item := range slice {
if predicate(item) {
Expand Down
5 changes: 3 additions & 2 deletions count_test.go
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
package underscore

import (
"github.com/stretchr/testify/assert"
"strings"
"testing"

"github.com/stretchr/testify/assert"
)

func Test_Count_Can_Count_Numbers(t *testing.T) {
Expand All @@ -21,7 +22,7 @@ type People struct {
Gender string
}

func Test_Count_Can_Count__People(t *testing.T) {
func Test_Count_Can_Count_People(t *testing.T) {
people := []People{
{Name: "Andy", Age: 43, Gender: "M"},
{Name: "Fred", Age: 33, Gender: "M"},
Expand Down

0 comments on commit bfac048

Please sign in to comment.