Created
September 11, 2011 18:55
-
-
Save yongbin/1209961 to your computer and use it in GitHub Desktop.
@am0c++
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #/usr/bin/env perl | |
| use 5.010; | |
| use utf8; | |
| use Encode qw/encode_utf8 decode_utf8/; | |
| use Test::More; | |
| use Test::Differences; | |
| use Mandatory qw/elem list/; | |
| binmode STDOUT, ':encoding(utf-8)'; | |
| my $list = list( | |
| elem('ADM_DAT'), | |
| elem( | |
| 'ADM_STA' => [ | |
| list( | |
| elem('ADMVIAER'), | |
| elem('ER_DATE'), | |
| elem('ER_ARRTH'), | |
| elem('ER_ARRTM'), | |
| elem('FIRSTHOP'), | |
| elem('TX_PREVI'), | |
| elem( | |
| 'ER_MED' => [ | |
| list( elem('ASPDOS'), elem('ASPMDOS'), ), | |
| list( elem('CLODOS'), elem('CLOMDOS'), ), | |
| list( | |
| elem('THROMDAT'), | |
| elem('THROMTH'), | |
| elem('THROMTM'), | |
| elem( | |
| 'THROMDRU' => [ | |
| list( elem('UK_UNIT') ), | |
| list( elem('TPA_UNIT') ), | |
| list( elem('THROMDOT') ), | |
| ] | |
| ), | |
| elem('THROMDO'), | |
| ), | |
| ] | |
| ), | |
| ), | |
| ] | |
| ), | |
| elem('CC'), | |
| elem( | |
| 'CP_TYPCP' => [ | |
| list( elem('SA_1234') ), | |
| list( elem('UA_123'), elem('UA_ABC'), elem('UA_24HR'), ), | |
| list( | |
| elem('NSTONDAT'), elem('NSTONTH'), | |
| elem('NSTONTM'), elem('NSE_TYPE'), | |
| elem('NST_24HR'), | |
| ), | |
| list( | |
| elem('STONDAT'), elem('STONTH'), | |
| elem('STONTM'), elem('SE_TYPE'), | |
| elem('ST_24HR'), | |
| ), | |
| ] | |
| ), | |
| elem('TY_ATYP'), | |
| elem( | |
| 'ECGTYPE' => [ | |
| list(), | |
| list(), | |
| list(), | |
| list(), | |
| list(), | |
| list(), | |
| list(), | |
| list(), | |
| list(), | |
| list(), | |
| list( | |
| elem('E_RHOTSP') | |
| ), | |
| ] | |
| ), | |
| elem( | |
| 'E_ABN' => [ | |
| list( | |
| elem( | |
| 'ECG_ABNO' => [ | |
| list( elem('E_STEDUR'), elem('ST_ELEV'), ), | |
| list( elem('E_STDDUR'), elem('ST_DEP'), ), | |
| list(), | |
| list(), | |
| list(), | |
| list(), | |
| list( elem('E_ABOTSP'), ), | |
| ] | |
| ), | |
| ), | |
| ] | |
| ), | |
| elem( 'CHF_STA' => [ list( elem('CHF_NYHA'), elem('CHF_KILL'), ), ] ), | |
| elem('MENTAL'), | |
| elem('HEIGHT'), | |
| elem('WEIGHT'), | |
| elem('BMI'), | |
| elem('BSA'), | |
| elem('HR'), | |
| elem('BP_SYS'), | |
| elem('BP_DIA'), | |
| elem('ADMCOMT'), | |
| ); | |
| { | |
| my $title = encode_utf8 q{func(ADM_DAT => 1)}; | |
| my @expected = ( | |
| qw/ | |
| ADM_DAT | |
| ADM_STA | |
| CC | |
| CP_TYPCP | |
| TY_ATYP | |
| ECGTYPE | |
| E_ABN | |
| CHF_STA | |
| MENTAL | |
| HEIGHT | |
| WEIGHT | |
| BMI | |
| BSA | |
| HR | |
| BP_SYS | |
| BP_DIA | |
| ADMCOMT | |
| / | |
| ); | |
| my @result = $list->func( ADM_DAT => 1)->as_list; | |
| eq_or_diff \@result, \@expected, $title; | |
| } | |
| { | |
| my $title = encode_utf8 q{func(ADM_STA => 1)}; | |
| my @expected = ( | |
| qw/ | |
| ADM_DAT | |
| ADM_STA | |
| ADMVIAER | |
| ER_DATE | |
| ER_ARRTH | |
| ER_ARRTM | |
| FIRSTHOP | |
| TX_PREVI | |
| ER_MED | |
| CC | |
| CP_TYPCP | |
| TY_ATYP | |
| ECGTYPE | |
| E_ABN | |
| CHF_STA | |
| MENTAL | |
| HEIGHT | |
| WEIGHT | |
| BMI | |
| BSA | |
| HR | |
| BP_SYS | |
| BP_DIA | |
| ADMCOMT | |
| / | |
| ); | |
| my @result = $list->func( ADM_STA => 1)->as_list; | |
| eq_or_diff \@result, \@expected, $title; | |
| } | |
| { | |
| my $title = encode_utf8 q{func(ADM_STA => 1, ER_MED => 1)}; | |
| my @expected = ( | |
| qw/ | |
| ADM_DAT | |
| ADM_STA | |
| ADMVIAER | |
| ER_DATE | |
| ER_ARRTH | |
| ER_ARRTM | |
| FIRSTHOP | |
| TX_PREVI | |
| ER_MED | |
| ASPDOS | |
| ASPMDOS | |
| CC | |
| CP_TYPCP | |
| TY_ATYP | |
| ECGTYPE | |
| E_ABN | |
| CHF_STA | |
| MENTAL | |
| HEIGHT | |
| WEIGHT | |
| BMI | |
| BSA | |
| HR | |
| BP_SYS | |
| BP_DIA | |
| ADMCOMT | |
| / | |
| ); | |
| my @result = $list->func( ADM_STA => 1, ER_MED => 1 )->as_list; | |
| eq_or_diff \@result, \@expected, $title; | |
| } | |
| { | |
| my $title = encode_utf8 q{func(ADM_STA => 2, ER_MED => 1)}; | |
| my @expected = ( | |
| qw/ | |
| ADM_DAT | |
| ADM_STA | |
| CC | |
| CP_TYPCP | |
| TY_ATYP | |
| ECGTYPE | |
| E_ABN | |
| CHF_STA | |
| MENTAL | |
| HEIGHT | |
| WEIGHT | |
| BMI | |
| BSA | |
| HR | |
| BP_SYS | |
| BP_DIA | |
| ADMCOMT | |
| / | |
| ); | |
| my @result = $list->func( ADM_STA => 2, ER_MED => 1 )->as_list; | |
| eq_or_diff \@result, \@expected, $title; | |
| } | |
| { | |
| my $title = encode_utf8 q{func(ADM_STA => 2, ER_MED => 1)}; | |
| my @expected = ( | |
| qw/ | |
| ADM_DAT | |
| ADM_STA | |
| CC | |
| CP_TYPCP | |
| TY_ATYP | |
| ECGTYPE | |
| E_ABN | |
| CHF_STA | |
| MENTAL | |
| HEIGHT | |
| WEIGHT | |
| BMI | |
| BSA | |
| HR | |
| BP_SYS | |
| BP_DIA | |
| ADMCOMT | |
| / | |
| ); | |
| my @result = $list->func( ADM_STA => 2, ER_MED => 1 )->as_list; | |
| eq_or_diff \@result, \@expected, $title; | |
| } | |
| { | |
| my $title = encode_utf8 q{func(ADM_STA => 1, ER_MED => 2)}; | |
| my @expected = ( | |
| qw/ | |
| ADM_DAT | |
| ADM_STA | |
| ADMVIAER | |
| ER_DATE | |
| ER_ARRTH | |
| ER_ARRTM | |
| FIRSTHOP | |
| TX_PREVI | |
| ER_MED | |
| CLODOS | |
| CLOMDOS | |
| CC | |
| CP_TYPCP | |
| TY_ATYP | |
| ECGTYPE | |
| E_ABN | |
| CHF_STA | |
| MENTAL | |
| HEIGHT | |
| WEIGHT | |
| BMI | |
| BSA | |
| HR | |
| BP_SYS | |
| BP_DIA | |
| ADMCOMT | |
| / | |
| ); | |
| my @result = $list->func( ADM_STA => 1, ER_MED => 2 )->as_list; | |
| eq_or_diff \@result, \@expected, $title; | |
| } | |
| { | |
| my $title = encode_utf8 q{func(ADM_STA => 2)}; | |
| my @expected = ( | |
| qw/ | |
| ADM_DAT | |
| ADM_STA | |
| CC | |
| CP_TYPCP | |
| TY_ATYP | |
| ECGTYPE | |
| E_ABN | |
| CHF_STA | |
| MENTAL | |
| HEIGHT | |
| WEIGHT | |
| BMI | |
| BSA | |
| HR | |
| BP_SYS | |
| BP_DIA | |
| ADMCOMT | |
| / | |
| ); | |
| my @result = $list->func( ADM_STA => 2 )->as_list; | |
| eq_or_diff \@result, \@expected, $title; | |
| } | |
| { | |
| my $title = encode_utf8 q{func(ADM_STA => 1, ER_MED => 3, THROMDRU => 1)}; | |
| my @expected = ( | |
| qw/ | |
| ADM_DAT | |
| ADM_STA | |
| ADMVIAER | |
| ER_DATE | |
| ER_ARRTH | |
| ER_ARRTM | |
| FIRSTHOP | |
| TX_PREVI | |
| ER_MED | |
| THROMDAT | |
| THROMTH | |
| THROMTM | |
| THROMDRU | |
| UK_UNIT | |
| THROMDO | |
| CC | |
| CP_TYPCP | |
| TY_ATYP | |
| ECGTYPE | |
| E_ABN | |
| CHF_STA | |
| MENTAL | |
| HEIGHT | |
| WEIGHT | |
| BMI | |
| BSA | |
| HR | |
| BP_SYS | |
| BP_DIA | |
| ADMCOMT | |
| / | |
| ); | |
| my @result = $list->func( ADM_STA => 1, ER_MED => 3, THROMDRU => 1 )->as_list; | |
| eq_or_diff \@result, \@expected, $title; | |
| } | |
| { | |
| my $title = encode_utf8 q{func(ADM_STA => 1, ER_MED => 3, THROMDRU => 3)}; | |
| my @expected = ( | |
| qw/ | |
| ADM_DAT | |
| ADM_STA | |
| ADMVIAER | |
| ER_DATE | |
| ER_ARRTH | |
| ER_ARRTM | |
| FIRSTHOP | |
| TX_PREVI | |
| ER_MED | |
| THROMDAT | |
| THROMTH | |
| THROMTM | |
| THROMDRU | |
| THROMDOT | |
| THROMDO | |
| CC | |
| CP_TYPCP | |
| TY_ATYP | |
| ECGTYPE | |
| E_ABN | |
| CHF_STA | |
| MENTAL | |
| HEIGHT | |
| WEIGHT | |
| BMI | |
| BSA | |
| HR | |
| BP_SYS | |
| BP_DIA | |
| ADMCOMT | |
| / | |
| ); | |
| my @result = $list->func( ADM_STA => 1, ER_MED => 3, THROMDRU => 3 )->as_list; | |
| eq_or_diff \@result, \@expected, $title; | |
| } | |
| { | |
| my $title = encode_utf8 q{func(ADM_STA => 1, ER_MED => 5, THROMDRU => 3)}; | |
| my @expected = ( | |
| qw/ | |
| ADM_DAT | |
| ADM_STA | |
| ADMVIAER | |
| ER_DATE | |
| ER_ARRTH | |
| ER_ARRTM | |
| FIRSTHOP | |
| TX_PREVI | |
| ER_MED | |
| CC | |
| CP_TYPCP | |
| TY_ATYP | |
| ECGTYPE | |
| E_ABN | |
| CHF_STA | |
| MENTAL | |
| HEIGHT | |
| WEIGHT | |
| BMI | |
| BSA | |
| HR | |
| BP_SYS | |
| BP_DIA | |
| ADMCOMT | |
| / | |
| ); | |
| my @result = $list->func( ADM_STA => 1, ER_MED => 5, THROMDRU => 3 )->as_list; | |
| eq_or_diff \@result, \@expected, $title; | |
| } | |
| { | |
| my $title = encode_utf8 q{func(ER_MED => 1)}; | |
| my @expected = ( | |
| qw/ | |
| ADM_DAT | |
| ADM_STA | |
| CC | |
| CP_TYPCP | |
| TY_ATYP | |
| ECGTYPE | |
| E_ABN | |
| CHF_STA | |
| MENTAL | |
| HEIGHT | |
| WEIGHT | |
| BMI | |
| BSA | |
| HR | |
| BP_SYS | |
| BP_DIA | |
| ADMCOMT | |
| / | |
| ); | |
| my @result = $list->func( ER_MED => 1 )->as_list; | |
| eq_or_diff \@result, \@expected, $title; | |
| } | |
| { | |
| my $title = encode_utf8 q{func(ADM_STA => 2, ER_MED => 1)}; | |
| my @expected = ( | |
| qw/ | |
| ADM_DAT | |
| ADM_STA | |
| CC | |
| CP_TYPCP | |
| TY_ATYP | |
| ECGTYPE | |
| E_ABN | |
| CHF_STA | |
| MENTAL | |
| HEIGHT | |
| WEIGHT | |
| BMI | |
| BSA | |
| HR | |
| BP_SYS | |
| BP_DIA | |
| ADMCOMT | |
| / | |
| ); | |
| my @result = $list->func( ADM_STA => 2, ER_MED => 1 )->as_list; | |
| eq_or_diff \@result, \@expected, $title; | |
| } | |
| done_testing; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment