@@ -53,4 +53,121 @@ import resultsFactory = require( './index' );
5353 const r3 = new Results ( new ArrayBuffer ( 80 ) , 8 , 16 ) ; // $ExpectType ResultsStruct<Float64Array>
5454}
5555
56- // TODO: add individual parameter tests
56+ // The returned constructor can be invoked without `new`...
57+ {
58+ const Results = resultsFactory ( 'float64' ) ;
59+
60+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
61+ const r1 = Results ( new ArrayBuffer ( 80 ) ) ; // $ExpectType ResultsStruct<Float64Array>
62+
63+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
64+ const r2 = Results ( new ArrayBuffer ( 80 ) , 8 ) ; // $ExpectType ResultsStruct<Float64Array>
65+
66+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
67+ const r3 = Results ( new ArrayBuffer ( 80 ) , 8 , 16 ) ; // $ExpectType ResultsStruct<Float64Array>
68+ }
69+
70+ // The results object has the expected properties (float64)...
71+ {
72+ const Results = resultsFactory ( 'float64' ) ;
73+ const r = new Results ( { } ) ;
74+
75+ // eslint-disable-next-line @typescript-eslint/no-unused-expressions
76+ r . rejected ; // $ExpectType boolean
77+
78+ // eslint-disable-next-line @typescript-eslint/no-unused-expressions
79+ r . alternative ; // $ExpectType Alternative
80+
81+ // eslint-disable-next-line @typescript-eslint/no-unused-expressions
82+ r . alpha ; // $ExpectType number
83+
84+ // eslint-disable-next-line @typescript-eslint/no-unused-expressions
85+ r . pValue ; // $ExpectType number
86+
87+ // eslint-disable-next-line @typescript-eslint/no-unused-expressions
88+ r . statistic ; // $ExpectType number
89+
90+ // eslint-disable-next-line @typescript-eslint/no-unused-expressions
91+ r . ci ; // $ExpectType Float64Array
92+
93+ // eslint-disable-next-line @typescript-eslint/no-unused-expressions
94+ r . nullValue ; // $ExpectType number
95+
96+ // eslint-disable-next-line @typescript-eslint/no-unused-expressions
97+ r . sd ; // $ExpectType number
98+
99+ // eslint-disable-next-line @typescript-eslint/no-unused-expressions
100+ r . method ; // $ExpectType string
101+ }
102+
103+ // The results object has the expected properties (float32)...
104+ {
105+ const Results = resultsFactory ( 'float32' ) ;
106+ const r = new Results ( { } ) ;
107+
108+ // eslint-disable-next-line @typescript-eslint/no-unused-expressions
109+ r . rejected ; // $ExpectType boolean
110+
111+ // eslint-disable-next-line @typescript-eslint/no-unused-expressions
112+ r . alternative ; // $ExpectType Alternative
113+
114+ // eslint-disable-next-line @typescript-eslint/no-unused-expressions
115+ r . alpha ; // $ExpectType number
116+
117+ // eslint-disable-next-line @typescript-eslint/no-unused-expressions
118+ r . pValue ; // $ExpectType number
119+
120+ // eslint-disable-next-line @typescript-eslint/no-unused-expressions
121+ r . statistic ; // $ExpectType number
122+
123+ // eslint-disable-next-line @typescript-eslint/no-unused-expressions
124+ r . ci ; // $ExpectType Float32Array
125+
126+ // eslint-disable-next-line @typescript-eslint/no-unused-expressions
127+ r . nullValue ; // $ExpectType number
128+
129+ // eslint-disable-next-line @typescript-eslint/no-unused-expressions
130+ r . sd ; // $ExpectType number
131+
132+ // eslint-disable-next-line @typescript-eslint/no-unused-expressions
133+ r . method ; // $ExpectType string
134+ }
135+
136+ // The compiler throws an error if the constructor is provided a first argument which is not an ArrayBuffer or object...
137+ {
138+ const Results = resultsFactory ( 'float64' ) ;
139+
140+ new Results ( 'abc' ) ; // $ExpectError
141+ new Results ( 123 ) ; // $ExpectError
142+ new Results ( true ) ; // $ExpectError
143+ new Results ( false ) ; // $ExpectError
144+ new Results ( null ) ; // $ExpectError
145+ new Results ( [ ] ) ; // $ExpectError
146+ new Results ( ( x : number ) : number => x ) ; // $ExpectError
147+ }
148+
149+ // The compiler throws an error if the constructor is provided a second argument which is not a number...
150+ {
151+ const Results = resultsFactory ( 'float64' ) ;
152+
153+ new Results ( new ArrayBuffer ( 80 ) , 'abc' ) ; // $ExpectError
154+ new Results ( new ArrayBuffer ( 80 ) , true ) ; // $ExpectError
155+ new Results ( new ArrayBuffer ( 80 ) , false ) ; // $ExpectError
156+ new Results ( new ArrayBuffer ( 80 ) , null ) ; // $ExpectError
157+ new Results ( new ArrayBuffer ( 80 ) , [ ] ) ; // $ExpectError
158+ new Results ( new ArrayBuffer ( 80 ) , { } ) ; // $ExpectError
159+ new Results ( new ArrayBuffer ( 80 ) , ( x : number ) : number => x ) ; // $ExpectError
160+ }
161+
162+ // The compiler throws an error if the constructor is provided a third argument which is not a number...
163+ {
164+ const Results = resultsFactory ( 'float64' ) ;
165+
166+ new Results ( new ArrayBuffer ( 80 ) , 8 , 'abc' ) ; // $ExpectError
167+ new Results ( new ArrayBuffer ( 80 ) , 8 , true ) ; // $ExpectError
168+ new Results ( new ArrayBuffer ( 80 ) , 8 , false ) ; // $ExpectError
169+ new Results ( new ArrayBuffer ( 80 ) , 8 , null ) ; // $ExpectError
170+ new Results ( new ArrayBuffer ( 80 ) , 8 , [ ] ) ; // $ExpectError
171+ new Results ( new ArrayBuffer ( 80 ) , 8 , { } ) ; // $ExpectError
172+ new Results ( new ArrayBuffer ( 80 ) , 8 , ( x : number ) : number => x ) ; // $ExpectError
173+ }
0 commit comments