TEST SUITE PROGRESS TRACKER 

    (last update: 12/17/15, 12:14am)



----------------------
TODO
----------------------

> conditional (more)
> while (more)
> measure/phrase/song decl
> timesig/instr/tempo decl
> append (error)
> list of list of notes


test_note_play      DONE
test_measure_play   DONE
test_phrase_play    PEND
test_song_play      PEND



---------------------------
PLAY() called on PHRASE
---------------------------

Test
> test_phrase_play  (without phrase addon)

Progress
> Java file generated
> No Class files generated


OUTPUT FROM JAVA COMPILE:

    test_phrase_play.java:11: error: incompatible types: j_note[] cannot be converted to j_measure
    p_1 = new j_phrase(new j_measure [] {new j_note [] {(new j_note(44, 2.0)),(new j_note(47, 2.0))}});
                                         ^
    test_phrase_play.java:11: error: incompatible types: j_measure[] cannot be converted to j_note[][]
    p_1 = new j_phrase(new j_measure [] {new j_note [] {(new j_note(44, 2.0)),(new j_note(47, 2.0))}});




----------------------
PRINT
----------------------

Working:
> int_list foo = (print()) [42]; 
> str_list foo = (print()) ["foo"];



---------------------
ARITHMETIC
---------------------

Working:
> test_arith_add1
> test_arith_add2
> test_arith_sub1
> test_arith_mult1
> test_arith_div1

Not Working:
>



---------------------
PLAY NOTE
---------------------

Working:
> test_play_note



------------------
FUNK
------------------

Working:
> test_funk_decl

Kinda Working:
> test_funk_print       (.java and .class files generated)


    ```````````````````````````````````````````````````````````````````````````````
    [ua2144@uzo marmalade]$ ./marmac tests_new/test_funk_print.marm test_funk_print
    // Passed semantic checking 
    
    adding stmt 
    in vdec 
    adding assignment 
    trying to add a var 
    adding symbol 
    in symbol 
    trying to add function
    adding symbol 
    in symbol 
    adding blockadding stmt 
    through table 
    got vars 
    swag Nulled??got global variables 
    verifying function 
    in update 
    marmout Nulled3??marmout *Nulled??marmout Nulled3??main Nulled6??verifying function 
    in update 
    marmout Nulled6??test_funk_print.java:13: error: '}' expected
    swag = new int [] {42.marmout();/n};
                          ^
    test_funk_print.java:13: error: -> expected
    swag = new int [] {42.marmout();/n};
                                   ^
    test_funk_print.java:13: error: not a statement
    swag = new int [] {42.marmout();/n};
                                 ^
    test_funk_print.java:13: error: ';' expected
    swag = new int [] {42.marmout();/n};
                                      ^
    test_funk_print.java:15: error: class, interface, or enum expected
    }}
    `````````````````````````````````````````````````````````````````````````````````
    
    
Not Working:
>
>



----------------------
HELLO WORLD
----------------------

To be split into multiple tests.



------------------
CONDITIONAL
------------------

Working:
> test_cond_ifelse
> test_cond_ifelse2
> test_cond_ifelse3

Not working:
> 



------------------
DATA STRUCTURES
------------------


song hey <<= (P_0) << (P_1 << m_0 ) << (p_1 << n_0) << ()

song s_1 = <<= $()p_0 << $()m_0;



time sig → measure
bpm → song
instrument → phrase



--------------------
APPEND
--------------------




----------------
FUNKY
----------------


TEST FUNK 


/*int_list out = (print()) [21];*/



/*
int_list int_list marmout() {
    return [42];
}

int_list swag = (marmout()) [42];
*/

/*
int_list foo = (marmout()) [42];
*/


/*
int_list string marmout() {
    return [42];
}

int_list foo = (print()) [42];
*/


/*
NOTE: funk <implicit type or blank> <return type>
*/



/*
funk int_list marmout() {
    int_list out = (print()) [42];
}

int_list fooey = (marmout()) [1];
*/


/*
int i = 5;
*/


/*
int_list int_list foo() {
    return [42];
}
*/


/*
int_list fooey = (marmout()) [42];
*/