/// Tests for rules shared between various speech styles:
/// * modified var
use crate::common::*;
#[test]
fn modified_vars() {
let expr = "";
test("fi", "SimpleSpeak", expr,
"a gravis, b tilde, c lyhyysmerkki, b hattu, c gravis; plus; x piste, y piste, z piste piste, u kolmoispiste, v nelinkertainen piste; plus x hattu, plus vektori t");
}
#[test]
fn limit() {
let expr = "";
test("fi", "SimpleSpeak", expr, "raja-arvo kun x lähestyy 0; arvolla, murtoluku, sini arvolla x, per x, loppu murtoluku;");
}
#[test]
fn limit_from_below() {
let expr = "";
test("fi", "SimpleSpeak", expr, "raja-arvo kun x lähestyy alhaalta 0; arvolla sini arvolla x");
}
#[test]
fn binomial_mmultiscripts() {
let expr = "";
test("fi", "SimpleSpeak", expr, "n yli m");
}
#[test]
fn permutation_mmultiscripts() {
let expr = "";
test("fi", "SimpleSpeak", expr, "k permutaatio n");
}
#[test]
fn permutation_mmultiscripts_sup() {
let expr = "";
test("fi", "SimpleSpeak", expr, "k permutaatio n");
}
#[test]
fn permutation_msubsup() {
let expr = "";
test("fi", "SimpleSpeak", expr, "k permutaatio n");
}
#[test]
fn tensor_mmultiscripts() {
let expr = "";
test_prefs("fi", "SimpleSpeak", vec![("Verbosity", "Verbose")], expr,
"iso r jolla on 4 jälkikirjoitusta, alaindeksi i yläindeksi j alaindeksi k alaindeksi l");
test_prefs("fi", "SimpleSpeak", vec![("Verbosity", "Medium")], expr,
"iso r jolla on 4 jälkikirjoitusta, ala i ylä j ala k ala l");
}
#[test]
fn huge_num_mmultiscripts() {
let expr = "";
test_prefs("fi", "SimpleSpeak", vec![("Verbosity", "Verbose")], expr,
"iso r 4 etumäärettä, etualaindeksi iso i, etuyläindeksi iso j ja vaihtelevat etumääreet iso k none iso l none loppu etumääreet ja jolla on 5 jälkikirjoitusta, alaindeksi i yläindeksi j alaindeksi k alaindeksi l ja vaihtelevia määreitä m none loppu määreet");
}
#[test]
fn prime() {
let expr = "";
test("fi", "SimpleSpeak", expr, "x pilkku,");
}
#[test]
fn given() {
let expr = "";
test("fi", "SimpleSpeak", expr, "iso p; auki sulku, iso a pystysuora viiva iso b; kiinni sulku");
test("fi", "ClearSpeak", expr, "iso p, auki sulku, iso a jakaa iso b, kiinni sulku"); // not good, but follows the spec
}
#[test]
fn simple_msubsup() {
let expr = "";
test("fi", "ClearSpeak", expr, "x ala k, potenssiin i");
}
#[test]
fn non_simple_msubsup() {
let expr = "";
test("fi", "SimpleSpeak", expr, "i ala j miinus 2 loppu ala, potenssiin k");
test("fi", "ClearSpeak", expr, "i ala j miinus 2 loppu ala, potenssiin k");
}
#[test]
fn presentation_mathml_in_semantics() {
let expr = "";
test("fi", "ClearSpeak", expr, "x ala k, potenssiin i");
}
#[test]
fn ignore_period() {
// from https://en.wikipedia.org/wiki/Probability
let expr = "";
test("fi", "SimpleSpeak", expr, "iso p; auki sulku, iso a and iso b; kiinni sulku; on yhtä suuri kuin; iso p, auki sulku, iso a leikkaus iso b, kiinni sulku; on yhtä suuri kuin; iso p arvolla iso a; iso p arvolla iso b");
}
#[test]
fn ignore_mtext_period() {
let expr = "";
test("fi", "SimpleSpeak", expr, "joukko 2");
}
#[test]
fn ignore_comma() {
// from https://en.wikipedia.org/wiki/Probability
let expr = "";
test("fi", "SimpleSpeak", expr, "suora fii arvolla x, on yhtä suuri kuin; c, e potenssiin negatiivinen h toiseen, x toiseen");
}
#[test]
#[ignore] // issue #14
fn ignore_period_and_space() {
// from https://en.wikipedia.org/wiki/Probability
let expr = "";
test("fi", "ClearSpeak", expr, "phi of x is equal to; c, e raised to the negative h squared x squared power");
}
#[test]
fn mn_with_space() {
let expr = "";
test("fi", "SimpleSpeak", expr, "1234567");
}
/// Tests for expressions that appear in the Finnish matriculation exams (FinME)
#[test]
fn FinME_difference_quotinent() {
let expr = "";
test("fi", "ClearSpeak", expr, "iso d f arvolla a; on yhtä suuri kuin, f pilkku, arvolla a, on yhtä suuri kuin; murtoluku osoittaja; f arvolla x, miinus f arvolla a; ja nimittäjä x miinus a; on yhtä suuri kuin; raja-arvo kun h lähestyy 0; arvolla; murtoluku osoittaja; f arvolla, auki sulku a plus h, kiinni sulku; miinus f arvolla a; ja nimittäjä h;");
test("fi", "SimpleSpeak", expr, "iso d f arvolla a; on yhtä suuri kuin, f pilkku, arvolla a, on yhtä suuri kuin; raja-arvo kun x lähestyy a; arvolla; murtoluku, f arvolla x, miinus f arvolla a, per, x miinus a, loppu murtoluku; on yhtä suuri kuin; raja-arvo kun h lähestyy 0; arvolla; murtoluku, f arvolla, auki sulku a plus h, kiinni sulku; miinus f arvolla a, per h, loppu murtoluku;");
}
#[test]
fn FinME_Quadratic_equation() {
let expr ="
";
test("fi", "ClearSpeak", expr ,"x on yhtä suuri kuin; murtoluku osoittaja; negatiivinen b plus-miinus; neliöjuuri b toiseen miinus 4 a b; ja nimittäjä 2 a;");
test("fi", "SimpleSpeak", expr, "x on yhtä suuri kuin; murtoluku, negatiivinen b plus-miinus; neliöjuuri b toiseen miinus 4 a b loppu juuri; per, 2 a, loppu murtoluku;")
}
#[test]
fn FinME_normal_distribution_e() {
let expr = "";
test("fi", "ClearSpeak", expr, "e potenssiin, negatiivinen 1 kahdesosa, kertaa; auki sulku; murtoluku osoittaja; x miinus myy; ja nimittäjä sigma; kiinni sulku toiseen, loppu potenssi");
test("fi", "SimpleSpeak", expr, "e potenssiin negatiivinen 1 kahdesosa, kertaa; auki sulku; murtoluku, x miinus myy, per sigma, loppu murtoluku; kiinni sulku toiseen");
}
#[test]
fn FinME_triangle_inequality() {
let expr = "
";
test("fi", "ClearSpeak", expr, "itseisarvo itseisarvo a, miinus itseisarvo b; on pienempi tai yhtä suuri kuin; itseisarvo a plus b; on pienempi tai yhtä suuri kuin; itseisarvo a, plus itseisarvo b,");
test("fi", "SimpleSpeak", expr, "itseisarvo itseisarvo a, miinus itseisarvo b; loppu itseisarvo; on pienempi tai yhtä suuri kuin; itseisarvo a plus b, loppu itseisarvo; on pienempi tai yhtä suuri kuin; itseisarvo a, plus itseisarvo b,");
}
#[test]
fn FinME_arithmetic_sum() {
let expr="
";
test("fi", "ClearSpeak", expr, "a ala 1 plus a ala 2 plus piste piste piste plus a ala n; on yhtä suuri kuin; n; murtoluku osoittaja; a ala 1 plus a ala 2; ja nimittäjä 2;");
test("fi", "SimpleSpeak", expr, "a ala 1 plus a ala 2 plus piste piste piste plus a ala n; on yhtä suuri kuin; n; murtoluku, a ala 1 plus a ala 2, per 2, loppu murtoluku;")
}
#[test]
fn FinME_geometric_sum() {
let expr ="
";
test("fi", "ClearSpeak", expr, "iso s ala n on yhtä suuri kuin; a ala 1 plus a ala 1 q plus a ala 1 q toiseen, plus piste piste piste plus, a ala 1 q potenssiin n miinus 1; on yhtä suuri kuin; a ala 1 kertaa; murtoluku osoittaja; 1 miinus q potenssiin n; ja nimittäjä 1 miinus q;");
test("fi", "SimpleSpeak", expr, "iso s ala n on yhtä suuri kuin; a ala 1 plus a ala 1 q plus a ala 1 q toiseen, plus piste piste piste plus, a ala 1 q potenssiin n miinus 1; on yhtä suuri kuin; a ala 1 kertaa; murtoluku, 1 miinus q potenssiin n, per, 1 miinus q, loppu murtoluku;")
}
#[test]
fn FinME_absolute_value_defition() {
let expr ="";
test("fi", "ClearSpeak", expr, "itseisarvo a; on yhtä suuri kuin; 2 tapausta, tapaus 1; a jos a; on suurempi tai yhtä suuri kuin 0; tapaus 2; negatiivinen a jos a; on pienempi kuin 0;");
test("fi", "SimpleSpeak", expr, "itseisarvo a; on yhtä suuri kuin; 2 tapausta, tapaus 1; a jos a; on suurempi tai yhtä suuri kuin 0; tapaus 2; negatiivinen a jos a; on pienempi kuin 0;")
}
#[test]
fn FinME_mroot_msup_rule() {
let expr = "";
test("fi", "ClearSpeak", expr, "a potenssiin m per n, on yhtä suuri kuin, nnes juuri a potenssiin m; on yhtä suuri kuin; auki sulku nnes juuri a; kiinni sulku potenssiin m");
test("fi", "SimpleSpeak", expr, "a potenssiin m per n; on yhtä suuri kuin, nnes juuri a potenssiin m loppu juuri; on yhtä suuri kuin; auki sulku nnes juuri a; kiinni sulku potenssiin m")
}
#[test]
fn FinME_newton_binomial() {
let expr = "";
test("fi", "ClearSpeak", expr, "auki sulku a plus b, kiinni sulku potenssiin n; on yhtä suuri kuin; summa käy, luvusta k on yhtä suuri kuin 0, lukuun n; n yli k a potenssiin n miinus k, b potenssiin k; on yhtä suuri kuin; summa käy, luvusta k on yhtä suuri kuin 0, lukuun n; murtoluku osoittaja; n kertoma; ja nimittäjä k kertoma, auki sulku n miinus k, kiinni sulku; kertoma;, a potenssiin n miinus k, b potenssiin k");
test("fi", "SimpleSpeak", expr, "auki sulku a plus b, kiinni sulku potenssiin n; on yhtä suuri kuin; summa käy, luvusta k on yhtä suuri kuin 0, lukuun n; n yli k a potenssiin n miinus k, b potenssiin k; on yhtä suuri kuin; summa käy, luvusta k on yhtä suuri kuin 0, lukuun n; murtoluku, n kertoma, per, k kertoma, auki sulku n miinus k, kiinni sulku; kertoma, loppu murtoluku;, a potenssiin n miinus k, b potenssiin k")
}
#[test]
fn FinME_secant_algorithm() {
let expr ="";
test("fi", "ClearSpeak", expr, "x ala n plus 1 loppu ala; on yhtä suuri kuin; x ala n miinus; murtoluku osoittaja; x ala n miinus, x ala n miinus 1 loppu ala; ja nimittäjä f arvolla, auki sulku x ala n kiinni sulku; miinus; f arvolla; auki sulku, x ala n miinus 1 loppu ala; kiinni sulku; f arvolla, auki sulku x ala n kiinni sulku");
test("fi", "SimpleSpeak", expr, "x ala n plus 1 loppu ala; on yhtä suuri kuin; x ala n miinus; murtoluku, x ala n miinus, x ala n miinus 1 loppu ala; per, f arvolla, auki sulku x ala n kiinni sulku; miinus; f arvolla; auki sulku, x ala n miinus 1 loppu ala; kiinni sulku, loppu murtoluku; f arvolla, auki sulku x ala n kiinni sulku");
}
#[test]
fn Fin_ME_law_of_sines() {
let expr = "";
test("fi", "ClearSpeak", expr, "murtoluku osoittaja a; ja nimittäjä sini arvolla alfa; on yhtä suuri kuin; murtoluku osoittaja b; ja nimittäjä sini arvolla beeta; on yhtä suuri kuin; murtoluku osoittaja c; ja nimittäjä sini arvolla gamma;");
test("fi", "SimpleSpeak", expr, "murtoluku, a per, sini arvolla alfa, loppu murtoluku; on yhtä suuri kuin; murtoluku, b per, sini arvolla beeta, loppu murtoluku; on yhtä suuri kuin; murtoluku, c per, sini arvolla gamma, loppu murtoluku;");
}
#[test]
fn FinME_vectors() {
let expr = "";
test("fi", "ClearSpeak", expr, "vektori v on yhtä suuri kuin; x ala 1 vektori i, plus; y ala 1 vektori j");
test("fi", "SimpleSpeak", expr, "vektori v on yhtä suuri kuin; x ala 1 vektori i, plus; y ala 1 vektori j");
}
#[test]
fn FinME_compound_derivate_rule() {
let expr = "";
test("fi", "ClearSpeak", expr, "iso d, auki sulku g yhdistetty f, kiinni sulku; on yhtä suuri kuin; iso d, g arvolla f arvolla x; on yhtä suuri kuin; g pilkku, arvolla f arvolla x; f pilkku, arvolla x");
test("fi", "SimpleSpeak", expr, "iso d, auki sulku g yhdistetty f, kiinni sulku; on yhtä suuri kuin; iso d, g arvolla f arvolla x; on yhtä suuri kuin; g pilkku, arvolla f arvolla x; f pilkku, arvolla x");
}
#[test]
fn FinME_integration_in_parts() {
let expr = "";
test("fi", "ClearSpeak", expr, "integraali f pilkku, arvolla x, g arvolla x, d x; on yhtä suuri kuin; f arvolla x, g arvolla x; miinus; integraali g pilkku, arvolla x, f arvolla x, d x");
test("fi", "SimpleSpeak", expr, "integraali f pilkku, arvolla x, g arvolla x, d x; on yhtä suuri kuin; f arvolla x, g arvolla x; miinus; integraali g pilkku, arvolla x, f arvolla x, d x");
}
#[test]
fn FinME_simpsons_rule() {
let expr = "";
test("fi", "ClearSpeak", expr, "integraali, alaraja a, yläraja b; f arvolla x, d x; on likimäärin yhtä suuri kuin; h per 3 kertaa; auki sulku; f arvolla, auki sulku x ala 0 kiinni sulku; plus, 4, f arvolla, auki sulku x ala 1 kiinni sulku; plus, 2, f arvolla, auki sulku x ala 2 kiinni sulku; plus, 4, f arvolla, auki sulku x ala 3 kiinni sulku; plus piste piste piste plus; 4; f arvolla; auki sulku, x ala n miinus 1 loppu ala; kiinni sulku; plus, f arvolla, auki sulku x ala n kiinni sulku; kiinni sulku");
test("fi", "SimpleSpeak", expr, "integraali, alaraja a, yläraja b; f arvolla x, d x; on likimäärin yhtä suuri kuin; h per 3, kertaa; auki sulku; f arvolla, auki sulku x ala 0 kiinni sulku; plus, 4, f arvolla, auki sulku x ala 1 kiinni sulku; plus, 2, f arvolla, auki sulku x ala 2 kiinni sulku; plus, 4, f arvolla, auki sulku x ala 3 kiinni sulku; plus piste piste piste plus; 4; f arvolla; auki sulku, x ala n miinus 1 loppu ala; kiinni sulku; plus, f arvolla, auki sulku x ala n kiinni sulku; kiinni sulku");
}
#[test]
fn FinME_binomials_cumulative_function() {
let expr = "";
test("fi", "ClearSpeak", expr, "iso p arvolla; auki sulku, iso x on pienempi tai yhtä suuri kuin k; kiinni sulku; on yhtä suuri kuin; summa käy, luvusta i on yhtä suuri kuin 0, lukuun itseisarvo k,; n yli i p potenssiin i kertaa; auki sulku 1 miinus p, kiinni sulku potenssiin n miinus i");
test("fi", "SimpleSpeak", expr, "iso p arvolla; auki sulku, iso x on pienempi tai yhtä suuri kuin k; kiinni sulku; on yhtä suuri kuin; summa käy, luvusta i on yhtä suuri kuin 0, lukuun itseisarvo k,; n yli i p potenssiin i kertaa; auki sulku 1 miinus p, kiinni sulku potenssiin n miinus i");
}
#[test]
fn FinME_standard_normal_disributon_cumul() {
let expr = "";
test("fi", "ClearSpeak", expr, "iso fii arvolla x, on yhtä suuri kuin; murtoluku osoittaja 1; ja nimittäjä neliöjuuri 2 pii; integraali, alaraja negatiivinen ääretön, yläraja x; e potenssiin negatiivinen murtoluku osoittaja; t toiseen; ja nimittäjä 2; d x");
test("fi", "SimpleSpeak", expr, "iso fii arvolla x, on yhtä suuri kuin; murtoluku, 1 per, neliöjuuri 2 pii loppu juuri; loppu murtoluku; integraali, alaraja negatiivinen ääretön, yläraja x; e potenssiin negatiivinen murtoluku, t toiseen, per 2, loppu murtoluku; d x");
}