Browse Source

Add Cards.Remove

master
Trevor Slocum 2 years ago
parent
commit
1391a03546
  1. 6
      .gitlab-ci.yml
  2. 3
      CHANGELOG
  3. 4
      README.md
  4. 15
      cards.go
  5. 4
      cards_test.go

6
.gitlab-ci.yml

@ -9,12 +9,6 @@ fmt: @@ -9,12 +9,6 @@ fmt:
- gofmt -l -s -e .
- exit $(gofmt -l -s -e . | wc -l)
lint:
stage: validate
script:
- go get -u golang.org/x/lint/golint
- golint -set_exit_status
vet:
stage: validate
script:

3
CHANGELOG

@ -1,3 +1,6 @@ @@ -1,3 +1,6 @@
0.1.3:
- Add Cards.Remove
0.1.2:
- Add Parse function
- Add Permutations method to Cards

4
README.md

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
# joker
[![GoDoc](https://godoc.org/gitlab.com/tslocum/joker?status.svg)](https://godoc.org/gitlab.com/tslocum/joker)
[![GoDoc](https://gitlab.com/tslocum/godoc-static/-/raw/master/badge.svg)](https://docs.rocketnine.space/gitlab.com/tslocum/joker)
[![CI status](https://gitlab.com/tslocum/joker/badges/master/pipeline.svg)](https://gitlab.com/tslocum/joker/commits/master)
[![Donate](https://img.shields.io/liberapay/receives/rocketnine.space.svg?logo=liberapay)](https://liberapay.com/rocketnine.space)
@ -13,7 +13,7 @@ The following libraries extend joker: @@ -13,7 +13,7 @@ The following libraries extend joker:
## Documentation
Documentation is available on [godoc](https://godoc.org/gitlab.com/tslocum/joker).
Documentation is available on [godoc](https://docs.rocketnine.space/gitlab.com/tslocum/joker).
## Support

15
cards.go

@ -80,8 +80,19 @@ func (c Cards) Copy() Cards { @@ -80,8 +80,19 @@ func (c Cards) Copy() Cards {
return cc
}
// Remove returns the supplied cards excluding the card at the specified index.
func (c Cards) Remove(i int) Cards {
// Remove returns the supplied cards with the specified card removed one time.
func (c Cards) Remove(card Card) Cards {
cc := c.Copy()
for i, searchCard := range c {
if searchCard == card {
return append(cc[:i], cc[i+1:]...)
}
}
return cc
}
// RemoveIndex returns the supplied cards excluding the card at the specified index.
func (c Cards) RemoveIndex(i int) Cards {
cc := c.Copy()
return append(cc[:i], cc[i+1:]...)
}

4
cards_test.go

@ -53,12 +53,12 @@ func TestCards(t *testing.T) { @@ -53,12 +53,12 @@ func TestCards(t *testing.T) {
t.Errorf("failed to copy cards: expected %s, got %s", c.Cards, copied)
}
removedFirst := c.Cards.Remove(0)
removedFirst := c.Cards.RemoveIndex(0)
if !reflect.DeepEqual(removedFirst, c.RemovedFirst) {
t.Errorf("failed to remove first card: expected %s, got %s", c.RemovedFirst, removedFirst)
}
removedLast := c.Cards.Remove(len(c.Cards) - 1)
removedLast := c.Cards.Remove(copied[len(c.Cards)-1])
if !reflect.DeepEqual(removedLast, c.RemovedLast) {
t.Errorf("failed to remove first card: expected %s, got %s", c.RemovedLast, removedLast)
}

Loading…
Cancel
Save