{"id":27453681,"url":"https://github.com/atomicgo/assert","last_synced_at":"2025-04-15T13:56:38.488Z","repository":{"id":61081512,"uuid":"548150875","full_name":"atomicgo/assert","owner":"atomicgo","description":"✅ Go package with tons of assertions!","archived":false,"fork":false,"pushed_at":"2024-08-08T17:04:00.000Z","size":43,"stargazers_count":3,"open_issues_count":4,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-15T13:56:26.934Z","etag":null,"topics":["assert","assertion","atomicgo","go","golang","golang-library","testing","testing-library"],"latest_commit_sha":null,"homepage":"https://atomicgo.dev","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/atomicgo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["MarvinJWendt"]}},"created_at":"2022-10-09T02:20:36.000Z","updated_at":"2024-08-08T17:04:04.000Z","dependencies_parsed_at":"2023-02-08T20:31:13.704Z","dependency_job_id":"6609106d-855b-46ae-bd16-db301500a2a1","html_url":"https://github.com/atomicgo/assert","commit_stats":{"total_commits":22,"total_committers":1,"mean_commits":22.0,"dds":0.0,"last_synced_commit":"edbd3858ebcddf07c66f5d14131b1c2e9e73df45"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":"atomicgo/template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atomicgo%2Fassert","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atomicgo%2Fassert/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atomicgo%2Fassert/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atomicgo%2Fassert/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/atomicgo","download_url":"https://codeload.github.com/atomicgo/assert/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249085485,"owners_count":21210267,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["assert","assertion","atomicgo","go","golang","golang-library","testing","testing-library"],"created_at":"2025-04-15T13:56:36.878Z","updated_at":"2025-04-15T13:56:38.477Z","avatar_url":"https://github.com/atomicgo.png","language":"Go","readme":"\u003c!--\n\n\n\n┌───────────────────────────────────────────────────────────────────┐\n│                                                                   │\n│                          IMPORTANT NOTE                           │\n│                                                                   │\n│               This file is automatically generated                │\n│           All manual modifications will be overwritten            │\n│                                                                   │\n└───────────────────────────────────────────────────────────────────┘\n\n\n\n--\u003e\n\n\u003ch1 align=\"center\"\u003eAtomicGo | assert\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://img.shields.io/endpoint?url=https%3A%2F%2Fatomicgo.dev%2Fapi%2Fshields%2Fassert\u0026style=flat-square\" alt=\"Downloads\"\u003e\n\n\u003ca href=\"https://github.com/atomicgo/assert/releases\"\u003e\n\u003cimg src=\"https://img.shields.io/github/v/release/atomicgo/assert?style=flat-square\" alt=\"Latest Release\"\u003e\n\u003c/a\u003e\n\n\u003ca href=\"https://codecov.io/gh/atomicgo/assert\" target=\"_blank\"\u003e\n\u003cimg src=\"https://img.shields.io/github/actions/workflow/status/atomicgo/assert/go.yml?style=flat-square\" alt=\"Tests\"\u003e\n\u003c/a\u003e\n\n\u003ca href=\"https://codecov.io/gh/atomicgo/assert\" target=\"_blank\"\u003e\n\u003cimg src=\"https://img.shields.io/codecov/c/gh/atomicgo/assert?color=magenta\u0026logo=codecov\u0026style=flat-square\" alt=\"Coverage\"\u003e\n\u003c/a\u003e\n\n\u003ca href=\"https://codecov.io/gh/atomicgo/assert\"\u003e\n\u003c!-- unittestcount:start --\u003e\u003cimg src=\"https://img.shields.io/badge/Unit_Tests-162-magenta?style=flat-square\" alt=\"Unit test count\"\u003e\u003c!-- unittestcount:end --\u003e\n\u003c/a\u003e\n\n\u003ca href=\"https://opensource.org/licenses/MIT\" target=\"_blank\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square\" alt=\"License: MIT\"\u003e\n\u003c/a\u003e\n  \n\u003ca href=\"https://goreportcard.com/report/github.com/atomicgo/assert\" target=\"_blank\"\u003e\n\u003cimg src=\"https://goreportcard.com/badge/github.com/atomicgo/assert?style=flat-square\" alt=\"Go report\"\u003e\n\u003c/a\u003e   \n\n\u003c/p\u003e\n\n---\n\n\u003cp align=\"center\"\u003e\n\u003cstrong\u003e\u003ca href=\"https://pkg.go.dev/atomicgo.dev/assert#section-documentation\" target=\"_blank\"\u003eDocumentation\u003c/a\u003e\u003c/strong\u003e\n|\n\u003cstrong\u003e\u003ca href=\"https://github.com/atomicgo/atomicgo/blob/main/CONTRIBUTING.md\" target=\"_blank\"\u003eContributing\u003c/a\u003e\u003c/strong\u003e\n|\n\u003cstrong\u003e\u003ca href=\"https://github.com/atomicgo/atomicgo/blob/main/CODE_OF_CONDUCT.md\" target=\"_blank\"\u003eCode of Conduct\u003c/a\u003e\u003c/strong\u003e\n\u003c/p\u003e\n\n---\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/atomicgo/atomicgo/main/assets/header.png\" alt=\"AtomicGo\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003ctable\u003e\n\u003ctbody\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/p\u003e\n\u003ch3  align=\"center\"\u003e\u003cpre\u003ego get atomicgo.dev/assert\u003c/pre\u003e\u003c/h3\u003e\n\u003cp align=\"center\"\u003e\n\u003ctable\u003e\n\u003ctbody\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/p\u003e\n\n\u003c!-- gomarkdoc:embed:start --\u003e\n\n\u003c!-- Code generated by gomarkdoc. DO NOT EDIT --\u003e\n\n# assert\n\n```go\nimport \"atomicgo.dev/assert\"\n```\n\nPackage assert provides a set of assertion functions. Every assertion function returns a boolean. This package does not integrateinto the testing package automatically. If you want to use this package inside unit tests, you have to check the returning boolean value and call \\`t.Fatal\\(\\)\\` if the assertion fails.\n\nThis library does not provide any error messages. That way the assertions can also be used in production code.\n\nIf you want a full\\-featured testing framework, we recommend https://github.com/MarvinJWendt/testza \\(which uses this library for assertions\\)\n\n## Index\n\n- [func Contains\\(a any, b any\\) bool](\u003c#Contains\u003e)\n- [func ContainsAll\\[T any\\]\\(a T, v \\[\\]T\\) bool](\u003c#ContainsAll\u003e)\n- [func ContainsAny\\[T any\\]\\(a T, v \\[\\]T\\) bool](\u003c#ContainsAny\u003e)\n- [func ContainsNone\\[T any\\]\\(a T, v \\[\\]T\\) bool](\u003c#ContainsNone\u003e)\n- [func Equal\\[T any\\]\\(a, b T\\) bool](\u003c#Equal\u003e)\n- [func Implements\\(a, iface any\\) bool](\u003c#Implements\u003e)\n- [func Kind\\(a any, kind reflect.Kind\\) bool](\u003c#Kind\u003e)\n- [func Len\\(a any, length int\\) \\(b bool\\)](\u003c#Len\u003e)\n- [func Lowercase\\(s string\\) bool](\u003c#Lowercase\u003e)\n- [func Nil\\(a any\\) bool](\u003c#Nil\u003e)\n- [func Number\\(a any\\) bool](\u003c#Number\u003e)\n- [func Panic\\(f func\\(\\)\\) \\(panicked bool\\)](\u003c#Panic\u003e)\n- [func Range\\[T constraints.Number\\]\\(a, min, max T\\) bool](\u003c#Range\u003e)\n- [func Regex\\(regex, s string\\) bool](\u003c#Regex\u003e)\n- [func Unique\\[T any\\]\\(s \\[\\]T\\) bool](\u003c#Unique\u003e)\n- [func Uppercase\\(s string\\) bool](\u003c#Uppercase\u003e)\n- [func Zero\\(a any\\) bool](\u003c#Zero\u003e)\n\n\n\u003ca name=\"Contains\"\u003e\u003c/a\u003e\n## func [Contains](\u003chttps://github.com/atomicgo/assert/blob/main/assert.go#L107\u003e)\n\n```go\nfunc Contains(a any, b any) bool\n```\n\nContains returns true if obj contains expectedLen.\n\n\u003ca name=\"ContainsAll\"\u003e\u003c/a\u003e\n## func [ContainsAll](\u003chttps://github.com/atomicgo/assert/blob/main/assert.go#L127\u003e)\n\n```go\nfunc ContainsAll[T any](a T, v []T) bool\n```\n\nContainsAll returns true if all values are contained in obj.\n\n\u003ca name=\"ContainsAny\"\u003e\u003c/a\u003e\n## func [ContainsAny](\u003chttps://github.com/atomicgo/assert/blob/main/assert.go#L138\u003e)\n\n```go\nfunc ContainsAny[T any](a T, v []T) bool\n```\n\nContainsAny returns true if any of the values are contained in obj.\n\n\u003ca name=\"ContainsNone\"\u003e\u003c/a\u003e\n## func [ContainsNone](\u003chttps://github.com/atomicgo/assert/blob/main/assert.go#L149\u003e)\n\n```go\nfunc ContainsNone[T any](a T, v []T) bool\n```\n\nContainsNone returns true if none of the values are contained in obj.\n\n\u003ca name=\"Equal\"\u003e\u003c/a\u003e\n## func [Equal](\u003chttps://github.com/atomicgo/assert/blob/main/assert.go#L12\u003e)\n\n```go\nfunc Equal[T any](a, b T) bool\n```\n\nEqual compares two values and returns true if they are equal.\n\n\u003ca name=\"Implements\"\u003e\u003c/a\u003e\n## func [Implements](\u003chttps://github.com/atomicgo/assert/blob/main/assert.go#L64\u003e)\n\n```go\nfunc Implements(a, iface any) bool\n```\n\nImplements returns true if the value implements the interface.\n\n\u003ca name=\"Kind\"\u003e\u003c/a\u003e\n## func [Kind](\u003chttps://github.com/atomicgo/assert/blob/main/assert.go#L17\u003e)\n\n```go\nfunc Kind(a any, kind reflect.Kind) bool\n```\n\nKind returns true if the value is of the given kind.\n\n\u003ca name=\"Len\"\u003e\u003c/a\u003e\n## func [Len](\u003chttps://github.com/atomicgo/assert/blob/main/assert.go#L175\u003e)\n\n```go\nfunc Len(a any, length int) (b bool)\n```\n\nLen returns true if the length of the value is equal to the given length.\n\n\u003ca name=\"Lowercase\"\u003e\u003c/a\u003e\n## func [Lowercase](\u003chttps://github.com/atomicgo/assert/blob/main/assert.go#L165\u003e)\n\n```go\nfunc Lowercase(s string) bool\n```\n\nLowercase returns true if the string is lowercase.\n\n\u003ca name=\"Nil\"\u003e\u003c/a\u003e\n## func [Nil](\u003chttps://github.com/atomicgo/assert/blob/main/assert.go#L22\u003e)\n\n```go\nfunc Nil(a any) bool\n```\n\nNil returns true if the value is nil.\n\n\u003ca name=\"Number\"\u003e\u003c/a\u003e\n## func [Number](\u003chttps://github.com/atomicgo/assert/blob/main/assert.go#L37\u003e)\n\n```go\nfunc Number(a any) bool\n```\n\nNumber returns true if the value is obj number.\n\n\u003ca name=\"Panic\"\u003e\u003c/a\u003e\n## func [Panic](\u003chttps://github.com/atomicgo/assert/blob/main/assert.go#L79\u003e)\n\n```go\nfunc Panic(f func()) (panicked bool)\n```\n\nPanic returns true if the function panics.\n\n\u003ca name=\"Range\"\u003e\u003c/a\u003e\n## func [Range](\u003chttps://github.com/atomicgo/assert/blob/main/assert.go#L54\u003e)\n\n```go\nfunc Range[T constraints.Number](a, min, max T) bool\n```\n\nRange returns true if the value is within the range.\n\n\u003ca name=\"Regex\"\u003e\u003c/a\u003e\n## func [Regex](\u003chttps://github.com/atomicgo/assert/blob/main/assert.go#L170\u003e)\n\n```go\nfunc Regex(regex, s string) bool\n```\n\nRegex returns true if the string matches the regex.\n\n\u003ca name=\"Unique\"\u003e\u003c/a\u003e\n## func [Unique](\u003chttps://github.com/atomicgo/assert/blob/main/assert.go#L92\u003e)\n\n```go\nfunc Unique[T any](s []T) bool\n```\n\nUnique returns true if the slice contains unique values. Items are considered unique if they are not deep equal.\n\n\u003ca name=\"Uppercase\"\u003e\u003c/a\u003e\n## func [Uppercase](\u003chttps://github.com/atomicgo/assert/blob/main/assert.go#L160\u003e)\n\n```go\nfunc Uppercase(s string) bool\n```\n\nUppercase returns true if the string is uppercase.\n\n\u003ca name=\"Zero\"\u003e\u003c/a\u003e\n## func [Zero](\u003chttps://github.com/atomicgo/assert/blob/main/assert.go#L59\u003e)\n\n```go\nfunc Zero(a any) bool\n```\n\nZero returns true if the value is the zero value.\n\nGenerated by [gomarkdoc](\u003chttps://github.com/princjef/gomarkdoc\u003e)\n\n\n\u003c!-- gomarkdoc:embed:end --\u003e\n\n---\n\n\u003e [AtomicGo.dev](https://atomicgo.dev) \u0026nbsp;\u0026middot;\u0026nbsp;\n\u003e with ❤️ by [@MarvinJWendt](https://github.com/MarvinJWendt) |\n\u003e [MarvinJWendt.com](https://marvinjwendt.com)\n","funding_links":["https://github.com/sponsors/MarvinJWendt"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatomicgo%2Fassert","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fatomicgo%2Fassert","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatomicgo%2Fassert/lists"}