/* Ċ Ġ* ĠCopyright Ġ 2 0 1 9 ĠAmazon . com , ĠInc . Ġor Ġits Ġaffiliates . Ġ ĠAll Ġrights Ġreserved . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "). Ċ Ġ* Ġ ĠYou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠA Ġcopy Ġof Ġthe ĠLicense Ġis Ġlocated Ġat : Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// aws . amazon . com / apache 2 . 0 / Ċ Ġ* Ċ Ġ* Ġ Ġor Ġin Ġthe Ġ" license " Ġfile Ġaccompanying Ġthis Ġfile . ĠThis Ġfile Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* Ġ ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ċ Ġ* Ġ Ġlanguage Ġgoverning Ġpermissions Ġand Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġorg . part i ql . lang . eval . builtins Ċ Ċ import Ġorg . part i ql . lang . errors .* Ċ import Ġorg . part i ql . lang . eval .* Ċ import Ġorg . junit .* Ċ Ċ class ĠToString Expr Function Test Ġ: ĠEvalu ator TestBase () Ġ{ ĊĠĠĠ Ġ// ĠNote Ġthat Ġthe Ġamount Ġof Ġtesting Ġhere Ġis Ġa Ġbit Ġon Ġthe Ġlight Ġside Ġbecause Ġmost Ġof Ġthe Ġtesting Ġfor Ġthe Ġformatting ĊĠĠĠ Ġ// Ġfunctionality Ġbehind Ġ` to _ string ` Ġis Ġin ĠTimestamp Temporal Accessor Tests . ĊĠĠĠ Ġ@ Test Ġfun Ġto _ string 1 () Ġ= Ġassert Eval (" to _ string (` 0 5 0 0 - 0 3 - 0 9 `, Ġ' MM / dd / yyyy ') ", Ġ"\" 0 3 / 0 9 / 0 5 0 0 \" ") ĊĠĠĠ Ġ@ Test Ġfun Ġto _ string 2 () Ġ= Ġassert Eval (" to _ string (` 0 5 0 0 - 0 3 - 0 9 `, Ġ' M / d / y ') ", Ġ"\" 3 / 9 / 5 0 0 \" ") ĊĠĠĠ Ġ@ Test Ġfun Ġto _ string 3 () Ġ= Ġassert Eval (" to _ string (` 0 0 0 1 - 0 3 - 0 9 `, Ġ' MM / dd / yyyy ') ", Ġ"\" 0 3 / 0 9 / 0 0 0 1 \" ") ĊĠĠĠ Ġ@ Test Ġfun Ġto _ string 4 () Ġ= Ġassert Eval (" to _ string (` 0 0 0 1 - 0 3 - 0 9 `, Ġ' M / d / y ') ", Ġ"\" 3 / 9 / 1 \" ") ĊĠĠĠ Ġ@ Test Ġfun Ġto _ string 5 () Ġ= Ġassert Eval (" to _ string (` 9 9 9 9 - 0 3 - 0 9 `, Ġ' MM / dd / yyyy ') ", Ġ"\" 0 3 / 0 9 / 9 9 9 9 \" ") ĊĠĠĠ Ġ@ Test Ġfun Ġto _ string 6 () Ġ= Ġassert Eval (" to _ string (` 9 9 9 9 - 0 3 - 0 9 `, Ġ' M / d / y ') ", Ġ"\" 3 / 9 / 9 9 9 9 \" ") ĊĠĠĠ Ġ@ Test Ġfun Ġto _ string 7 () Ġ= Ġassert Eval (" to _ string (` 0 0 0 1 - 0 3 - 0 9 `, Ġ' y ') ", Ġ"\" 1 \" ") ĊĠĠĠ Ġ@ Test Ġfun Ġto _ string 8 () Ġ= Ġassert Eval (" to _ string (` 9 9 9 9 - 0 3 - 0 9 `, Ġnull )", Ġ" null ") ĊĠĠĠ Ġ@ Test Ġfun Ġto _ string 9 () Ġ= Ġassert Eval (" to _ string ( null , Ġ' M / d / y ') ", Ġ" null ") ĊĠĠĠ Ġ@ Test Ġfun Ġto _ string 1 0 () Ġ= Ġassert Eval (" to _ string (` 9 9 9 9 - 0 3 - 0 9 `, Ġmissing )", Ġ" null ") ĊĠĠĠ Ġ@ Test Ġfun Ġto _ string 1 1 () Ġ= Ġassert Eval (" to _ string ( missing , Ġ' M / d / y ') ", Ġ" null ") ĊĊĠĠĠ Ġ@ Test Ġfun Ġto _ string _ common _ 1 () Ġ= Ġassert Eval (" to _ string (` 1 9 6 9 - 0 7 - 2 0 T 2 0 : 1 8 Z `, Ġ' MMMM Ġd , Ġy ') ", Ġ"\" July Ġ 2 0 , Ġ 1 9 6 9 \" ") ĊĠĠĠ Ġ@ Test Ġfun Ġto _ string _ common _ 2 () Ġ= Ġassert Eval (" to _ string (` 1 9 6 9 - 0 7 - 2 0 T 2 0 : 1 8 Z `, Ġ' MMM Ġd , Ġy yyy ') ", Ġ"\" Jul Ġ 2 0 , Ġ 1 9 6 9 \" ") ĊĠĠĠ Ġ@ Test Ġfun Ġto _ string _ common _ 3 () Ġ= Ġassert Eval (" to _ string (` 1 9 6 9 - 0 7 - 2 0 T 2 0 : 1 8 Z `, Ġ' M - d - yy ') ", Ġ"\" 7 - 2 0 - 6 9 \" ") ĊĠĠĠ Ġ@ Test Ġfun Ġto _ string _ common _ 4 () Ġ= Ġassert Eval (" to _ string (` 1 9 6 9 - 0 7 - 2 0 T 2 0 : 1 8 Z `, Ġ' MM - d - y ') ", Ġ"\" 0 7 - 2 0 - 1 9 6 9 \" ") ĊĠĠĠ Ġ@ Test Ġfun Ġto _ string _ common _ 5 () Ġ= Ġassert Eval (" to _ string (` 1 9 6 9 - 0 7 - 2 0 T 2 0 : 1 8 Z `, Ġ' MMMM Ġd , Ġy Ġh : m Ġa ') ", Ġ"\" July Ġ 2 0 , Ġ 1 9 6 9 Ġ 8 : 1 8 ĠPM \" ") ĊĠĠĠ Ġ@ Test Ġfun Ġto _ string _ common _ 6 () Ġ= Ġassert Eval (" to _ string (` 1 9 6 9 - 0 7 - 2 0 T 2 0 : 1 8 Z `, Ġ' y - MM - dd '' T '' H : m : ss X ') ", Ġ"\" 1 9 6 9 - 0 7 - 2 0 T 2 0 : 1 8 : 0 0 Z \" ") ĊĠĠĠ Ġ@ Test Ġfun Ġto _ string _ common _ 7 () Ġ= Ġassert Eval (" to _ string (` 1 9 6 9 - 0 7 - 2 0 T 2 0 : 1 8 + 0 8 : 0 0 `, Ġ' y - MM - dd '' T '' H : m : ss X ') ", Ġ"\" 1 9 6 9 - 0 7 - 2 0 T 2 0 : 1 8 : 0 0 + 0 8 \" ") ĊĠĠĠ Ġ@ Test Ġfun Ġto _ string _ common _ 8 () Ġ= Ġassert Eval (" to _ string (` 1 9 6 9 - 0 7 - 2 0 T 2 0 : 1 8 + 0 8 : 0 0 `, Ġ' y - MM - dd '' T '' H : m : ss XXXX ') ", Ġ"\" 1 9 6 9 - 0 7 - 2 0 T 2 0 : 1 8 : 0 0 + 0 8 0 0 \" ") ĊĠĠĠ Ġ@ Test Ġfun Ġto _ string _ common _ 9 () Ġ= Ġassert Eval (" to _ string (` 1 9 6 9 - 0 7 - 2 0 T 2 0 : 1 8 + 0 8 : 0 0 `, Ġ' y - MM - dd '' T '' H : m : ss XX XXX ') ", Ġ"\" 1 9 6 9 - 0 7 - 2 0 T 2 0 : 1 8 : 0 0 + 0 8 : 0 0 \" ") ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġto _ string _ invalid _ symbol 1 () Ġ{ ĊĠĠĠĠĠĠĠ Ġcheck Input Throw ing Evaluation Exception ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" to _ string (` 2 0 1 7 - 0 1 - 0 1 `, Ġ' b ') ", Ġ// Symbol Ġ' b ' Ġis Ġunknown Ġto ĠJava 's ĠDateTime Formatter ĊĠĠĠĠĠĠĠĠĠĠĠ ĠErrorCode . EVAL U ATOR _ INVALID _ TIMESTAMP _ FORMAT _ PATTERN , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( Property . LINE _ NUMBER Ġto Ġ 1 L , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProperty . COLUMN _ NUMBER Ġto Ġ 1 L , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProperty . TIMESTAMP _ FORMAT _ PATTERN Ġto Ġ" b ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġto _ string _ invalid _ symbol 2 () Ġ{ ĊĠĠĠĠĠĠĠ Ġcheck Input Throw ing Evaluation Exception ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Symbol Ġ' z ' Ġis Ġknown Ġto ĠJava 's ĠDateTime Formatter Ġbut Ġis Ġnot Ġhandled Ġby ĠTimestamp Temporal Accessor ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" to _ string (` 2 0 1 7 - 0 1 - 0 1 `, Ġ' Y ') ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠErrorCode . EVAL U ATOR _ INVALID _ TIMESTAMP _ FORMAT _ PATTERN , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( Property . LINE _ NUMBER Ġto Ġ 1 L , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProperty . COLUMN _ NUMBER Ġto Ġ 1 L , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProperty . TIMESTAMP _ FORMAT _ PATTERN Ġto Ġ" Y ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġto _ string _ invalid _ symbol 3 () Ġ{ ĊĠĠĠĠĠĠĠ Ġcheck Input Throw ing Evaluation Exception ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Symbol Ġ' VV ' Ġis Ġknown Ġto ĠJava 's ĠDateTime Formatter Ġbut Ġis Ġnot Ġhandled Ġby ĠTimestamp Temporal Accessor ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// * and * Ġcauses Ġa Ġdifferent Ġexception Ġto Ġbe Ġthrown Ġby ĠDateTime Formatter . format () Ġthan Ġ' z ' ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" to _ string (` 2 0 1 7 - 0 1 - 0 1 `, Ġ' VV ') ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠErrorCode . EVAL U ATOR _ INVALID _ TIMESTAMP _ FORMAT _ PATTERN , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( Property . LINE _ NUMBER Ġto Ġ 1 L , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProperty . COLUMN _ NUMBER Ġto Ġ 1 L , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProperty . TIMESTAMP _ FORMAT _ PATTERN Ġto Ġ" VV ")) ĊĠĠĠ Ġ} Ċ Ċ }