Semigroup Result instance?
Nadie ha tomado este issue todavía.
- #101 de @np — cerrado sin fusionar
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 25/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Área
- testing
Línea de trabajo
Read the proposed Semigroup and Monoid instances in the issue body and the linked pull request #101 for prior discussion. Decide whether combining Result values this way fits the library’s API and supports the shown QuickCheck use case; the issue does not name implementation files or tests, so locate the existing Result definitions and instances before judging completion.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
How would we feel about the following?
instance semigroupResult :: Semigroup Result where
Success <> r = r
Failed str <> _ = Failed str
instance monoidResult :: Monoid Result where
mempty = Success
This is a use case I have in mind
log "fromRotationMatrix avoids instability issues when the quaternion has one very small component"
quickCheck \(VerySmallNum e) a b c ->
let
testWith p' =
let
p = Rotation.fromQuaternion p'
q = unsafePartial (Rotation.fromRotationMatrix (Rotation.toRotationMatrix p))
in
rApproxEq p q
<?> show { p, q }
in
fold
[ testWith (Quaternion e a b c)
, testWith (Quaternion a e b c)
, testWith (Quaternion a b e c)
, testWith (Quaternion a b c e)
]
Of course I could rewrite this test to call quickCheck four times instead, but I think the instance makes sense, and I think it would be nice to allow writing tests this way. Additionally, if generating random values for a given type is expensive, being able to combine Result values in this way could let you cut down the number of random values you need to generate, since you don't need to call quickCheck as many times.
- Lenguaje dominante
- PureScript
- Estrellas
- 108
- Forks
- 42
- Merge medio
- 2 d 23 h
- PR fusionados (30 d)
- 1
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Sin guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de purescript/purescript-quickcheck
-
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
purescript/purescript-quickcheck#136 · 1 comentario ·
-
Lazy List Arbitrary InstancePosiblemente ocupada @eviefp la tomó hace 2206 días. Abiertotype: enhancement
Dificultad 3/5 1-2 días Aptitud para principiantes 20/100
purescript/purescript-quickcheck#111 · 2 comentarios · 2 reacciones ·
-
type: documentation
Dificultad 1/5 Menos de una hora Aptitud para principiantes 55/100
-
purs-0.15 type: breaking change
Dificultad 5/5 Más de una semana Aptitud para principiantes 20/100
purescript/purescript-quickcheck#104 · 12 comentarios ·
-
ShrinkingAbiertotype: enhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 15/100
purescript/purescript-quickcheck#103 · 6 comentarios · 4 reacciones ·
Todos los issues de purescript/purescript-quickcheck
Issues similares
-
[prefer-expect-resolves] autofix leaves a stray ")" when the awaited expression is parenthesizedAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
jest-community/eslint-plugin-jest#2052 ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
johanhaleby/occurrent#1505 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
jeanibarz/knowledge-base-mcp-server#1262 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
future-agi/future-agi#4092 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día