# regression tests for the join utilitiy
TEST 01 'one field'
EXEC f1 f1
INPUT f1 $'100214179\n101425403\n1023323808'
INPUT f2 $'100214179 aaa\n101425403 bbb\n1023323808 ccc'
OUTPUT - $'100214179\n101425403\n1023323808'
EXEC f1 f2
OUTPUT - $'100214179 aaa\n101425403 bbb\n1023323808 ccc'
EXEC f2 f1
OUTPUT - $'100214179 aaa\n101425403 bbb\n1023323808 ccc'
EXEC f2 f2
OUTPUT - $'100214179 aaa aaa\n101425403 bbb bbb\n1023323808 ccc ccc'
TEST 02 'two fields'
EXEC f1 f2
INPUT f1 $'a b\na c\na d\nb x\nc y\nd z'
INPUT f2 $'a i\nb j\nc k\nd l'
OUTPUT - $'a b i\na c i\na d i\nb x j\nc y k\nd z l'
TEST 03 'field exercises'
EXEC -t'|' -e NAV -1 2 -2 2 -o 1.1 1.2 2.1 f1 f2
INPUT f1 $'205|AL\n501|AR\n602|AZ\n209|CA\n213|CA\n310|CA\n408|CA\n415|CA\n510|CA\n619|CA'
INPUT f2 $'4|AL\n5|AR\n7|AZ\n1|CA\n7|CO\n3|CT\n6|DC\n6|DE\n4|FL\n4|GA'
OUTPUT - $'205|AL|4\n501|AR|5\n602|AZ|7\n209|CA|1\n213|CA|1\n310|CA|1\n408|CA|1\n415|CA|1\n510|CA|1\n619|CA|1'
EXEC -t'|' -e NAV -j 2 -o 1.1 1.2 2.1 f1 f2
EXEC -t'|' -e NAV -j1 2 -j2 2 -o 1.1 1.2 2.1 f1 f2
EXEC -t'|' -e NAV -1 2 -2 2 -o 1.1 1.2 2.1 f1 f2
EXEC -t'|' -a1 -e NAV -1 2 -2 2 -o 1.1 1.2 2.1 f1 f2
OUTPUT - $'205|AL|4\n501|AR|5\n602|AZ|7\n209|CA|1\n213|CA|1\n310|CA|1\n408|CA|1\n415|CA|1\n510|CA|1\n619|CA|1'
EXEC -t'|' -a1 -e NAV -j 2 -o 1.1 1.2 2.1 f1 f2
EXEC -t'|' -v1 -e NAV -1 2 -2 2 -o 1.1 1.2 2.1 f1 f2
OUTPUT -
EXEC -t'|' -v1 -e NAV -j 2 -o 1.1 1.2 2.1 f1 f2
EXEC -t'|' -a1 -e NAV -1 2 -2 2 -o 1.1 1.2 2.1 f1 f2
INPUT f1 $'205|AL\n501|AR\n602|AZ\n209|CA\n213|CA\n310|CA\n408|CA\n415|CA\n510|CA\n619|CA\n908|NJ'
OUTPUT - $'205|AL|4\n501|AR|5\n602|AZ|7\n209|CA|1\n213|CA|1\n310|CA|1\n408|CA|1\n415|CA|1\n510|CA|1\n619|CA|1\n908|NJ|NAV'
EXEC -t'|' -a1 -e NAV -j 2 -o 1.1 1.2 2.1 f1 f2
EXEC -t'|' -v1 -e NAV -1 2 -2 2 -o 1.1 1.2 2.1 f1 f2
OUTPUT - $'908|NJ|NAV'
EXEC -t'|' -v1 -e NAV -j 2 -o 1.1 1.2 2.1 f1 f2
EXEC -t '|' -1 2 -2 2 f1 f2
INPUT f1 $'1||4\n2|x|5\n3|y|6'
INPUT f2 $'a||d\nb|x|e\nc|y|f'
OUTPUT - $'|1|4|a|d\nx|2|5|b|e\ny|3|6|c|f'
EXEC -t '|' -1 2 -2 2 f1 f2
INPUT f1 $'1|w|4\n2|x|5\n3|y|6'
INPUT f2 $'a|w|d\nb|x|e\nc|y|f'
OUTPUT - $'w|1|4|a|d\nx|2|5|b|e\ny|3|6|c|f'
TEST 04 'phoney stuff'
EXEC -t: -e 9999999 -j 1 -o 1.1 2.1 1.5 2.5 f1 f2
INPUT f1 $'201:1087959:317956:214759:1620674\n202:198698:113245:55505:367448\n203:370611:391058:73131:834800\n205:825456:253691:53214:1132361\n206:804098:425758:109197:1339053\n207:475252:127876:29837:632965\n208:304855:172322:31832:509009\n209:706486:233530:44440:984456\n210:732423:272243:87315:1091981\n212:614509:313916:134331:1062756'
INPUT f2 $'201:1101647:330947:212248:1644842\n202:202179:116338:55635:374152\n203:369618:392862:74562:837042\n205:832559:251988:55911:1140458\n206:810752:428137:111784:1350673\n207:478707:126589:30118:635414\n208:307105:173927:31891:512923\n209:708069:230231:45308:983608\n210:734879:270042:97955:1102876\n212:616079:315262:135458:1066799'
OUTPUT - $'201:201:1620674:1644842\n202:202:367448:374152\n203:203:834800:837042\n205:205:1132361:1140458\n206:206:1339053:1350673\n207:207:632965:635414\n208:208:509009:512923\n209:209:984456:983608\n210:210:1091981:1102876\n212:212:1062756:1066799'
EXEC -t: -a2 -e 9999999 -j 1 -o 1.1 2.1 1.5 2.5 f1 f2
OUTPUT - $'201:201:1620674:1644842\n202:202:367448:374152\n203:203:834800:837042\n205:205:1132361:1140458\n206:206:1339053:1350673\n207:207:632965:635414\n208:208:509009:512923\n209:209:984456:983608\n210:210:1091981:1102876\n212:212:1062756:1066799'
EXEC -t: -a2 -e 9999999 -j 1 -o 1.1 2.1 1.5 2.5 f1 f2
INPUT f2 $'201:1101647:330947:212248:1644842\n202:202179:116338:55635:374152\n203:369618:392862:74562:837042\n205:832559:251988:55911:1140458\n206:810752:428137:111784:1350673\n207:478707:126589:30118:635414\n208:307105:173927:31891:512923\n209:708069:230231:45308:983608\n210:734879:270042:97955:1102876\n212:616079:315262:135458:1066799\n908:614509:313916:134331:1062756'
OUTPUT - $'201:201:1620674:1644842\n202:202:367448:374152\n203:203:834800:837042\n205:205:1132361:1140458\n206:206:1339053:1350673\n207:207:632965:635414\n208:208:509009:512923\n209:209:984456:983608\n210:210:1091981:1102876\n212:212:1062756:1066799\n9999999:908:9999999:1062756'
EXEC -t: -a1 -e 9999999 -j 1 -o 1.1 2.1 1.5 2.5 f1 f2
OUTPUT - $'201:201:1620674:1644842\n202:202:367448:374152\n203:203:834800:837042\n205:205:1132361:1140458\n206:206:1339053:1350673\n207:207:632965:635414\n208:208:509009:512923\n209:209:984456:983608\n210:210:1091981:1102876\n212:212:1062756:1066799'
EXEC -a1 -j 1 -t"|" f1 f2
INPUT f1 $'2012000008|940214|Y|950814||||F|||32|12|638|941|KO|P\n2012000013|941201|Y|941128||R||O||N|41|12|137|9|RT|C\n2012000036|970528|Y|970616||||O|||10|10|220|148|CH|A\n2012000038|940914|Y|940912|||||||43|12|0|10|CN|N\n2012000050|940721|Y|960326||R||||N|25|12|975|116|MX|M\n2012000055|910520|Y|970627||O|||||10|10|880|432|JP|P\n2012000066|940302|Y|940225|||||||50|12|222|54|BA|C\n2012000068|940413|Y|940409|||||||48|12|0|37|AG|A\n2012000077|940330|Y|970829|||||||8|8|125|57|GY|A\n2012000079|941009|Y|951129||O||O|||29|12|1553|1753|EG|E'
INPUT f2 $'2012000008|970619|17CPE\n2012000079|970121|17CPE\n2012000079|980227|17CPR\n2012000079|980320|OCVO4\n2012000100|951117|17CPE\n2012000153|970801|OCVO4\n2012000208|980117|17CPE\n2012000208|980118|17CPR\n2012000291|970606|17CPE\n2012000342|971114|17CPE'
OUTPUT - $'2012000008|940214|Y|950814||||F|||32|12|638|941|KO|P|970619|17CPE\n2012000013|941201|Y|941128||R||O||N|41|12|137|9|RT|C\n2012000036|970528|Y|970616||||O|||10|10|220|148|CH|A\n2012000038|940914|Y|940912|||||||43|12|0|10|CN|N\n2012000050|940721|Y|960326||R||||N|25|12|975|116|MX|M\n2012000055|910520|Y|970627||O|||||10|10|880|432|JP|P\n2012000066|940302|Y|940225|||||||50|12|222|54|BA|C\n2012000068|940413|Y|940409|||||||48|12|0|37|AG|A\n2012000077|940330|Y|970829|||||||8|8|125|57|GY|A\n2012000079|941009|Y|951129||O||O|||29|12|1553|1753|EG|E|970121|17CPE\n2012000079|941009|Y|951129||O||O|||29|12|1553|1753|EG|E|980227|17CPR\n2012000079|941009|Y|951129||O||O|||29|12|1553|1753|EG|E|980320|OCVO4'
TEST 05 'dup join field in f1'
EXEC -t: -e 9999999 -j 1 -o 1.1 2.1 1.5 2.5 f1 f2
INPUT f1 $'201:1087959:317956:214759:1620674\n201:198698:113245:55505:2367448\n202:198698:113245:55505:367448\n203:370611:391058:73131:834800\n205:825456:253691:53214:1132361\n206:804098:425758:109197:1339053\n207:475252:127876:29837:632965\n208:304855:172322:31832:509009\n209:706486:233530:44440:984456\n210:732423:272243:87315:1091981\n212:614509:313916:134331:1062756'
INPUT f2 $'201:1101647:330947:212248:1644842\n202:202179:116338:55635:374152\n203:369618:392862:74562:837042\n205:832559:251988:55911:1140458\n206:810752:428137:111784:1350673\n207:478707:126589:30118:635414\n208:307105:173927:31891:512923\n209:708069:230231:45308:983608\n210:734879:270042:97955:1102876\n212:616079:315262:135458:1066799'
OUTPUT - $'201:201:1620674:1644842\n201:201:2367448:1644842\n202:202:367448:374152\n203:203:834800:837042\n205:205:1132361:1140458\n206:206:1339053:1350673\n207:207:632965:635414\n208:208:509009:512923\n209:209:984456:983608\n210:210:1091981:1102876\n212:212:1062756:1066799'
EXEC -t: -a2 -e 9999999 -j 1 -o 1.1 2.1 1.5 2.5 f1 f2
OUTPUT - $'201:201:1620674:1644842\n201:201:2367448:1644842\n202:202:367448:374152\n203:203:834800:837042\n205:205:1132361:1140458\n206:206:1339053:1350673\n207:207:632965:635414\n208:208:509009:512923\n209:209:984456:983608\n210:210:1091981:1102876\n212:212:1062756:1066799'
EXEC -t: -a2 -e 9999999 -j 1 -o 1.1 2.1 1.5 2.5 f1 f2
INPUT f2 $'201:1101647:330947:212248:1644842\n202:202179:116338:55635:374152\n203:369618:392862:74562:837042\n205:832559:251988:55911:1140458\n206:810752:428137:111784:1350673\n207:478707:126589:30118:635414\n208:307105:173927:31891:512923\n209:708069:230231:45308:983608\n210:734879:270042:97955:1102876\n212:616079:315262:135458:1066799\n908:614509:313916:134331:1062756'
OUTPUT - $'201:201:1620674:1644842\n201:201:2367448:1644842\n202:202:367448:374152\n203:203:834800:837042\n205:205:1132361:1140458\n206:206:1339053:1350673\n207:207:632965:635414\n208:208:509009:512923\n209:209:984456:983608\n210:210:1091981:1102876\n212:212:1062756:1066799\n9999999:908:9999999:1062756'
EXEC -t: -a1 -e 9999999 -j 1 -o 1.1 2.1 1.5 2.5 f1 f2
OUTPUT - $'201:201:1620674:1644842\n201:201:2367448:1644842\n202:202:367448:374152\n203:203:834800:837042\n205:205:1132361:1140458\n206:206:1339053:1350673\n207:207:632965:635414\n208:208:509009:512923\n209:209:984456:983608\n210:210:1091981:1102876\n212:212:1062756:1066799'
TEST 06 'dup join field in f2'
EXEC -t: -e 9999999 -j 1 -o 1.1 2.1 1.5 2.5 f1 f2
INPUT f1 $'201:1087959:317956:214759:1620674\n202:198698:113245:55505:367448\n203:370611:391058:73131:834800\n205:825456:253691:53214:1132361\n206:804098:425758:109197:1339053\n207:475252:127876:29837:632965\n208:304855:172322:31832:509009\n209:706486:233530:44440:984456\n210:732423:272243:87315:1091981\n212:614509:313916:134331:1062756'
INPUT f2 $'201:1101647:330947:212248:1644842\n201:1478707:126589:30118:635414\n202:202179:116338:55635:374152\n203:369618:392862:74562:837042\n205:832559:251988:55911:1140458\n206:810752:428137:111784:1350673\n207:478707:126589:30118:635414\n208:307105:173927:31891:512923\n209:708069:230231:45308:983608\n210:734879:270042:97955:1102876\n212:616079:315262:135458:1066799'
OUTPUT - $'201:201:1620674:1644842\n201:201:1620674:635414\n202:202:367448:374152\n203:203:834800:837042\n205:205:1132361:1140458\n206:206:1339053:1350673\n207:207:632965:635414\n208:208:509009:512923\n209:209:984456:983608\n210:210:1091981:1102876\n212:212:1062756:1066799'
EXEC -t: -a2 -e 9999999 -j 1 -o 1.1 2.1 1.5 2.5 f1 f2
OUTPUT - $'201:201:1620674:1644842\n201:201:1620674:635414\n202:202:367448:374152\n203:203:834800:837042\n205:205:1132361:1140458\n206:206:1339053:1350673\n207:207:632965:635414\n208:208:509009:512923\n209:209:984456:983608\n210:210:1091981:1102876\n212:212:1062756:1066799'
EXEC -t: -a2 -e 9999999 -j 1 -o 1.1 2.1 1.5 2.5 f1 f2
INPUT f2 $'201:1101647:330947:212248:1644842\n201:1478707:126589:30118:635414\n202:202179:116338:55635:374152\n203:369618:392862:74562:837042\n205:832559:251988:55911:1140458\n206:810752:428137:111784:1350673\n207:478707:126589:30118:635414\n208:307105:173927:31891:512923\n209:708069:230231:45308:983608\n210:734879:270042:97955:1102876\n212:616079:315262:135458:1066799\n908:614509:313916:134331:1062756'
OUTPUT - $'201:201:1620674:1644842\n201:201:1620674:635414\n202:202:367448:374152\n203:203:834800:837042\n205:205:1132361:1140458\n206:206:1339053:1350673\n207:207:632965:635414\n208:208:509009:512923\n209:209:984456:983608\n210:210:1091981:1102876\n212:212:1062756:1066799\n9999999:908:9999999:1062756'
EXEC -t: -a1 -e 9999999 -j 1 -o 1.1 2.1 1.5 2.5 f1 f2
OUTPUT - $'201:201:1620674:1644842\n201:201:1620674:635414\n202:202:367448:374152\n203:203:834800:837042\n205:205:1132361:1140458\n206:206:1339053:1350673\n207:207:632965:635414\n208:208:509009:512923\n209:209:984456:983608\n210:210:1091981:1102876\n212:212:1062756:1066799'
TEST 07 'common fields'
EXEC -a 1 -a 2 -e fff f1 f2
INPUT f1 $'000 1\n111 1\n222 1\n333 1'
INPUT f2 $'000 1\n222 1\n333 1\n444 1'
OUTPUT - $'000 1 1\n111 1\n222 1 1\n333 1 1\n444 1'
EXEC -a 1 -a 2 -e fff f2 f1
OUTPUT - $'000 1 1\n111 1\n222 1 1\n333 1 1\n444 1'
EXEC -a 1 -a 2 -e fff f1 f2
INPUT f1 $'111 1\n222 1\n333 1'
INPUT f2 $'222 1\n333 1\n444 1'
OUTPUT - $'111 1\n222 1 1\n333 1 1\n444 1'
EXEC -a 1 -a 2 f1 f2
EXEC -a 1 f1 f2
OUTPUT - $'111 1\n222 1 1\n333 1 1'
EXEC f1 f2
OUTPUT - $'222 1 1\n333 1 1'
EXEC -a 1 -a 2 -e fff f2 f1
OUTPUT - $'111 1\n222 1 1\n333 1 1\n444 1'
EXEC -a 1 -a 2 f2 f1
EXEC -a 2 f2 f1
OUTPUT - $'111 1\n222 1 1\n333 1 1'
EXEC -a 1 f2 f1
OUTPUT - $'222 1 1\n333 1 1\n444 1'
EXEC f2 f1
OUTPUT - $'222 1 1\n333 1 1'
EXEC -a 1 -a 2 -e fff f1 f2
INPUT f1 $'111 a\n222 b\n333 c'
INPUT f2 $'222 B\n333 C\n444 D'
OUTPUT - $'111 a\n222 b B\n333 c C\n444 D'
EXEC -a 1 -a 2 -e fff f1 f2
OUTPUT - $'111 a\n222 b B\n333 c C\n444 D'
TEST 08 'no common fields'
EXEC -v 1 -v 2 -e fff f1 f2
INPUT f1 $'000 1\n111 1\n222 1\n333 1'
INPUT f2 $'000 1\n222 1\n333 1\n444 1'
OUTPUT - $'111 1\n444 1'
EXEC -v 1 -v 2 -e fff f2 f1
EXEC -v 1 -v 2 -e fff f1 f2
INPUT f1 $'111 1\n222 1\n333 1'
INPUT f2 $'222 1\n333 1\n444 1'
EXEC -v 1 -v 2 f1 f2
EXEC -v 1 f1 f2
OUTPUT - $'111 1'
EXEC f1 f2
OUTPUT - $'222 1 1\n333 1 1'
EXEC -v 1 -v 2 -e fff f2 f1
OUTPUT - $'111 1\n444 1'
EXEC -v 1 -v 2 f2 f1
EXEC -v 2 f2 f1
OUTPUT - $'111 1'
EXEC -v 1 f2 f1
OUTPUT - $'444 1'
EXEC f2 f1
OUTPUT - $'222 1 1\n333 1 1'
EXEC -v 1 -v 2 -e fff f1 f2
INPUT f1 $'111 a\n222 b\n333 c'
INPUT f2 $'222 B\n333 C\n444 D'
OUTPUT - $'111 a\n444 D'
EXEC -v 1 -v 2 -e fff f1 f2
EXEC -t: -v 2 -1 1 -2 1 f1 f2
INPUT f1 $'AAAA:BBBB:1:2:CCCC:DDDD'
INPUT f2 $'AAAA:BBBB:CCCC:DDDD:bbbb\nAAAA:BBBB:CCCC:DDDD:cccc'
OUTPUT -
EXEC -t: -11 -21 f1 f2
INPUT f1 $'A\nB\nC'
INPUT f2 $'A:F2KEYA\nB:F2KEYB\nC:F2KEYC'
SAME OUTPUT f2
EXEC -t: -11 -21 f1 f2
INPUT f1 $'A\nC\nZ'
OUTPUT - $'A:F2KEYA\nC:F2KEYC'
EXEC -v1 -t: -11 -21 f1 f2
OUTPUT - $'Z'
EXEC -v2 -t: -11 -21 f1 f2
OUTPUT - $'B:F2KEYB'
EXEC -v1 -v2 -t: -11 -21 f1 f2
OUTPUT - $'B:F2KEYB\nZ'
TEST 09 'boundary conditions'
EXEC -1 2 -2 1 -o 1.1,2.2 f1 f2
INPUT f1 $'903672 486\n806565 536\n806754 536\n806988 536\n915043 540\n915220 540\n915966 961\n915985 961'
INPUT f2 $'540 3000\n542 4000\n664 5000\n961 6000'
OUTPUT - $'915043 3000\n915220 3000\n915966 6000\n915985 6000'
EXEC -a1 -1 2 -2 1 -o 1.1,2.2 f1 f2
OUTPUT - $'903672 \n806565 \n806754 \n806988 \n915043 3000\n915220 3000\n915966 6000\n915985 6000'
EXEC -a2 -1 2 -2 1 -o 1.1,2.2 f1 f2
OUTPUT - $'915043 3000\n915220 3000\n 4000\n 5000\n915966 6000\n915985 6000'
EXEC -a1 -a2 -1 2 -2 1 -o 1.1,2.2 f1 f2
OUTPUT - $'903672 \n806565 \n806754 \n806988 \n915043 3000\n915220 3000\n 4000\n 5000\n915966 6000\n915985 6000'
EXEC -v1 -1 2 -2 1 -o 1.1,2.2 f1 f2
OUTPUT - $'903672 \n806565 \n806754 \n806988 '
EXEC -v2 -1 2 -2 1 -o 1.1,2.2 f1 f2
OUTPUT - $' 4000\n 5000'
EXEC -v1 -v2 -1 2 -2 1 -o 1.1,2.2 f1 f2
OUTPUT - $'903672 \n806565 \n806754 \n806988 \n 4000\n 5000'
EXEC -a1 -v1 -1 2 -2 1 -o 1.1,2.2 f1 f2
OUTPUT - $'903672 \n806565 \n806754 \n806988 '
EXEC -a1 -v2 -1 2 -2 1 -o 1.1,2.2 f1 f2
OUTPUT - $'903672 \n806565 \n806754 \n806988 \n 4000\n 5000'
EXEC -v1 -a2 -1 2 -2 1 -o 1.1,2.2 f1 f2
OUTPUT - $'903672 \n806565 \n806754 \n806988 \n 4000\n 5000'
EXEC -v2 -a2 -1 2 -2 1 -o 1.1,2.2 f1 f2
OUTPUT - $' 4000\n 5000'
TEST 10 'more ggs/psm bugs -- thanks guys'
EXEC -t: -a 1 -a 2 f1 f2
INPUT f1 $'AGAIN:D981001:47\nAGAINST:D981001:101\nAGREED:D981001:67:72\nAHAS:D981001:5'
INPUT f2 $'AGAIN:D981002:15:58\nAGO:D981002:31\nAL/TUC:D981002:2:3:4:5:6\nALL:D981002:16:58:74:84'
OUTPUT - $'AGAIN:D981001:47:D981002:15:58\nAGAINST:D981001:101\nAGO:D981002:31\nAGREED:D981001:67:72\nAHAS:D981001:5\nAL/TUC:D981002:2:3:4:5:6\nALL:D981002:16:58:74:84'
EXEC -a2 f1 f2
INPUT f1 $'9112170179\n9112170180\n9112170181\n9112170182'
INPUT f2 $'9112161885\n9112170180\n9112170180\n9112170421\n9112170464'
OUTPUT - $'9112161885\n9112170180\n9112170180\n9112170421\n9112170464'
SET pipe-input
TEST 11 'pipe on 1 or 2'
EXEC f1 -
INPUT - $'9112161885\n9112170180\n9112170180\n9112170421\n9112170464'
INPUT f1 $'9112170179\n9112170180\n9112170181\n9112170182'
OUTPUT - $'9112170180\n9112170180'
EXEC - f1
EXEC f2 -
INPUT - $'9112170179\n9112170180\n9112170181\n9112170182'
INPUT f2 $'9112161885\n9112170180\n9112170180\n9112170421\n9112170464'
EXEC - f2
SET nopipe-input
TEST 12 'gnu join tests'
EXEC -a1 f1 f2
INPUT f1 $'a 1'
INPUT f2 $'b'
OUTPUT - $'a 1'
EXEC -a2 f1 f2
INPUT f1 $'a 1'
INPUT f2 $'b'
OUTPUT - $'b'
EXEC -a1 -a2 f1 f2
INPUT f1 $'a 1'
INPUT f2 $'b'
OUTPUT - $'a 1\nb'
EXEC -a1 f1 f2
INPUT f1 $'a 1\nb'
INPUT f2 $'b'
OUTPUT - $'a 1\nb'
EXEC -a2 f1 f2
INPUT f1 $'a 1\nb'
INPUT f2 $'b'
OUTPUT - $'b'
EXEC -a2 f1 f2
INPUT f1 $'b'
INPUT f2 $'a\nb'
OUTPUT - $'a\nb'
TEST 13 '-a -e'
EXEC -a1 -e . f1 f2
INPUT f1 $'a\nb\nc'
INPUT f2 $'a x y\nb\nc'
OUTPUT - $'a x y\nb\nc'
EXEC -a1 -e . -o 2.1,2.2,2.3 f1 f2
INPUT f1 $'a\nb\nc'
INPUT f2 $'a x y\nb\nc'
OUTPUT - $'a x y\nb . .\nc . .'
EXEC -a1 -e . -o 2.1,2.2,2.3 f1 f2
INPUT f1 $'a\nb\nc\nd'
INPUT f2 $'a x y\nb\nc'
OUTPUT - $'a x y\nb . .\nc . .\n. . .'
TEST 14 '-t'
EXEC -t: f1 f2
INPUT f1 $'a:1\nb:1'
INPUT f2 $'a:2:\nb:2:'
OUTPUT - $'a:1:2:\nb:1:2:'
TEST 15 '-v'
EXEC -v 1 f1 f2
INPUT f1 $'a 1'
INPUT f2 $'b'
OUTPUT - $'a 1'
EXEC -v 2 f1 f2
INPUT f1 $'a 1'
INPUT f2 $'b'
OUTPUT - $'b'
EXEC -v 1 f1 f2
INPUT f1 $'a 1\nb'
INPUT f2 $'b'
OUTPUT - $'a 1'
EXEC -v 2 f1 f2
INPUT f1 $'a 1\nb'
INPUT f2 $'b'
OUTPUT -
EXEC -v 2 f1 f2
INPUT f1 $'b'
INPUT f2 $'a 1\nb'
OUTPUT - $'a 1'
TEST 16 '-a -e -o'
EXEC -a1 -e - -o 1.1 2.2 f1 f2
INPUT f1 $'a 1\nb 2'
INPUT f2 $'a 11\nb'
OUTPUT - $'a 11\nb \-'
EXEC -a1 -e - -o 1.1 2.2 f1 f2
INPUT f1 $'apr 15\naug 20\ndec 18\nfeb 05'
INPUT f2 $'apr 06\naug 14\ndate\nfeb 15'
OUTPUT - $'apr 06\naug 14\ndec \-\nfeb 15'
EXEC -a1 -e - -o 1.1 2.2 f1 f2
INPUT f1 $'aug 20\ndec 18'
INPUT f2 $'aug 14\ndate\nfeb 15'
OUTPUT - $'aug 14\ndec \-'
EXEC -a1 -e - -o 1.1 2.2 f1 f2
INPUT f1 $'dec 18'
INPUT f2
OUTPUT - $'dec \-'
EXEC -a2 -e - -o 1.1 2.2 f1 f2
INPUT f1 $'apr 15\naug 20\ndec 18\nfeb 05'
INPUT f2 $'apr 06\naug 14\ndate\nfeb 15'
OUTPUT - $'apr 06\naug 14\n\- \-\nfeb 15'
EXEC -a2 -e - -o 2.2 1.1 f1 f2
INPUT f1 $'apr 15\naug 20\ndec 18\nfeb 05'
INPUT f2 $'apr 06\naug 14\ndate\nfeb 15'
OUTPUT - $'06 apr\n14 aug\n\- \-\n15 feb'
EXEC -a1 -e - -o 2.2 1.1 f1 f2
INPUT f1 $'apr 15\naug 20\ndec 18\nfeb 05'
INPUT f2 $'apr 06\naug 14\ndate\nfeb 15'
OUTPUT - $'06 apr\n14 aug\n\- dec\n15 feb'
EXEC -a1 -e - -o 2.2 1.1 f1 f2
INPUT f1 $'apr 15\naug 20\ndec 18\nfeb 05'
INPUT f2 $'apr 06\naug 14\ndate'
OUTPUT - $'06 apr\n14 aug\n\- dec\n\- feb'
EXEC -a1 -e - -o 1.1 2.2 f1 f2
INPUT f1 $'apr 15\naug 20\ndec 18\nfeb 05'
INPUT f2 $'apr 06\naug 14\ndate'
OUTPUT - $'apr 06\naug 14\ndec \-\nfeb \-'
EXEC -a2 -e - -o 2.2 1.1 f1 f2
INPUT f1 $'apr 15\naug 20\ndec 18\nfeb 05'
INPUT f2 $'apr 06\naug 14\ndate'
OUTPUT - $'06 apr\n14 aug\n\- \-'
EXEC -a2 -e - -o 2.2 1.1 f1 f2
INPUT f1 $'apr 15\naug 20\ndec 18\nfeb 05'
INPUT f2 $'apr 06\naug 14\ndate'
OUTPUT - $'06 apr\n14 aug\n\- \-'
EXEC -a1 -e - -o 2.2 1.1 f1 f2
INPUT f1 $'apr 15\naug 20\ndec 18'
INPUT f2 $'apr 06\naug 14\ndate\nfeb 15'
OUTPUT - $'06 apr\n14 aug\n\- dec'
EXEC -a2 -e - -o 2.2 1.1 f1 f2
INPUT f1 $'apr 15\naug 20\ndec 18'
INPUT f2 $'apr 06\naug 14\ndate\nfeb 15'
OUTPUT - $'06 apr\n14 aug\n\- \-\n15 \-'
TEST 17 '-e'
EXEC -e - f1 f2
INPUT f1 $'a 1\nb 2\nd 4'
INPUT f2 $'a 21\nb 22\nc 23\nf 26'
OUTPUT - $'a 1 21\nb 2 22'
EXEC -a1 -e - f1 f2
INPUT f1 $'a 1\nb 2\nd 4'
INPUT f2 $'a 21\nb 22\nc 23\nf 26'
OUTPUT - $'a 1 21\nb 2 22\nd 4'
EXEC -a1 -e - f1 f2
INPUT f1 $'a 21\nb 22\nc 23\nf 26'
INPUT f2 $'a 1\nb 2\nd 4'
OUTPUT - $'a 21 1\nb 22 2\nc 23\nf 26'
TEST 18 '-a -e -o'
EXEC -a1 -e . -o 2.7 f1 f2
INPUT f1 $'a\nb\nc'
INPUT f2 $'a x y\nb\nc'
OUTPUT - $'.\n.\n.'
EXEC -a1 -e . -o 0,1.2 f1 f2
INPUT f1 $'a\nb\nc\nd G'
INPUT f2 $'a x y\nb\nc\ne'
OUTPUT - $'a .\nb .\nc .\nd G'
EXEC -a1 -a2 -e . -o 0,1.2 f1 f2
INPUT f1 $'a\nb\nc\nd G'
INPUT f2 $'a x y\nb\nc\ne'
OUTPUT - $'a .\nb .\nc .\nd G\ne .'
TEST 19 'empty field deref'
EXEC -o 1.1 2.1 1.2 2.2 2.3 f1 f1
INPUT f1 $'U+0750'
OUTPUT - $'U+0750 U+0750 '
TEST 20 'nuttin'
EXEC f1 f2
INPUT f1 $' a 1\nb 2'
INPUT f2 $' a Y\nb Z'
OUTPUT - $'a 1 Y\nb 2 Z'
TEST 21 '-v1 vs. -v2 inconsistencies'
EXEC -11 -21 -v2 f1 f2
INPUT f1 $'a\nb\nc'
INPUT f2 $'a 1\nb 2\nb 3\nc 4'
OUTPUT -
EXEC -11 -21 -v1 f2 f1
TEST 22 VSC#8
EXEC -1 1 -2 1 -t: -o 1.5,2.5,1.6,2.6 -e bozo a.dat b.dat
INPUT a.dat $'three:this:is:line:three:file2\ntwo:this:is:line:two:file2'
INPUT b.dat $'four:this:is:line:four:file3\nthree:this:is:line:three::file3'
OUTPUT - $'three:three:file2:bozo'
TEST 23 'multibyte C.UTF-8'
EXPORT LC_CTYPE=C.UTF-8
EXEC -j1 1 -j2 2 -o 1.1 -t $'\342\202\254' a.dat b.dat
INPUT a.dat $'f1\342\202\254f2'
INPUT b.dat $'t2\342\202\254f1'
OUTPUT - 'f1'
TEST 24 'multibyte euc'
EXPORT LC_CTYPE=ja_JP.eucJP
EXEC -j1 1 -j2 2 -o 1.1 -t $'\xa1\xf7' a.dat b.dat
INPUT a.dat $'\x66\x31\xa1\xf7\x66\x32'
INPUT b.dat $'\x74\x32\xa1\xf7\x66\x31'
OUTPUT - 'f1'