Skip to content

Commit c2da07e

Browse files
committed
PIpeline - Some test cases.
1 parent ceb35ad commit c2da07e

8 files changed

+384
-0
lines changed

tests/baselines/reference/pipeline.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,13 @@ const makeAdder = (addNum: number) =>
77
(addTo: number) => addTo + addNum;
88

99
const added = 2 |> (1 |> makeAdder);
10+
11+
const zeroOrOne = () => (Math.floor(Math.random() * 2)) % 2;
12+
const ternaryFunctions = 11 |>
13+
(zeroOrOne() === 0
14+
? (x: number) => x - 1
15+
: (x: number) => x + 1
16+
);
1017

1118

1219
//// [pipeline.js]
@@ -16,3 +23,7 @@ var makeAdder = function (addNum) {
1623
return function (addTo) { return addTo + addNum; };
1724
};
1825
var added = (makeAdder(1))(2);
26+
var zeroOrOne = function () { return (Math.floor(Math.random() * 2)) % 2; };
27+
var ternaryFunctions = (zeroOrOne() === 0
28+
? function (x) { return x - 1; }
29+
: function (x) { return x + 1; })(11);

tests/baselines/reference/pipeline.symbols

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,28 @@ const added = 2 |> (1 |> makeAdder);
2222
>added : Symbol(added, Decl(pipeline.ts, 7, 5))
2323
>makeAdder : Symbol(makeAdder, Decl(pipeline.ts, 4, 5))
2424

25+
const zeroOrOne = () => (Math.floor(Math.random() * 2)) % 2;
26+
>zeroOrOne : Symbol(zeroOrOne, Decl(pipeline.ts, 9, 5))
27+
>Math.floor : Symbol(Math.floor, Decl(lib.es5.d.ts, --, --))
28+
>Math : Symbol(Math, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
29+
>floor : Symbol(Math.floor, Decl(lib.es5.d.ts, --, --))
30+
>Math.random : Symbol(Math.random, Decl(lib.es5.d.ts, --, --))
31+
>Math : Symbol(Math, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
32+
>random : Symbol(Math.random, Decl(lib.es5.d.ts, --, --))
33+
34+
const ternaryFunctions = 11 |>
35+
>ternaryFunctions : Symbol(ternaryFunctions, Decl(pipeline.ts, 10, 5))
36+
37+
(zeroOrOne() === 0
38+
>zeroOrOne : Symbol(zeroOrOne, Decl(pipeline.ts, 9, 5))
39+
40+
? (x: number) => x - 1
41+
>x : Symbol(x, Decl(pipeline.ts, 12, 5))
42+
>x : Symbol(x, Decl(pipeline.ts, 12, 5))
43+
44+
: (x: number) => x + 1
45+
>x : Symbol(x, Decl(pipeline.ts, 13, 5))
46+
>x : Symbol(x, Decl(pipeline.ts, 13, 5))
47+
48+
);
49+

tests/baselines/reference/pipeline.types

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,3 +37,49 @@ const added = 2 |> (1 |> makeAdder);
3737
>1 : 1
3838
>makeAdder : (addNum: number) => (addTo: number) => number
3939

40+
const zeroOrOne = () => (Math.floor(Math.random() * 2)) % 2;
41+
>zeroOrOne : () => number
42+
>() => (Math.floor(Math.random() * 2)) % 2 : () => number
43+
>(Math.floor(Math.random() * 2)) % 2 : number
44+
>(Math.floor(Math.random() * 2)) : number
45+
>Math.floor(Math.random() * 2) : number
46+
>Math.floor : (x: number) => number
47+
>Math : Math
48+
>floor : (x: number) => number
49+
>Math.random() * 2 : number
50+
>Math.random() : number
51+
>Math.random : () => number
52+
>Math : Math
53+
>random : () => number
54+
>2 : 2
55+
>2 : 2
56+
57+
const ternaryFunctions = 11 |>
58+
>ternaryFunctions : number
59+
>11 |> (zeroOrOne() === 0 ? (x: number) => x - 1 : (x: number) => x + 1 ) : number
60+
>11 : 11
61+
62+
(zeroOrOne() === 0
63+
>(zeroOrOne() === 0 ? (x: number) => x - 1 : (x: number) => x + 1 ) : (x: number) => number
64+
>zeroOrOne() === 0 ? (x: number) => x - 1 : (x: number) => x + 1 : (x: number) => number
65+
>zeroOrOne() === 0 : boolean
66+
>zeroOrOne() : number
67+
>zeroOrOne : () => number
68+
>0 : 0
69+
70+
? (x: number) => x - 1
71+
>(x: number) => x - 1 : (x: number) => number
72+
>x : number
73+
>x - 1 : number
74+
>x : number
75+
>1 : 1
76+
77+
: (x: number) => x + 1
78+
>(x: number) => x + 1 : (x: number) => number
79+
>x : number
80+
>x + 1 : number
81+
>x : number
82+
>1 : 1
83+
84+
);
85+
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
//// [pipelineDecoratorFunction.ts]
2+
function greets (person) {
3+
person.greet = () => `${person.name} says hi!`;
4+
return person;
5+
}
6+
function ages (age) {
7+
return function (person) {
8+
person.age = age;
9+
person.birthday = function () { person.age += 1; };
10+
return person;
11+
}
12+
}
13+
function programs (favLang) {
14+
return function (person) {
15+
person.favLang = favLang;
16+
person.program = () => `${person.name} starts to write ${person.favLang}!`;
17+
return person;
18+
}
19+
}
20+
21+
function Person (name, age) {
22+
return { name: name } |> greets |> ages(age);
23+
}
24+
function Programmer (name, age) {
25+
return { name: name }
26+
|> greets
27+
|> ages(age)
28+
|> programs('javascript');
29+
}
30+
31+
32+
//// [pipelineDecoratorFunction.js]
33+
function greets(person) {
34+
person.greet = function () { return person.name + " says hi!"; };
35+
return person;
36+
}
37+
function ages(age) {
38+
return function (person) {
39+
person.age = age;
40+
person.birthday = function () { person.age += 1; };
41+
return person;
42+
};
43+
}
44+
function programs(favLang) {
45+
return function (person) {
46+
person.favLang = favLang;
47+
person.program = function () { return person.name + " starts to write " + person.favLang + "!"; };
48+
return person;
49+
};
50+
}
51+
function Person(name, age) {
52+
return ages(age)(greets({ name: name }));
53+
}
54+
function Programmer(name, age) {
55+
return programs('javascript')(ages(age)(greets({ name: name })));
56+
}
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
=== tests/cases/conformance/pipeline/pipelineDecoratorFunction.ts ===
2+
function greets (person) {
3+
>greets : Symbol(greets, Decl(pipelineDecoratorFunction.ts, 0, 0))
4+
>person : Symbol(person, Decl(pipelineDecoratorFunction.ts, 0, 17))
5+
6+
person.greet = () => `${person.name} says hi!`;
7+
>person : Symbol(person, Decl(pipelineDecoratorFunction.ts, 0, 17))
8+
>person : Symbol(person, Decl(pipelineDecoratorFunction.ts, 0, 17))
9+
10+
return person;
11+
>person : Symbol(person, Decl(pipelineDecoratorFunction.ts, 0, 17))
12+
}
13+
function ages (age) {
14+
>ages : Symbol(ages, Decl(pipelineDecoratorFunction.ts, 3, 1))
15+
>age : Symbol(age, Decl(pipelineDecoratorFunction.ts, 4, 15))
16+
17+
return function (person) {
18+
>person : Symbol(person, Decl(pipelineDecoratorFunction.ts, 5, 18))
19+
20+
person.age = age;
21+
>person : Symbol(person, Decl(pipelineDecoratorFunction.ts, 5, 18))
22+
>age : Symbol(age, Decl(pipelineDecoratorFunction.ts, 4, 15))
23+
24+
person.birthday = function () { person.age += 1; };
25+
>person : Symbol(person, Decl(pipelineDecoratorFunction.ts, 5, 18))
26+
>person : Symbol(person, Decl(pipelineDecoratorFunction.ts, 5, 18))
27+
28+
return person;
29+
>person : Symbol(person, Decl(pipelineDecoratorFunction.ts, 5, 18))
30+
}
31+
}
32+
function programs (favLang) {
33+
>programs : Symbol(programs, Decl(pipelineDecoratorFunction.ts, 10, 1))
34+
>favLang : Symbol(favLang, Decl(pipelineDecoratorFunction.ts, 11, 19))
35+
36+
return function (person) {
37+
>person : Symbol(person, Decl(pipelineDecoratorFunction.ts, 12, 18))
38+
39+
person.favLang = favLang;
40+
>person : Symbol(person, Decl(pipelineDecoratorFunction.ts, 12, 18))
41+
>favLang : Symbol(favLang, Decl(pipelineDecoratorFunction.ts, 11, 19))
42+
43+
person.program = () => `${person.name} starts to write ${person.favLang}!`;
44+
>person : Symbol(person, Decl(pipelineDecoratorFunction.ts, 12, 18))
45+
>person : Symbol(person, Decl(pipelineDecoratorFunction.ts, 12, 18))
46+
>person : Symbol(person, Decl(pipelineDecoratorFunction.ts, 12, 18))
47+
48+
return person;
49+
>person : Symbol(person, Decl(pipelineDecoratorFunction.ts, 12, 18))
50+
}
51+
}
52+
53+
function Person (name, age) {
54+
>Person : Symbol(Person, Decl(pipelineDecoratorFunction.ts, 17, 1))
55+
>name : Symbol(name, Decl(pipelineDecoratorFunction.ts, 19, 17))
56+
>age : Symbol(age, Decl(pipelineDecoratorFunction.ts, 19, 22))
57+
58+
return { name: name } |> greets |> ages(age);
59+
>name : Symbol(name, Decl(pipelineDecoratorFunction.ts, 20, 9))
60+
>name : Symbol(name, Decl(pipelineDecoratorFunction.ts, 19, 17))
61+
>greets : Symbol(greets, Decl(pipelineDecoratorFunction.ts, 0, 0))
62+
>ages : Symbol(ages, Decl(pipelineDecoratorFunction.ts, 3, 1))
63+
>age : Symbol(age, Decl(pipelineDecoratorFunction.ts, 19, 22))
64+
}
65+
function Programmer (name, age) {
66+
>Programmer : Symbol(Programmer, Decl(pipelineDecoratorFunction.ts, 21, 1))
67+
>name : Symbol(name, Decl(pipelineDecoratorFunction.ts, 22, 21))
68+
>age : Symbol(age, Decl(pipelineDecoratorFunction.ts, 22, 26))
69+
70+
return { name: name }
71+
>name : Symbol(name, Decl(pipelineDecoratorFunction.ts, 23, 9))
72+
>name : Symbol(name, Decl(pipelineDecoratorFunction.ts, 22, 21))
73+
74+
|> greets
75+
>greets : Symbol(greets, Decl(pipelineDecoratorFunction.ts, 0, 0))
76+
77+
|> ages(age)
78+
>ages : Symbol(ages, Decl(pipelineDecoratorFunction.ts, 3, 1))
79+
>age : Symbol(age, Decl(pipelineDecoratorFunction.ts, 22, 26))
80+
81+
|> programs('javascript');
82+
>programs : Symbol(programs, Decl(pipelineDecoratorFunction.ts, 10, 1))
83+
}
84+
Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
=== tests/cases/conformance/pipeline/pipelineDecoratorFunction.ts ===
2+
function greets (person) {
3+
>greets : (person: any) => any
4+
>person : any
5+
6+
person.greet = () => `${person.name} says hi!`;
7+
>person.greet = () => `${person.name} says hi!` : () => string
8+
>person.greet : any
9+
>person : any
10+
>greet : any
11+
>() => `${person.name} says hi!` : () => string
12+
>`${person.name} says hi!` : string
13+
>person.name : any
14+
>person : any
15+
>name : any
16+
17+
return person;
18+
>person : any
19+
}
20+
function ages (age) {
21+
>ages : (age: any) => (person: any) => any
22+
>age : any
23+
24+
return function (person) {
25+
>function (person) { person.age = age; person.birthday = function () { person.age += 1; }; return person; } : (person: any) => any
26+
>person : any
27+
28+
person.age = age;
29+
>person.age = age : any
30+
>person.age : any
31+
>person : any
32+
>age : any
33+
>age : any
34+
35+
person.birthday = function () { person.age += 1; };
36+
>person.birthday = function () { person.age += 1; } : () => void
37+
>person.birthday : any
38+
>person : any
39+
>birthday : any
40+
>function () { person.age += 1; } : () => void
41+
>person.age += 1 : any
42+
>person.age : any
43+
>person : any
44+
>age : any
45+
>1 : 1
46+
47+
return person;
48+
>person : any
49+
}
50+
}
51+
function programs (favLang) {
52+
>programs : (favLang: any) => (person: any) => any
53+
>favLang : any
54+
55+
return function (person) {
56+
>function (person) { person.favLang = favLang; person.program = () => `${person.name} starts to write ${person.favLang}!`; return person; } : (person: any) => any
57+
>person : any
58+
59+
person.favLang = favLang;
60+
>person.favLang = favLang : any
61+
>person.favLang : any
62+
>person : any
63+
>favLang : any
64+
>favLang : any
65+
66+
person.program = () => `${person.name} starts to write ${person.favLang}!`;
67+
>person.program = () => `${person.name} starts to write ${person.favLang}!` : () => string
68+
>person.program : any
69+
>person : any
70+
>program : any
71+
>() => `${person.name} starts to write ${person.favLang}!` : () => string
72+
>`${person.name} starts to write ${person.favLang}!` : string
73+
>person.name : any
74+
>person : any
75+
>name : any
76+
>person.favLang : any
77+
>person : any
78+
>favLang : any
79+
80+
return person;
81+
>person : any
82+
}
83+
}
84+
85+
function Person (name, age) {
86+
>Person : (name: any, age: any) => any
87+
>name : any
88+
>age : any
89+
90+
return { name: name } |> greets |> ages(age);
91+
>{ name: name } |> greets |> ages(age) : any
92+
>{ name: name } |> greets : any
93+
>{ name: name } : { name: any; }
94+
>name : any
95+
>name : any
96+
>greets : (person: any) => any
97+
>ages(age) : (person: any) => any
98+
>ages : (age: any) => (person: any) => any
99+
>age : any
100+
}
101+
function Programmer (name, age) {
102+
>Programmer : (name: any, age: any) => any
103+
>name : any
104+
>age : any
105+
106+
return { name: name }
107+
>{ name: name } |> greets |> ages(age) |> programs('javascript') : any
108+
>{ name: name } |> greets |> ages(age) : any
109+
>{ name: name } |> greets : any
110+
>{ name: name } : { name: any; }
111+
>name : any
112+
>name : any
113+
114+
|> greets
115+
>greets : (person: any) => any
116+
117+
|> ages(age)
118+
>ages(age) : (person: any) => any
119+
>ages : (age: any) => (person: any) => any
120+
>age : any
121+
122+
|> programs('javascript');
123+
>programs('javascript') : (person: any) => any
124+
>programs : (favLang: any) => (person: any) => any
125+
>'javascript' : "javascript"
126+
}
127+

tests/cases/conformance/pipeline/pipeline.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,10 @@ const makeAdder = (addNum: number) =>
66
(addTo: number) => addTo + addNum;
77

88
const added = 2 |> (1 |> makeAdder);
9+
10+
const zeroOrOne = () => (Math.floor(Math.random() * 2)) % 2;
11+
const ternaryFunctions = 11 |>
12+
(zeroOrOne() === 0
13+
? (x: number) => x - 1
14+
: (x: number) => x + 1
15+
);

0 commit comments

Comments
 (0)