@fncts/test 0.0.12 → 0.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/TestSpec.d.ts +1 -1
- package/_cjs/control/Annotations/api.cjs +1 -1
- package/_cjs/control/Annotations/api.cjs.map +1 -1
- package/_cjs/control/Gen/api/char.cjs.map +1 -1
- package/_cjs/control/Gen/api.cjs +3 -3
- package/_cjs/control/Gen/api.cjs.map +1 -1
- package/_cjs/control/Gen/definition.cjs.map +1 -1
- package/_cjs/control/Live/definition.cjs +1 -1
- package/_cjs/control/Live/definition.cjs.map +1 -1
- package/_cjs/control/RunnableSpec.cjs +9 -11
- package/_cjs/control/RunnableSpec.cjs.map +1 -1
- package/_cjs/control/Sized/api.cjs +1 -1
- package/_cjs/control/Sized/api.cjs.map +1 -1
- package/_cjs/control/Spec/api.cjs +1 -1
- package/_cjs/control/Spec/api.cjs.map +1 -1
- package/_cjs/control/Spec/definition.cjs.map +1 -1
- package/_cjs/control/TestAspect/api.cjs +3 -3
- package/_cjs/control/TestAspect/api.cjs.map +1 -1
- package/_cjs/control/TestClock/api.cjs +14 -22
- package/_cjs/control/TestClock/api.cjs.map +1 -1
- package/_cjs/control/TestConsole/api.cjs +12 -15
- package/_cjs/control/TestConsole/api.cjs.map +1 -1
- package/_cjs/control/TestEnvironment.cjs.map +1 -1
- package/_cjs/control/TestExecutor.cjs +6 -6
- package/_cjs/control/TestExecutor.cjs.map +1 -1
- package/_cjs/control/TestLogger.cjs.map +1 -1
- package/_cjs/control/TestRandom/api.cjs +10 -18
- package/_cjs/control/TestRandom/api.cjs.map +1 -1
- package/_cjs/control/TestRunner.cjs.map +1 -1
- package/_mjs/control/Annotations/api.mjs +1 -1
- package/_mjs/control/Annotations/api.mjs.map +1 -1
- package/_mjs/control/Gen/api/char.mjs.map +1 -1
- package/_mjs/control/Gen/api.mjs +3 -3
- package/_mjs/control/Gen/api.mjs.map +1 -1
- package/_mjs/control/Gen/definition.mjs.map +1 -1
- package/_mjs/control/Live/definition.mjs +1 -1
- package/_mjs/control/Live/definition.mjs.map +1 -1
- package/_mjs/control/RunnableSpec.mjs +9 -11
- package/_mjs/control/RunnableSpec.mjs.map +1 -1
- package/_mjs/control/Sized/api.mjs +1 -1
- package/_mjs/control/Sized/api.mjs.map +1 -1
- package/_mjs/control/Spec/api.mjs +1 -1
- package/_mjs/control/Spec/api.mjs.map +1 -1
- package/_mjs/control/Spec/definition.mjs.map +1 -1
- package/_mjs/control/TestAspect/api.mjs +3 -3
- package/_mjs/control/TestAspect/api.mjs.map +1 -1
- package/_mjs/control/TestClock/api.mjs +13 -21
- package/_mjs/control/TestClock/api.mjs.map +1 -1
- package/_mjs/control/TestConsole/api.mjs +10 -13
- package/_mjs/control/TestConsole/api.mjs.map +1 -1
- package/_mjs/control/TestEnvironment.mjs.map +1 -1
- package/_mjs/control/TestExecutor.mjs +6 -6
- package/_mjs/control/TestExecutor.mjs.map +1 -1
- package/_mjs/control/TestLogger.mjs.map +1 -1
- package/_mjs/control/TestRandom/api.mjs +10 -18
- package/_mjs/control/TestRandom/api.mjs.map +1 -1
- package/_mjs/control/TestRunner.mjs.map +1 -1
- package/_src/api.ts +8 -8
- package/_src/control/AbstractRunnableSpec.ts +2 -2
- package/_src/control/Annotations/api.ts +4 -4
- package/_src/control/AssertionIO/definition.ts +1 -1
- package/_src/control/DefaultTestReporter/render.ts +1 -1
- package/_src/control/FreeBooleanAlgebraIO/api.ts +4 -4
- package/_src/control/Gen/api/array.ts +2 -2
- package/_src/control/Gen/api/char.ts +10 -10
- package/_src/control/Gen/api/conc.ts +2 -2
- package/_src/control/Gen/api/double.ts +2 -2
- package/_src/control/Gen/api/float.ts +1 -1
- package/_src/control/Gen/api/string.ts +8 -8
- package/_src/control/Gen/api.ts +20 -20
- package/_src/control/Gen/definition.ts +2 -0
- package/_src/control/Live/definition.ts +7 -7
- package/_src/control/RunnableSpec.ts +4 -4
- package/_src/control/Sample/api.ts +12 -12
- package/_src/control/Sized/api.ts +2 -2
- package/_src/control/Sized/live.ts +1 -1
- package/_src/control/Spec/api.ts +18 -21
- package/_src/control/Spec/definition.ts +3 -3
- package/_src/control/TestAspect/api.ts +12 -14
- package/_src/control/TestAspect/definition.ts +1 -1
- package/_src/control/TestClock/api.ts +10 -10
- package/_src/control/TestClock/definition.ts +3 -3
- package/_src/control/TestConsole/api.ts +5 -5
- package/_src/control/TestEnvironment.ts +11 -10
- package/_src/control/TestExecutor.ts +4 -6
- package/_src/control/TestLogger.ts +2 -2
- package/_src/control/TestRandom/api.ts +10 -10
- package/_src/control/TestRunner.ts +3 -3
- package/_src/data/TestConfig.ts +1 -1
- package/_src/util/math.ts +3 -3
- package/api.d.ts +5 -6
- package/control/AbstractRunnableSpec.d.ts +2 -3
- package/control/Annotations/api.d.ts +4 -5
- package/control/Annotations/live.d.ts +3 -3
- package/control/AssertionIO/definition.d.ts +1 -1
- package/control/DefaultRunnableSpec.d.ts +2 -2
- package/control/DefaultTestReporter/render.d.ts +1 -2
- package/control/FreeBooleanAlgebraIO/api.d.ts +4 -4
- package/control/Gen/api/array.d.ts +2 -3
- package/control/Gen/api/char.d.ts +9 -9
- package/control/Gen/api/conc.d.ts +2 -3
- package/control/Gen/api/double.d.ts +2 -2
- package/control/Gen/api/float.d.ts +1 -1
- package/control/Gen/api/string.d.ts +8 -9
- package/control/Gen/api.d.ts +19 -20
- package/control/Gen/definition.d.ts +2 -0
- package/control/Live/definition.d.ts +4 -6
- package/control/RunnableSpec.d.ts +2 -3
- package/control/Sample/api.d.ts +10 -10
- package/control/Sized/api.d.ts +2 -3
- package/control/Sized/live.d.ts +1 -2
- package/control/Spec/api.d.ts +12 -14
- package/control/Spec/definition.d.ts +4 -5
- package/control/TestAspect/api.d.ts +6 -7
- package/control/TestAspect/definition.d.ts +1 -1
- package/control/TestClock/api.d.ts +3 -4
- package/control/TestClock/definition.d.ts +3 -3
- package/control/TestConsole/api.d.ts +2 -3
- package/control/TestConsole/definition.d.ts +5 -5
- package/control/TestEnvironment.d.ts +2 -3
- package/control/TestExecutor.d.ts +2 -3
- package/control/TestLogger.d.ts +2 -3
- package/control/TestRandom/api.d.ts +10 -10
- package/control/TestRunner.d.ts +3 -4
- package/data/TestConfig.d.ts +5 -6
- package/package.json +4 -4
- package/util/math.d.ts +4 -4
|
@@ -7,15 +7,15 @@ import { TestConsole } from "@fncts/test/control/TestConsole/definition";
|
|
|
7
7
|
/**
|
|
8
8
|
* @tsplus static fncts.test.TestConsoleOps make
|
|
9
9
|
*/
|
|
10
|
-
export function make(data: ConsoleData, debug = true): Layer<
|
|
10
|
+
export function make(data: ConsoleData, debug = true): Layer<Live, never, TestConsole> {
|
|
11
11
|
return Layer.scopedEnvironment(
|
|
12
12
|
IO.serviceWithIO(
|
|
13
13
|
(live) =>
|
|
14
|
-
|
|
15
|
-
const ref =
|
|
16
|
-
const debugRef =
|
|
14
|
+
Do((_) => {
|
|
15
|
+
const ref = _(Ref.make(data));
|
|
16
|
+
const debugRef = _(FiberRef.make(debug));
|
|
17
17
|
const test = new TestConsole(ref, live, debugRef);
|
|
18
|
-
|
|
18
|
+
_(IOEnv.services.locallyScopedWith((_) => _.add(test, Console.Tag)));
|
|
19
19
|
return Environment.empty.add(test, TestConsole.Tag);
|
|
20
20
|
}),
|
|
21
21
|
Live.Tag,
|
|
@@ -9,16 +9,17 @@ import { TestConsole } from "@fncts/test/control/TestConsole";
|
|
|
9
9
|
import { TestRandom } from "@fncts/test/control/TestRandom";
|
|
10
10
|
import { TestConfig } from "@fncts/test/data/TestConfig";
|
|
11
11
|
|
|
12
|
-
export type TestEnvironment =
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
12
|
+
export type TestEnvironment =
|
|
13
|
+
| Annotations
|
|
14
|
+
| Live
|
|
15
|
+
| Sized
|
|
16
|
+
| TestClock
|
|
17
|
+
| TestConfig
|
|
18
|
+
| TestRandom
|
|
19
|
+
| Clock
|
|
20
|
+
| Random
|
|
21
|
+
| Console
|
|
22
|
+
| TestConsole;
|
|
22
23
|
|
|
23
24
|
export const LiveTestEnvironment: Layer<IOEnv, never, TestEnvironment> = Annotations.Live.and(Live.Default)
|
|
24
25
|
.and(Sized.Live(100))
|
|
@@ -11,15 +11,13 @@ import { TestAnnotationMap } from "../data/TestAnnotationMap.js";
|
|
|
11
11
|
import { RuntimeFailure } from "../data/TestFailure.js";
|
|
12
12
|
|
|
13
13
|
export interface TestExecutor<R> {
|
|
14
|
-
readonly run: <E>(spec: Spec<R
|
|
14
|
+
readonly run: <E>(spec: Spec<R | Annotations, E>, defExec: ExecutionStrategy) => UIO<ExecutedSpec<E>>;
|
|
15
15
|
readonly environment: Layer<unknown, never, R>;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
export function defaultTestExecutor<R>(
|
|
19
|
-
env: Layer<unknown, never, R & Has<Annotations>>,
|
|
20
|
-
): TestExecutor<R & Has<Annotations>> {
|
|
18
|
+
export function defaultTestExecutor<R>(env: Layer<never, never, R | Annotations>): TestExecutor<R | Annotations> {
|
|
21
19
|
return {
|
|
22
|
-
run: <E>(spec: Spec<R
|
|
20
|
+
run: <E>(spec: Spec<R | Annotations, E>, defExec: ExecutionStrategy): UIO<ExecutedSpec<E>> =>
|
|
23
21
|
spec.annotated
|
|
24
22
|
.provideLayer(env)
|
|
25
23
|
.foreachExec(
|
|
@@ -35,7 +33,7 @@ export function defaultTestExecutor<R>(
|
|
|
35
33
|
.scoped.flatMap(
|
|
36
34
|
(s) =>
|
|
37
35
|
s.foldScoped(
|
|
38
|
-
(spec: SpecCase<
|
|
36
|
+
(spec: SpecCase<never, never, Annotated<Either<TestFailure<E>, TestSuccess>>, ExecutedSpec<E>>) =>
|
|
39
37
|
matchTag_(spec, {
|
|
40
38
|
Exec: ({ spec }) => IO.succeedNow(spec),
|
|
41
39
|
Labeled: ({ label, spec }) => IO.succeedNow(ExecutedSpec.labeled(spec, label)),
|
|
@@ -16,7 +16,7 @@ export const TestLoggerTag = Tag<TestLogger>();
|
|
|
16
16
|
/**
|
|
17
17
|
* @tsplus static fncts.test.TestLoggerOps fromConsole
|
|
18
18
|
*/
|
|
19
|
-
export const fromConsole: Layer<
|
|
19
|
+
export const fromConsole: Layer<never, never, TestLogger> = Layer.fromIO(
|
|
20
20
|
IO.consoleWith((console) =>
|
|
21
21
|
IO.succeedNow(
|
|
22
22
|
new (class extends TestLogger {
|
|
@@ -32,6 +32,6 @@ export const fromConsole: Layer<unknown, never, Has<TestLogger>> = Layer.fromIO(
|
|
|
32
32
|
/**
|
|
33
33
|
* @tsplus static fncts.test.TestLoggerOps logLine
|
|
34
34
|
*/
|
|
35
|
-
export function logLine(line: string): URIO<
|
|
35
|
+
export function logLine(line: string): URIO<TestLogger, void> {
|
|
36
36
|
return IO.serviceWithIO((testLogger) => testLogger.logLine(line), TestLogger.Tag);
|
|
37
37
|
}
|
|
@@ -41,11 +41,11 @@ export function feedBooleans(...booleans: ReadonlyArray<boolean>) {
|
|
|
41
41
|
/**
|
|
42
42
|
* @tsplus static fncts.test.TestRandomOps make
|
|
43
43
|
*/
|
|
44
|
-
export function make(initialData: Data): Layer<
|
|
44
|
+
export function make(initialData: Data): Layer<never, never, Random | TestRandom> {
|
|
45
45
|
return Layer.fromIOEnvironment(
|
|
46
|
-
|
|
47
|
-
const data =
|
|
48
|
-
const buffer =
|
|
46
|
+
Do((_) => {
|
|
47
|
+
const data = _(Ref.make(initialData));
|
|
48
|
+
const buffer = _(Ref.make(new Buffer()));
|
|
49
49
|
const test = new TestRandom(data, buffer);
|
|
50
50
|
return Environment().add(test, TestRandom.Tag).add(test, Random.Tag);
|
|
51
51
|
}),
|
|
@@ -62,13 +62,13 @@ export const determinictic = TestRandom.make(defaultData);
|
|
|
62
62
|
/**
|
|
63
63
|
* @tsplus static fncts.test.TestRandomOps Random
|
|
64
64
|
*/
|
|
65
|
-
export const random: Layer<unknown, never,
|
|
65
|
+
export const random: Layer<unknown, never, TestRandom> = determinictic.to(
|
|
66
66
|
Layer.scoped(
|
|
67
|
-
|
|
68
|
-
const testRandom =
|
|
69
|
-
const time =
|
|
70
|
-
|
|
71
|
-
|
|
67
|
+
Do((_) => {
|
|
68
|
+
const testRandom = _(IO.service(TestRandom.Tag));
|
|
69
|
+
const time = _(Clock.currentTime);
|
|
70
|
+
_(testRandom.setSeed(time));
|
|
71
|
+
_(IOEnv.services.locallyScopedWith((_) => _.add(testRandom, Random.Tag)));
|
|
72
72
|
return testRandom;
|
|
73
73
|
}),
|
|
74
74
|
TestRandom.Tag,
|
|
@@ -14,18 +14,18 @@ import { ConsoleRenderer } from "@fncts/test/control/TestRenderer/ConsoleRendere
|
|
|
14
14
|
|
|
15
15
|
export class TestRunner<R, E> {
|
|
16
16
|
readonly reporter: TestReporter<E>;
|
|
17
|
-
readonly bootstrap: Layer<
|
|
17
|
+
readonly bootstrap: Layer<never, never, TestLogger>;
|
|
18
18
|
constructor(
|
|
19
19
|
readonly executor: TestExecutor<R>,
|
|
20
20
|
readonly runtimeConfig: RuntimeConfig = defaultRuntimeConfig,
|
|
21
21
|
reporter?: TestReporter<E>,
|
|
22
|
-
bootstrap?: Layer<
|
|
22
|
+
bootstrap?: Layer<never, never, TestLogger>,
|
|
23
23
|
) {
|
|
24
24
|
this.reporter = reporter ?? DefaultTestReporter.report(ConsoleRenderer.render, TestAnnotationRenderer.Default);
|
|
25
25
|
this.bootstrap = bootstrap ?? TestLogger.fromConsole;
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
run(spec: Spec<R
|
|
28
|
+
run(spec: Spec<R | Annotations, E>): URIO<TestLogger, ExecutedSpec<E>> {
|
|
29
29
|
return this.executor
|
|
30
30
|
.run(spec, ExecutionStrategy.concurrentBounded(10))
|
|
31
31
|
.timedWith(Clock.currentTime)
|
package/_src/data/TestConfig.ts
CHANGED
|
@@ -17,7 +17,7 @@ export const TestConfigTag = Tag<TestConfig>();
|
|
|
17
17
|
/**
|
|
18
18
|
* @tsplus static fncts.test.data.TestConfigOps Live
|
|
19
19
|
*/
|
|
20
|
-
export function live(_: TestConfig): Layer<
|
|
20
|
+
export function live(_: TestConfig): Layer<never, never, TestConfig> {
|
|
21
21
|
return Layer.succeed(
|
|
22
22
|
new (class extends TestConfig {
|
|
23
23
|
repeats = _.repeats;
|
package/_src/util/math.ts
CHANGED
|
@@ -10,7 +10,7 @@ const INDEX_POSITIVE_INFINITY_32 = 2139095040; // floatToIndex(MAX_VALUE_32) + 1
|
|
|
10
10
|
/** @internal */
|
|
11
11
|
const INDEX_NEGATIVE_INFINITY_32 = -2139095041; // floatToIndex(-MAX_VALUE_32) - 1
|
|
12
12
|
|
|
13
|
-
export function safeFloatToIndex(f: number, label: string): IO<
|
|
13
|
+
export function safeFloatToIndex(f: number, label: string): IO<never, never, number> {
|
|
14
14
|
const conversionTrick = "you can convert any double to a 32-bit float by using `new Float32Array([myDouble])[0]`";
|
|
15
15
|
const errorMessage = "fc.floatNext constraints." + label + " must be a 32-bit float - " + conversionTrick;
|
|
16
16
|
if (Number.isNaN(f) || (Number.isFinite(f) && (f < -MAX_VALUE_32 || f > MAX_VALUE_32))) {
|
|
@@ -397,7 +397,7 @@ export function indexToDouble(index: ArrayInt64): number {
|
|
|
397
397
|
*
|
|
398
398
|
* @internal
|
|
399
399
|
*/
|
|
400
|
-
export function safeDoubleToIndex(d: number, label: string): IO<
|
|
400
|
+
export function safeDoubleToIndex(d: number, label: string): IO<never, never, ArrayInt64> {
|
|
401
401
|
if (Number.isNaN(d)) {
|
|
402
402
|
// Number.NaN does not have any associated index in the current implementation
|
|
403
403
|
return IO.haltNow(new Error("fc.doubleNext constraints." + label + " must be a 32-bit float"));
|
|
@@ -478,7 +478,7 @@ export function computeArrayInt64GenerateRange(
|
|
|
478
478
|
max: ArrayInt64,
|
|
479
479
|
biasFactor: number | undefined,
|
|
480
480
|
biasedRanges: { min: ArrayInt64; max: ArrayInt64 }[] | undefined,
|
|
481
|
-
):
|
|
481
|
+
): UIO<{ min: ArrayInt64; max: ArrayInt64 }> {
|
|
482
482
|
return IO.gen(function* (_) {
|
|
483
483
|
if (biasFactor === undefined || (yield* _(Random.nextIntBetween(1, biasFactor))) !== 1) {
|
|
484
484
|
return { min, max };
|
package/api.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { IO } from "@fncts/io/IO";
|
|
2
2
|
import { Lazy } from "@fncts/base/data/function/definition";
|
|
3
|
-
import { Has } from "@fncts/base/typeclass";
|
|
4
3
|
import { Stream } from "@fncts/io/Stream";
|
|
5
4
|
import { Either } from "@fncts/base/data/Either/definition";
|
|
6
5
|
import type { AssertResult } from "./control/Assertion.js";
|
|
@@ -24,24 +23,24 @@ export declare function assert_<A>(value: A, assertion: Assertion<A>): TestResul
|
|
|
24
23
|
export declare function assertIO_<R, E, A>(io: IO<R, E, A>, assertion: AssertionIO<A>): IO<R, E, TestResult>;
|
|
25
24
|
export declare function suite<Specs extends ReadonlyArray<Spec<any, any>>>(label: string, ...specs: Specs): Spec<_R<Specs[number]>, _E<Specs[number]>>;
|
|
26
25
|
export declare function testIO<R, E>(label: string, assertion: Lazy<IO<R, E, TestResult>>): Spec<R, E>;
|
|
27
|
-
export declare function test(label: string, assertion: Lazy<TestResult>): Spec<
|
|
26
|
+
export declare function test(label: string, assertion: Lazy<TestResult>): Spec<never, never>;
|
|
28
27
|
/**
|
|
29
28
|
* @tsplus fluent fncts.test.Gen check
|
|
30
29
|
* @tsplus location "@fncts/test/api"
|
|
31
30
|
*/
|
|
32
|
-
export declare function check<R, A>(rv: Gen<R, A>, test: (a: A) => TestResult): IO<R
|
|
31
|
+
export declare function check<R, A>(rv: Gen<R, A>, test: (a: A) => TestResult): IO<R | TestConfig, never, TestResult>;
|
|
33
32
|
/**
|
|
34
33
|
* @tsplus fluent fncts.test.Gen check
|
|
35
34
|
* @tsplus location "@fncts/test/api"
|
|
36
35
|
*/
|
|
37
|
-
export declare function checkIO<R, A, R1, E>(rv: Gen<R, A>, test: (a: A) => IO<R1, E, TestResult>): IO<R
|
|
36
|
+
export declare function checkIO<R, A, R1, E>(rv: Gen<R, A>, test: (a: A) => IO<R1, E, TestResult>): IO<R | R1 | TestConfig, E, TestResult>;
|
|
38
37
|
/**
|
|
39
38
|
* @tsplus fluent fncts.test.Gen checkAllC
|
|
40
39
|
* @tsplus location "@fncts/test/api"
|
|
41
40
|
*/
|
|
42
|
-
export declare function checkAllC<R, A>(rv: Gen<R, A>, concurrency: number, test: (a: A) => TestResult): IO<R
|
|
41
|
+
export declare function checkAllC<R, A>(rv: Gen<R, A>, concurrency: number, test: (a: A) => TestResult): IO<R | TestConfig, never, TestResult>;
|
|
43
42
|
/**
|
|
44
43
|
* @tsplus fluent fncts.test.Gen checkAllC
|
|
45
44
|
* @tsplus location "@fncts/test/api"
|
|
46
45
|
*/
|
|
47
|
-
export declare function checkAllIOC<R, A, R1, E>(rv: Gen<R, A>, concurrency: number, test: (a: A) => IO<R1, E, TestResult>): IO<R
|
|
46
|
+
export declare function checkAllIOC<R, A, R1, E>(rv: Gen<R, A>, concurrency: number, test: (a: A) => IO<R1, E, TestResult>): IO<R | R1 | TestConfig, E, TestResult>;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { URIO } from "@fncts/io/IO";
|
|
2
|
-
import { Has } from "@fncts/base/typeclass";
|
|
3
2
|
import type { Spec } from "@fncts/test/control/Spec";
|
|
4
3
|
import type { TestAspect } from "@fncts/test/control/TestAspect";
|
|
5
4
|
import type { TestLogger } from "@fncts/test/control/TestLogger";
|
|
@@ -9,7 +8,7 @@ export declare abstract class AbstractRunnableSpec<R, E> {
|
|
|
9
8
|
abstract aspects: ReadonlyArray<TestAspect<R, any>>;
|
|
10
9
|
abstract runner: TestRunner<R, E>;
|
|
11
10
|
abstract spec: Spec<R, E>;
|
|
12
|
-
get _run(): URIO<
|
|
13
|
-
runSpec(spec: Spec<R, E>): URIO<
|
|
11
|
+
get _run(): URIO<TestLogger, ExecutedSpec<E>>;
|
|
12
|
+
runSpec(spec: Spec<R, E>): URIO<TestLogger, ExecutedSpec<E>>;
|
|
14
13
|
get platform(): import("@fncts/io/RuntimeConfig").RuntimeConfig;
|
|
15
14
|
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { URIO, IO } from "@fncts/io/IO";
|
|
2
|
-
import { Has } from "@fncts/base/typeclass";
|
|
3
2
|
import { HashSet } from "@fncts/base/collection/immutable/HashSet";
|
|
4
3
|
import { Fiber } from "@fncts/io/Fiber";
|
|
5
4
|
import type { TestAnnotation } from "../../data/TestAnnotation.js";
|
|
@@ -9,19 +8,19 @@ import { Annotations } from "./definition.js";
|
|
|
9
8
|
* @tsplus static fncts.test.AnnotationsOps annotate
|
|
10
9
|
* @tsplus location "@fncts/test/control/Annotations/api"
|
|
11
10
|
*/
|
|
12
|
-
export declare function annotate<V>(key: TestAnnotation<V>, value: V): URIO<
|
|
11
|
+
export declare function annotate<V>(key: TestAnnotation<V>, value: V): URIO<Annotations, void>;
|
|
13
12
|
/**
|
|
14
13
|
* @tsplus static fncts.test.AnnotationsOps get
|
|
15
14
|
* @tsplus location "@fncts/test/control/Annotations/api"
|
|
16
15
|
*/
|
|
17
|
-
export declare function get<V>(key: TestAnnotation<V>): URIO<
|
|
16
|
+
export declare function get<V>(key: TestAnnotation<V>): URIO<Annotations, V>;
|
|
18
17
|
/**
|
|
19
18
|
* @tsplus static fncts.test.AnnotationsOps withAnnotations
|
|
20
19
|
* @tsplus location "@fncts/test/control/Annotations/api"
|
|
21
20
|
*/
|
|
22
|
-
export declare function withAnnotation<R, E, A>(io: IO<R, E, A>): IO<R
|
|
21
|
+
export declare function withAnnotation<R, E, A>(io: IO<R, E, A>): IO<R | Annotations, Annotated<E>, Annotated<A>>;
|
|
23
22
|
/**
|
|
24
23
|
* @tsplus static fncts.test.AnnotationsOps supervisedFibers
|
|
25
24
|
* @tsplus location "@fncts/test/control/Annotations/api"
|
|
26
25
|
*/
|
|
27
|
-
export declare const supervisedFibers: URIO<
|
|
26
|
+
export declare const supervisedFibers: URIO<Annotations, HashSet<Fiber.Runtime<any, any>>>;
|
|
@@ -10,12 +10,12 @@ export declare class LiveAnnotations extends Annotations {
|
|
|
10
10
|
private fiberRef;
|
|
11
11
|
constructor(fiberRef: FiberRef<TestAnnotationMap>);
|
|
12
12
|
annotate<V>(key: TestAnnotation<V>, value: V): UIO<void>;
|
|
13
|
-
get<V>(key: TestAnnotation<V>): import("@fncts/io/IO.js").IO<
|
|
13
|
+
get<V>(key: TestAnnotation<V>): import("@fncts/io/IO.js").IO<never, never, V>;
|
|
14
14
|
withAnnotation<R, E, A>(io: IO<R, E, A>): import("@fncts/io/IO.js").IO<R, readonly [E, TestAnnotationMap], readonly [A, TestAnnotationMap]>;
|
|
15
|
-
supervisedFibers: import("@fncts/io/IO.js").IO<
|
|
15
|
+
supervisedFibers: import("@fncts/io/IO.js").IO<never, never, import("@fncts/base/collection/immutable/HashSet.js").HashSet<import("@fncts/io/Fiber.js").Fiber.Runtime<any, any>>>;
|
|
16
16
|
}
|
|
17
17
|
/**
|
|
18
18
|
* @tsplus static fncts.test.AnnotationsOps Live
|
|
19
19
|
* @tsplus location "@fncts/test/control/Annotations/live"
|
|
20
20
|
*/
|
|
21
|
-
export declare const live: import("@fncts/io/Layer.js").Layer<
|
|
21
|
+
export declare const live: import("@fncts/io/Layer.js").Layer<never, never, Annotations>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { AssertionValue } from "../../data/AssertionValue.js";
|
|
2
2
|
import type { Render } from "../../data/Render.js";
|
|
3
3
|
import type { FreeBooleanAlgebraIO } from "../FreeBooleanAlgebraIO.js";
|
|
4
|
-
export declare type AssertResultIO<A> = FreeBooleanAlgebraIO<
|
|
4
|
+
export declare type AssertResultIO<A> = FreeBooleanAlgebraIO<never, never, AssertionValue<A>>;
|
|
5
5
|
export declare const AssertionIOTypeId: unique symbol;
|
|
6
6
|
export declare type AssertionIOTypeId = typeof AssertionIOTypeId;
|
|
7
7
|
/**
|
|
@@ -2,6 +2,6 @@ import { RunnableSpec } from "@fncts/test/control/RunnableSpec";
|
|
|
2
2
|
import { TestEnvironment } from "@fncts/test/control/TestEnvironment";
|
|
3
3
|
import { TestRunner } from "@fncts/test/control/TestRunner";
|
|
4
4
|
export declare abstract class DefaultRunnableSpec extends RunnableSpec<TestEnvironment, any> {
|
|
5
|
-
aspects: import("@fncts/test/control/TestAspect").TestAspect<import("
|
|
6
|
-
runner: TestRunner<import("@fncts/
|
|
5
|
+
aspects: import("@fncts/test/control/TestAspect").TestAspect<import("./Live").Live, any>[];
|
|
6
|
+
runner: TestRunner<import("@fncts/io/Clock").Clock | import("@fncts/io/Console").Console | import("@fncts/io/Random").Random | import("./Sized").Sized | import("./Annotations").Annotations | import("../data/TestConfig").TestConfig | import("./Live").Live | import("./TestClock").TestClock | import("./TestConsole").TestConsole | import("./TestRandom").TestRandom, unknown>;
|
|
7
7
|
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { URIO } from "@fncts/io/IO";
|
|
2
|
-
import { Has } from "@fncts/base/typeclass";
|
|
3
2
|
import { Vector } from "@fncts/base/collection/immutable/Vector";
|
|
4
3
|
import { List, Cons } from "@fncts/base/collection/immutable/List";
|
|
5
4
|
import { Maybe } from "@fncts/base/data/Maybe";
|
|
@@ -9,7 +8,7 @@ import type { ExecutionResult } from "../../data/ExecutionResult.js";
|
|
|
9
8
|
import type { TestAnnotationRenderer } from "../TestAnnotationRenderer.js";
|
|
10
9
|
import type { TestRenderer } from "../TestRenderer/definition.js";
|
|
11
10
|
import { TestLogger } from "../TestLogger.js";
|
|
12
|
-
export declare type TestReporter<E> = (duration: number, spec: ExecutedSpec<E>) => URIO<
|
|
11
|
+
export declare type TestReporter<E> = (duration: number, spec: ExecutedSpec<E>) => URIO<TestLogger, void>;
|
|
13
12
|
/**
|
|
14
13
|
* @tsplus static fncts.test.DefaultTestReporter report
|
|
15
14
|
* @tsplus location "@fncts/test/control/DefaultTestReporter/render"
|
|
@@ -5,13 +5,13 @@ import type { FreeBooleanAlgebraIO } from "./definition.js";
|
|
|
5
5
|
* @tsplus operator fncts.test.FreeBooleanAlgebraIO &&
|
|
6
6
|
* @tsplus location "@fncts/test/control/FreeBooleanAlgebraIO/api"
|
|
7
7
|
*/
|
|
8
|
-
export declare function and_<R, E, A extends A1, R1, E1, A1>(self: FreeBooleanAlgebraIO<R, E, A>, that: FreeBooleanAlgebraIO<R1, E1, A1>): FreeBooleanAlgebraIO<R
|
|
8
|
+
export declare function and_<R, E, A extends A1, R1, E1, A1>(self: FreeBooleanAlgebraIO<R, E, A>, that: FreeBooleanAlgebraIO<R1, E1, A1>): FreeBooleanAlgebraIO<R | R1, E | E1, A | A1>;
|
|
9
9
|
/**
|
|
10
10
|
* @tsplus fluent fncts.test.FreeBooleanAlgebraIO or
|
|
11
11
|
* @tsplus operator fncts.test.FreeBooleanAlgebraIO ||
|
|
12
12
|
* @tsplus location "@fncts/test/control/FreeBooleanAlgebraIO/api"
|
|
13
13
|
*/
|
|
14
|
-
export declare function or_<R, E, A extends A1, R1, E1, A1>(self: FreeBooleanAlgebraIO<R, E, A>, that: FreeBooleanAlgebraIO<R1, E1, A1>): FreeBooleanAlgebraIO<R
|
|
14
|
+
export declare function or_<R, E, A extends A1, R1, E1, A1>(self: FreeBooleanAlgebraIO<R, E, A>, that: FreeBooleanAlgebraIO<R1, E1, A1>): FreeBooleanAlgebraIO<R | R1, E | E1, A | A1>;
|
|
15
15
|
/**
|
|
16
16
|
* @tsplus fluent fncts.test.FreeBooleanAlgebraIO invert
|
|
17
17
|
* @tsplus location "@fncts/test/control/FreeBooleanAlgebraIO/api"
|
|
@@ -31,12 +31,12 @@ export declare function isFailure<R, E, A>(self: FreeBooleanAlgebraIO<R, E, A>):
|
|
|
31
31
|
* @tsplus static fncts.test.FreeBooleanAlgebraIOOps success
|
|
32
32
|
* @tsplus location "@fncts/test/control/FreeBooleanAlgebraIO/api"
|
|
33
33
|
*/
|
|
34
|
-
export declare function success<A>(a: A): FreeBooleanAlgebraIO<
|
|
34
|
+
export declare function success<A>(a: A): FreeBooleanAlgebraIO<never, never, A>;
|
|
35
35
|
/**
|
|
36
36
|
* @tsplus static fncts.test.FreeBooleanAlgebraIOOps failure
|
|
37
37
|
* @tsplus location "@fncts/test/control/FreeBooleanAlgebraIO/api"
|
|
38
38
|
*/
|
|
39
|
-
export declare function failure<A>(a: A): FreeBooleanAlgebraIO<
|
|
39
|
+
export declare function failure<A>(a: A): FreeBooleanAlgebraIO<never, never, A>;
|
|
40
40
|
/**
|
|
41
41
|
* @tsplus static fncts.test.FreeBooleanAlgebraIOOps fromIO
|
|
42
42
|
* @tsplus location "@fncts/test/control/FreeBooleanAlgebraIO/api"
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { Has } from "@fncts/base/typeclass";
|
|
2
1
|
import type { Sized } from "../../Sized.js";
|
|
3
2
|
import type { EqConstraint, LengthConstraints } from "../constraints.js";
|
|
4
3
|
import { Gen } from "../definition.js";
|
|
@@ -6,7 +5,7 @@ import { Gen } from "../definition.js";
|
|
|
6
5
|
* @tsplus fluent fncts.test.Gen array
|
|
7
6
|
* @tsplus location "@fncts/test/control/Gen/api/array"
|
|
8
7
|
*/
|
|
9
|
-
export declare function array<R, A>(g: Gen<R, A>, constraints?: LengthConstraints): Gen<R
|
|
8
|
+
export declare function array<R, A>(g: Gen<R, A>, constraints?: LengthConstraints): Gen<R | Sized, ReadonlyArray<A>>;
|
|
10
9
|
/**
|
|
11
10
|
* @tsplus fluent fncts.test.Gen arrayN
|
|
12
11
|
* @tsplus location "@fncts/test/control/Gen/api/array"
|
|
@@ -16,4 +15,4 @@ export declare function arrayN_<R, A>(self: Gen<R, A>, n: number): Gen<R, Readon
|
|
|
16
15
|
* @tsplus fluent fncts.test.Gen uniqueArray
|
|
17
16
|
* @tsplus location "@fncts/test/control/Gen/api/array"
|
|
18
17
|
*/
|
|
19
|
-
export declare function uniqueArray_<R, A>(gen: Gen<R, A>, constraints?: LengthConstraints & EqConstraint<A>): Gen<
|
|
18
|
+
export declare function uniqueArray_<R, A>(gen: Gen<R, A>, constraints?: LengthConstraints & EqConstraint<A>): Gen<Sized | R, ReadonlyArray<A>>;
|
|
@@ -4,44 +4,44 @@ import { Gen } from "../definition.js";
|
|
|
4
4
|
* @tsplus static fncts.test.GenOps alphaNumericChar
|
|
5
5
|
* @tsplus location "@fncts/test/control/Gen/api/char"
|
|
6
6
|
*/
|
|
7
|
-
export declare const alphaNumericChar: Gen<
|
|
7
|
+
export declare const alphaNumericChar: Gen<never, string>;
|
|
8
8
|
/**
|
|
9
9
|
* @tsplus static fncts.test.GenOps asciiChar
|
|
10
10
|
* @tsplus location "@fncts/test/control/Gen/api/char"
|
|
11
11
|
*/
|
|
12
|
-
export declare const asciiChar: Gen<
|
|
12
|
+
export declare const asciiChar: Gen<never, string>;
|
|
13
13
|
/**
|
|
14
14
|
* @tsplus static fncts.test.GenOps base64Char
|
|
15
15
|
* @tsplus location "@fncts/test/control/Gen/api/char"
|
|
16
16
|
*/
|
|
17
|
-
export declare const base64Char: Gen<
|
|
17
|
+
export declare const base64Char: Gen<never, string>;
|
|
18
18
|
/**
|
|
19
19
|
* @tsplus static fncts.test.GenOps char
|
|
20
20
|
* @tsplus location "@fncts/test/control/Gen/api/char"
|
|
21
21
|
*/
|
|
22
|
-
export declare function char(constraints: Required<NumberConstraints>): Gen<
|
|
22
|
+
export declare function char(constraints: Required<NumberConstraints>): Gen<never, string>;
|
|
23
23
|
/**
|
|
24
24
|
* @tsplus static fncts.test.GenOps char16
|
|
25
25
|
* @tsplus location "@fncts/test/control/Gen/api/char"
|
|
26
26
|
*/
|
|
27
|
-
export declare const char16: Gen<
|
|
27
|
+
export declare const char16: Gen<never, string>;
|
|
28
28
|
/**
|
|
29
29
|
* @tsplus static fncts.test.GenOps fullUnicodeChar
|
|
30
30
|
* @tsplus location "@fncts/test/control/Gen/api/char"
|
|
31
31
|
*/
|
|
32
|
-
export declare const fullUnicodeChar: Gen<
|
|
32
|
+
export declare const fullUnicodeChar: Gen<never, string>;
|
|
33
33
|
/**
|
|
34
34
|
* @tsplus static fncts.test.GenOps hexChar
|
|
35
35
|
* @tsplus location "@fncts/test/control/Gen/api/char"
|
|
36
36
|
*/
|
|
37
|
-
export declare const hexChar: Gen<
|
|
37
|
+
export declare const hexChar: Gen<never, string>;
|
|
38
38
|
/**
|
|
39
39
|
* @tsplus static fncts.test.GenOps printableChar
|
|
40
40
|
* @tsplus location "@fncts/test/control/Gen/api/char"
|
|
41
41
|
*/
|
|
42
|
-
export declare const printableChar: Gen<
|
|
42
|
+
export declare const printableChar: Gen<never, string>;
|
|
43
43
|
/**
|
|
44
44
|
* @tsplus static fncts.test.GenOps unicodeChar
|
|
45
45
|
* @tsplus location "@fncts/test/control/Gen/api/char"
|
|
46
46
|
*/
|
|
47
|
-
export declare const unicodeChar: Gen<
|
|
47
|
+
export declare const unicodeChar: Gen<never, string>;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { Has } from "@fncts/base/typeclass";
|
|
2
1
|
import { Conc } from "@fncts/base/collection/immutable/Conc";
|
|
3
2
|
import type { Sized } from "../../Sized.js";
|
|
4
3
|
import type { EqConstraint, LengthConstraints } from "../constraints.js";
|
|
@@ -8,7 +7,7 @@ import { Gen } from "../definition.js";
|
|
|
8
7
|
* @tsplus fluent fncts.test.Gen conc
|
|
9
8
|
* @tsplus location "@fncts/test/control/Gen/api/conc"
|
|
10
9
|
*/
|
|
11
|
-
export declare function conc<R, A>(self: Gen<R, A>, constraints?: LengthConstraints): Gen<R
|
|
10
|
+
export declare function conc<R, A>(self: Gen<R, A>, constraints?: LengthConstraints): Gen<R | Sized, Conc<A>>;
|
|
12
11
|
/**
|
|
13
12
|
* @tsplus fluent fncts.test.Gen concN
|
|
14
13
|
* @tsplus location "@fncts/test/control/Gen/api/conc"
|
|
@@ -18,7 +17,7 @@ export declare function concN_<R, A>(g: Gen<R, A>, n: number): Gen<R, Conc<A>>;
|
|
|
18
17
|
* @tsplus fluent fncts.test.Gen uniqueConc
|
|
19
18
|
* @tsplus location "@fncts/test/control/Gen/api/conc"
|
|
20
19
|
*/
|
|
21
|
-
export declare function uniqueConc_<R, A>(self: Gen<R, A>, constraints?: LengthConstraints & EqConstraint<A>): Gen<
|
|
20
|
+
export declare function uniqueConc_<R, A>(self: Gen<R, A>, constraints?: LengthConstraints & EqConstraint<A>): Gen<Sized | R, Conc<A>>;
|
|
22
21
|
/**
|
|
23
22
|
* @tsplus fluent fncts.test.Gen uniqueConcN
|
|
24
23
|
* @tsplus location "@fncts/test/control/Gen/api/conc"
|
|
@@ -5,9 +5,9 @@ import { Gen } from "../definition.js";
|
|
|
5
5
|
* @tsplus static fncts.test.GenOps arrayInt64
|
|
6
6
|
* @tsplus location "@fncts/test/control/Gen/api/double"
|
|
7
7
|
*/
|
|
8
|
-
export declare function arrayInt64(min: ArrayInt64, max: ArrayInt64): Gen<
|
|
8
|
+
export declare function arrayInt64(min: ArrayInt64, max: ArrayInt64): Gen<never, ArrayInt64>;
|
|
9
9
|
/**
|
|
10
10
|
* @tsplus static fncts.test.GenOps double
|
|
11
11
|
* @tsplus location "@fncts/test/control/Gen/api/double"
|
|
12
12
|
*/
|
|
13
|
-
export declare function double(constraints?: NumberConstraints & FloatConstraints): Gen<
|
|
13
|
+
export declare function double(constraints?: NumberConstraints & FloatConstraints): Gen<never, number>;
|
|
@@ -4,4 +4,4 @@ import { Gen } from "../definition.js";
|
|
|
4
4
|
* @tsplus static fncts.test.GenOps float
|
|
5
5
|
* @tsplus location "@fncts/test/control/Gen/api/float"
|
|
6
6
|
*/
|
|
7
|
-
export declare function float(constraints?: NumberConstraints & FloatConstraints): Gen<
|
|
7
|
+
export declare function float(constraints?: NumberConstraints & FloatConstraints): Gen<never, number>;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { Has } from "@fncts/base/typeclass";
|
|
2
1
|
import type { Sized } from "../../Sized.js";
|
|
3
2
|
import type { LengthConstraints } from "../constraints.js";
|
|
4
3
|
import { Gen } from "../definition.js";
|
|
@@ -6,37 +5,37 @@ import { Gen } from "../definition.js";
|
|
|
6
5
|
* @tsplus static fncts.test.GenOps asciiString
|
|
7
6
|
* @tsplus location "@fncts/test/control/Gen/api/string"
|
|
8
7
|
*/
|
|
9
|
-
export declare function asciiString<R>(constraints?: LengthConstraints): Gen<R
|
|
8
|
+
export declare function asciiString<R>(constraints?: LengthConstraints): Gen<R | Sized, string>;
|
|
10
9
|
/**
|
|
11
10
|
* @tsplus static fncts.test.GenOps alphaNumericString
|
|
12
11
|
* @tsplus location "@fncts/test/control/Gen/api/string"
|
|
13
12
|
*/
|
|
14
|
-
export declare function alphaNumericString(constraints?: LengthConstraints): Gen<
|
|
13
|
+
export declare function alphaNumericString(constraints?: LengthConstraints): Gen<Sized, string>;
|
|
15
14
|
/**
|
|
16
15
|
* @tsplus static fncts.test.GenOps base64String
|
|
17
16
|
* @tsplus location "@fncts/test/control/Gen/api/string"
|
|
18
17
|
*/
|
|
19
|
-
export declare function base64String(constraints?: LengthConstraints): Gen<
|
|
18
|
+
export declare function base64String(constraints?: LengthConstraints): Gen<Sized, string>;
|
|
20
19
|
/**
|
|
21
20
|
* @tsplus static fncts.test.GenOps fullUnicodeString
|
|
22
21
|
* @tsplus location "@fncts/test/control/Gen/api/string"
|
|
23
22
|
*/
|
|
24
|
-
export declare function fullUnicodeString(constraints?: LengthConstraints): Gen<
|
|
23
|
+
export declare function fullUnicodeString(constraints?: LengthConstraints): Gen<Sized, string>;
|
|
25
24
|
/**
|
|
26
25
|
* @tsplus static fncts.test.GenOps hexString
|
|
27
26
|
* @tsplus location "@fncts/test/control/Gen/api/string"
|
|
28
27
|
*/
|
|
29
|
-
export declare function hexString(constraints?: LengthConstraints): Gen<
|
|
28
|
+
export declare function hexString(constraints?: LengthConstraints): Gen<Sized, string>;
|
|
30
29
|
/**
|
|
31
30
|
* @tsplus static fncts.test.GenOps string16
|
|
32
31
|
* @tsplus location "@fncts/test/control/Gen/api/string"
|
|
33
32
|
*/
|
|
34
|
-
export declare function string16(constraints?: LengthConstraints): Gen<
|
|
33
|
+
export declare function string16(constraints?: LengthConstraints): Gen<Sized, string>;
|
|
35
34
|
/**
|
|
36
35
|
* @tsplus fluent fncts.test.Gen string
|
|
37
36
|
* @tsplus location "@fncts/test/control/Gen/api/string"
|
|
38
37
|
*/
|
|
39
|
-
export declare function string<R>(char: Gen<R, string>, constraints?: LengthConstraints): Gen<R
|
|
38
|
+
export declare function string<R>(char: Gen<R, string>, constraints?: LengthConstraints): Gen<R | Sized, string>;
|
|
40
39
|
/**
|
|
41
40
|
* @tsplus fluent fncts.test.Gen stringN
|
|
42
41
|
* @tsplus location "@fncts/test/control/Gen/api/string"
|
|
@@ -46,4 +45,4 @@ export declare function stringN<R>(char: Gen<R, string>, n: number): Gen<R, stri
|
|
|
46
45
|
* @tsplus static fncts.test.GenOps unicodeString
|
|
47
46
|
* @tsplus location "@fncts/test/control/Gen/api/string"
|
|
48
47
|
*/
|
|
49
|
-
export declare function unicodeString(constraints?: LengthConstraints): Gen<
|
|
48
|
+
export declare function unicodeString(constraints?: LengthConstraints): Gen<Sized, string>;
|