/// Tests for rules shared between various speech styles: /// * modified var use crate::common::*; #[test] fn salt() { let expr = "NaCl"; test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Terse")], expr, "大寫 n a, 大寫 c l,"); } #[test] fn water() { let expr = "H2O"; test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Terse")], expr, "大寫 h, 2 大寫 o,"); test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Medium")], expr, "大寫 h, 下標 2, 大寫 o,"); test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Verbose")], expr, "大寫 h, 下標 2, 大寫 o,"); } #[test] fn carbon() { let expr = "C"; // not enough to trigger recognition test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Terse")], expr, "大寫 c"); } #[test] fn sulfate() { let expr = " [SO4] 2 "; test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Medium")], expr, "左中括, 大寫 s, 大寫 o, 下標 4; 右中括 上標 2 減"); } #[test] fn aluminum_sulfate() { let expr = "Al2 (SO4)3"; test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Terse")], expr, "大寫 a l, 2, 左小括, 大寫 s, 大寫 o, 4; 右小括 3"); test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Medium")], expr, "大寫 a l, 下標 2; 左小括, 大寫 s, 大寫 o, 下標 4; 右小括 下標 3"); test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Verbose")], expr, "大寫 a l, 下標 2; 左小括, 大寫 s, 大寫 o, 下標 4; 右小括 下標 3"); } #[test] fn ethanol_bonds() { let expr = " C H 3 C H 2 O H "; test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Terse")], expr, "大寫 c, 大寫 h, 3 單鍵 大寫 c, 大寫 h, 2 單鍵 大寫 o, 大寫 h,"); } #[test] fn dichlorine_hexoxide() { let expr = " [ClO2] + [ClO4] - "; test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Terse")], expr, "左中括, 大寫 c l, 大寫 o, 2; 右中括 加; \ 左中括, 大寫 c l, 大寫 o, 4; 右中括 減"); test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Medium")], expr, "左中括, 大寫 c l, 大寫 o, 下標 2; 右中括 上標 加; \ 左中括, 大寫 c l, 大寫 o, 下標 4; 右中括 上標 減"); test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Verbose")], expr, "左中括, 大寫 c l, 大寫 o, 下標 2; 右中括 上標 加; \ 左中括, 大寫 c l, 大寫 o, 下標 4; 右中括 上標 減"); } #[test] fn ethylene_with_bond() { let expr = " H2C = CH2 "; test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Terse")], expr, "大寫 h, 2 大寫 c, 雙鍵 大寫 c, 大寫 h, 2"); } #[test] fn ferric_chloride_aq() { let expr = " Fe Cl3 (aq) "; test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Terse")], expr, "大寫 f e, 大寫 c l, 3 水溶液,"); } #[test] fn ethylene_with_colon_bond() { let expr = " H2C :: CH2 "; test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Terse")], expr, "大寫 h, 2 大寫 c, 雙鍵 大寫 c, 大寫 h, 2"); } #[test] fn beta_decay() { let expr = " C 6 14 N 7 14 + e 1 0 "; test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Terse")], expr, "14, 6, 大寫 c; 形成, 14, 7, 大寫 n; 加 0, 負 1, e,"); test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Medium")], expr, "上標 14, 下標 6, 大寫 c; 反應形成; 上標 14, 下標 7, 大寫 n; 加 上標 0, 下標 負 1, e,"); test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Verbose")], expr, "上標 14, 下標 6, 大寫 c; 反應形成; 上標 14, 下標 7, 大寫 n; 加 上標 0, 下標 負 1, e,"); } #[test] fn mhchem_beta_decay() { let expr = " A 6 14 A 2 6 2 14 C A 7 14 A 2 7 2 14 N + A 1 0 A 2 1 2 0 e "; test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Terse")], expr, "14, 6, 大寫 c; 形成, 14, 7, 大寫 n; 加 0, 負 1, e,"); test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Medium")], expr, "上標 14, 下標 6, 大寫 c; 反應形成; 上標 14, 下標 7, 大寫 n; 加 上標 0, 下標 負 1, e,"); test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Verbose")], expr, "上標 14, 下標 6, 大寫 c; 反應形成; 上標 14, 下標 7, 大寫 n; 加 上標 0, 下標 負 1, e,"); } #[test] fn hcl_na_yields() { let expr = " 2HCl+2Na 2NaCl+ H 2 "; test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Verbose")], expr, "2, 大寫 h, 大寫 c l; 加 2 大寫 n a; 反應形成; 2, 大寫 n a, 大寫 c l; 加 大寫 h, 下標 2"); } #[test] fn mhchem_so4_2plus() { let expr = " SO A 4 A 2 + "; test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Terse")], expr, "大寫 s; 大寫 o, 4, 2 加,"); test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Medium")], expr, "大寫 s; 大寫 o, 下標 4, 上標 2 加,"); test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Verbose")], expr, "大寫 s; 大寫 o, 下標 4, 上標 2 加,"); } #[test] fn mhchem_hcl_aq_etc() { let expr = " 2 HCl ( aq ) + 2 Na ( s ) 2 NaCl ( aq ) + H A 2 ( g ) "; test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Terse")], expr, "2, 大寫 h, 大寫 c l, 水溶液; 加, 2, 大寫 n a, 固體; 形成; 2, 大寫 n a, 大寫 c l, 水溶液; 加, 大寫 h, 2; 氣體,"); } #[test] fn mhchem_barbed_equilibrium() { let expr = " H 2 ( g ) + I 2 ( g ) - - 2 H I ( g ) "; test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Terse")], expr, "大寫 h, 2; 氣體; 加; 大寫 i, 2; 氣體; 左右平衡 2, 大寫 h, 大寫 i, 氣體,"); } #[test] fn mhchem_roman_in_superscript() { let expr = " Fe II Fe III O 4 "; test_prefs("zh-tw", "SimpleSpeak", vec![("Verbosity", "Terse")], expr, "大寫 f e, 2; 大寫 f e, 3; 大寫 o, 4,"); }