11using System ;
22using System . Linq ;
33using Xunit ;
4- namespace CSharpMath {
5- public partial class EvaluationTests {
6- public class PredictTests {
7- [ Theory ]
8- [ InlineData ( 1 , 1 , 1 ) ]
9- [ InlineData ( 2 , 2 , 2 ) ]
10- [ InlineData ( 1 , 2 , 3 , 4 ) ]
11- [ InlineData ( 3 , 4 , 5 , 6 ) ]
12- [ InlineData ( 1 , 2 , 3 , 4 , 5 ) ]
13- [ InlineData ( 3 , 4 , 5 , 6 , 7 ) ]
14- [ InlineData ( 1 , 3 , 5 , 7 ) ]
15- [ InlineData ( 8 , 10 , 12 , 14 ) ]
16- [ InlineData ( 1 , 3 , 5 , 7 , 9 ) ]
17- [ InlineData ( 8 , 10 , 12 , 14 , 16 ) ]
18- [ InlineData ( 1 , 4 , 7 , 10 ) ]
19- [ InlineData ( 1 , 4 , 7 , 10 , 13 ) ]
20- [ InlineData ( 24 , 31 , 38 , 45 ) ]
21- [ InlineData ( 24 , 31 , 38 , 45 , 52 ) ]
22- [ InlineData ( 17 , 21 , 25 , 29 ) ]
23- [ InlineData ( 17 , 21 , 25 , 29 , 33 ) ]
24- [ InlineData ( 1 , 1 , 1 , 1 ) ]
25- [ InlineData ( 1 , 1 , 1 , 1 , 1 ) ]
26- [ InlineData ( 1 , 3 , 1 , 3 , 1 ) ]
27- [ InlineData ( 1 , 3 , 1 , 3 , 1 , 3 ) ]
28- [ InlineData ( 1 , 2 , 4 , 8 ) ]
29- [ InlineData ( 1 , 2 , 4 , 8 , 16 ) ]
30- [ InlineData ( 1 , 3 , 9 , 27 ) ]
31- [ InlineData ( 1 , 3 , 9 , 27 , 81 ) ]
32- [ InlineData ( 1 , - 2 , 4 , - 8 ) ]
33- [ InlineData ( - 1 , 2 , - 4 , 8 ) ]
34- [ InlineData ( 30 , 31 , 40 , 41 , 50 , 51 ) ]
35- [ InlineData ( 61 , 62 , 63 , 71 , 72 , 73 , 81 , 82 ) ]
36- [ InlineData ( 2 , 4 , 8 , 24 , 48 , 96 , 288 , 576 , 1152 ) ]
37- [ InlineData ( 0 , 0 , 0 , 1 , 0 , 0 , 0 , 1 , 0 ) ]
38- [ InlineData ( 39 , 34 , 27 , 22 , 15 , 10 ) ]
39- [ InlineData ( 39 , 34 , 27 , 22 , 15 , 10 , 3 ) ]
40- [ InlineData ( 31 , 30 , 22 , 21 , 13 , 12 ) ]
41- [ InlineData ( 31 , 30 , 22 , 21 , 13 , 12 , 4 ) ]
42- // Use int instead of double because https://github.com/xunit/xunit/issues/1670#issuecomment-373566797
43- public void Integer ( params int [ ] input ) {
44- static void Test ( System . Collections . Generic . IEnumerable < int > seq ) =>
45- Assert . Equal ( seq . Last ( ) , Assert . IsType < double > ( Evaluation . Predict ( seq . Select ( x => ( double ) x ) . SkipLast ( 1 ) . ToArray ( ) ) ) , 12 ) ;
46- Test ( input ) ;
47- Test ( input . Reverse ( ) ) ;
48- }
49- [ Theory ]
50- [ InlineData ( new int [ 0 ] ) ]
51- [ InlineData ( 1 ) ]
52- [ InlineData ( 1 , 2 ) ]
53- [ InlineData ( 2 , 1 ) ]
54- [ InlineData ( 1 , 2 , 1 ) ]
55- [ InlineData ( 1 , 2 , 1 , 3 ) ]
56- [ InlineData ( 39 , 34 , 27 , 22 ) ]
57- [ InlineData ( 31 , 30 , 22 , 21 ) ]
58- public void IntegerFail ( params int [ ] input ) =>
59- Assert . Null ( Evaluation . Predict ( input . Select ( x => ( double ) x ) . ToArray ( ) ) ) ;
4+ namespace CSharpMath . EvaluationTests {
5+ public class PredictTests {
6+ [ Theory ]
7+ [ InlineData ( 1 , 1 , 1 ) ]
8+ [ InlineData ( 2 , 2 , 2 ) ]
9+ [ InlineData ( 1 , 2 , 3 , 4 ) ]
10+ [ InlineData ( 3 , 4 , 5 , 6 ) ]
11+ [ InlineData ( 1 , 2 , 3 , 4 , 5 ) ]
12+ [ InlineData ( 3 , 4 , 5 , 6 , 7 ) ]
13+ [ InlineData ( 1 , 3 , 5 , 7 ) ]
14+ [ InlineData ( 8 , 10 , 12 , 14 ) ]
15+ [ InlineData ( 1 , 3 , 5 , 7 , 9 ) ]
16+ [ InlineData ( 8 , 10 , 12 , 14 , 16 ) ]
17+ [ InlineData ( 1 , 4 , 7 , 10 ) ]
18+ [ InlineData ( 1 , 4 , 7 , 10 , 13 ) ]
19+ [ InlineData ( 24 , 31 , 38 , 45 ) ]
20+ [ InlineData ( 24 , 31 , 38 , 45 , 52 ) ]
21+ [ InlineData ( 17 , 21 , 25 , 29 ) ]
22+ [ InlineData ( 17 , 21 , 25 , 29 , 33 ) ]
23+ [ InlineData ( 1 , 1 , 1 , 1 ) ]
24+ [ InlineData ( 1 , 1 , 1 , 1 , 1 ) ]
25+ [ InlineData ( 1 , 3 , 1 , 3 , 1 ) ]
26+ [ InlineData ( 1 , 3 , 1 , 3 , 1 , 3 ) ]
27+ [ InlineData ( 1 , 2 , 4 , 8 ) ]
28+ [ InlineData ( 1 , 2 , 4 , 8 , 16 ) ]
29+ [ InlineData ( 1 , 3 , 9 , 27 ) ]
30+ [ InlineData ( 1 , 3 , 9 , 27 , 81 ) ]
31+ [ InlineData ( 1 , - 2 , 4 , - 8 ) ]
32+ [ InlineData ( - 1 , 2 , - 4 , 8 ) ]
33+ [ InlineData ( 30 , 31 , 40 , 41 , 50 , 51 ) ]
34+ [ InlineData ( 61 , 62 , 63 , 71 , 72 , 73 , 81 , 82 ) ]
35+ [ InlineData ( 2 , 4 , 8 , 24 , 48 , 96 , 288 , 576 , 1152 ) ]
36+ [ InlineData ( 0 , 0 , 0 , 1 , 0 , 0 , 0 , 1 , 0 ) ]
37+ [ InlineData ( 39 , 34 , 27 , 22 , 15 , 10 ) ]
38+ [ InlineData ( 39 , 34 , 27 , 22 , 15 , 10 , 3 ) ]
39+ [ InlineData ( 31 , 30 , 22 , 21 , 13 , 12 ) ]
40+ [ InlineData ( 31 , 30 , 22 , 21 , 13 , 12 , 4 ) ]
41+ // Use int instead of double because https://github.com/xunit/xunit/issues/1670#issuecomment-373566797
42+ public void Integer ( params int [ ] input ) {
43+ static void Test ( System . Collections . Generic . IEnumerable < int > seq ) =>
44+ Assert . Equal ( seq . Last ( ) , Assert . IsType < double > ( Evaluation . Predict ( seq . Select ( x => ( double ) x ) . SkipLast ( 1 ) . ToArray ( ) ) ) , 12 ) ;
45+ Test ( input ) ;
46+ Test ( input . Reverse ( ) ) ;
6047 }
48+ [ Theory ]
49+ [ InlineData ( new int [ 0 ] ) ]
50+ [ InlineData ( 1 ) ]
51+ [ InlineData ( 1 , 2 ) ]
52+ [ InlineData ( 2 , 1 ) ]
53+ [ InlineData ( 1 , 2 , 1 ) ]
54+ [ InlineData ( 1 , 2 , 1 , 3 ) ]
55+ [ InlineData ( 39 , 34 , 27 , 22 ) ]
56+ [ InlineData ( 31 , 30 , 22 , 21 ) ]
57+ public void IntegerFail ( params int [ ] input ) =>
58+ Assert . Null ( Evaluation . Predict ( input . Select ( x => ( double ) x ) . ToArray ( ) ) ) ;
6159 }
6260}
0 commit comments