/// Tests for fractions /// includes simple fractions and more complex fractions /// also tests mixed fractions (implicit and explicit) use crate::common::*; #[test] fn common_fraction_half() { let expr = " 1 2 "; test("fi", "ClearSpeak", expr, "1 kahdesosa"); } #[test] fn common_fraction_thirds() { let expr = " 2 3 "; test("fi", "ClearSpeak", expr, "2 kolmasosaa"); } #[test] fn common_fraction_tenths() { let expr = " 17 10 "; test_prefs("fi", "ClearSpeak", vec![("Verbosity", "Medium"), ("ClearSpeak_Fractions", "Auto")], expr, "17 kymmenesosaa"); test_prefs("fi", "ClearSpeak", vec![("Verbosity", "Medium"), ("ClearSpeak_Fractions", "Ordinal")], expr, "17 kymmenesosaa"); } #[test] #[allow(non_snake_case)] fn not_ClearSpeak_common_fraction_tenths() { let expr = " 89 10 "; test_prefs("fi", "ClearSpeak", vec![("Verbosity", "Medium"), ("ClearSpeak_Fractions", "Auto")], expr, "89 per 10"); test_prefs("fi", "ClearSpeak", vec![("Verbosity", "Medium"), ("ClearSpeak_Fractions", "Ordinal")], expr, "89 kymmenesosaa"); } #[test] fn non_simple_fraction() { let expr = " x+y x-y "; test_prefs("fi", "ClearSpeak", vec![("Verbosity", "Medium"), ("ClearSpeak_Fractions", "Auto")], expr, "murtoluku osoittaja; x plus y; ja nimittäjä x miinus y;"); test_prefs("fi", "ClearSpeak", vec![("Verbosity", "Medium"), ("ClearSpeak_Fractions", "Ordinal")], expr, "murtoluku osoittaja; x plus y; ja nimittäjä x miinus y;"); test_prefs("fi", "ClearSpeak", vec![("Verbosity", "Medium"), ("ClearSpeak_Fractions", "Over")], expr, "x plus y per x miinus y"); test_prefs("fi", "ClearSpeak", vec![("Verbosity", "Medium"), ("ClearSpeak_Fractions", "FracOver")], expr, "murtoluku x plus y per x miinus y"); test_prefs("fi", "ClearSpeak", vec![("Verbosity", "Medium"), ("ClearSpeak_Fractions", "General")], expr, "murtoluku osoittaja; x plus y; ja nimittäjä x miinus y;"); test_prefs("fi", "ClearSpeak", vec![("Verbosity", "Medium"), ("ClearSpeak_Fractions", "EndFrac")], expr, "murtoluku osoittaja; x plus y; ja nimittäjä x miinus y; loppu murtoluku,"); test_prefs("fi", "ClearSpeak", vec![("Verbosity", "Medium"), ("ClearSpeak_Fractions", "GeneralEndFrac")], expr, "murtoluku osoittaja; x plus y; ja nimittäjä x miinus y; loppu murtoluku,"); test_prefs("fi", "ClearSpeak", vec![("Verbosity", "Medium"), ("ClearSpeak_Fractions", "OverEndFrac")], expr, "x plus y per x miinus y, loppu murtoluku,"); test_prefs("fi", "ClearSpeak", vec![("Verbosity", "Medium"), ("ClearSpeak_Fractions", "Per")], expr, "x plus y per x miinus y"); test_prefs("fi", "ClearSpeak", vec![("Verbosity", "Verbose"),("ClearSpeak_Fractions", "Auto")], expr, "murtoluku osoittaja; x plus y; ja nimittäjä x miinus y; loppu murtoluku,"); } #[test] fn mixed_number() { let expr = " 3 1 2 "; test("fi", "ClearSpeak", expr, "3 ja 1 kahdesosa"); } #[test] fn explicit_mixed_number() { let expr = " 3 1 8 "; test("fi", "ClearSpeak", expr, "3 ja 1 kahdeksasosa"); } #[test] fn mixed_number_big() { let expr = " 3 7 83 "; test("fi", "ClearSpeak", expr, "3 ja 7 per 83"); } #[test] fn simple_text() { let expr = " rise run "; test("fi", "ClearSpeak", expr, "rise per run"); } #[test] fn number_and_text() { let expr = " 2miles 3gallons "; test("fi", "ClearSpeak", expr, "2 miles per 3 gallons"); } #[test] fn nested_simple_fractions() { let expr = " 1 2 2 3 "; test_prefs("fi", "ClearSpeak", vec![("ClearSpeak_Fractions", "Auto")], expr, "1 kahdesosa per 2 kolmasosaa"); test_prefs("fi", "ClearSpeak", vec![("ClearSpeak_Fractions", "Ordinal")], expr, "1 kahdesosa per 2 kolmasosaa"); test_prefs("fi", "ClearSpeak", vec![("ClearSpeak_Fractions", "Over")], expr, "1 per 2 per 2 per 3"); test_prefs("fi", "ClearSpeak", vec![("ClearSpeak_Fractions", "FracOver")], expr, "murtoluku murtoluku 1 per 2 per murtoluku 2 per 3"); test_prefs("fi", "ClearSpeak", vec![("ClearSpeak_Fractions", "General")], expr, "murtoluku osoittaja murtoluku osoittaja 1; ja nimittäjä 2; ja nimittäjä murtoluku osoittaja 2; ja nimittäjä 3;"); test_prefs("fi", "ClearSpeak", vec![("ClearSpeak_Fractions", "EndFrac")], expr, "1 kahdesosa per 2 kolmasosaa"); test_prefs("fi", "ClearSpeak", vec![("ClearSpeak_Fractions", "GeneralEndFrac")], expr, "murtoluku osoittaja murtoluku osoittaja 1; ja nimittäjä 2; loppu murtoluku; ja nimittäjä murtoluku osoittaja 2; ja nimittäjä 3; loppu murtoluku; loppu murtoluku,"); test_prefs("fi", "ClearSpeak", vec![("ClearSpeak_Fractions", "OverEndFrac")], expr, "1 per 2, loppu murtoluku, per 2 per 3, loppu murtoluku; loppu murtoluku,"); } #[test] fn semi_nested_fraction() { let expr = " 2 3 x 6 "; test("fi", "ClearSpeak", expr, "2 kolmasosaa x per 6"); } #[test] fn general_nested_fraction() { let expr = " 10 n 2 n "; test("fi", "ClearSpeak", expr, "murtoluku osoittaja; 10 per n; ja nimittäjä 2 per n;"); } #[test] fn complex_nested_fraction() { let expr = " n + 10 n 2 n "; test("fi", "ClearSpeak", expr, "murtoluku osoittaja; murtoluku osoittaja; n plus 10; ja nimittäjä n; ja nimittäjä 2 per n;"); } #[test] fn simple_function() { let expr = "f(x)2"; test_prefs("fi", "ClearSpeak", vec![("Verbosity", "Medium"), ("ClearSpeak_Fractions", "Auto")], expr, "f arvolla x per 2"); test_prefs("fi", "ClearSpeak", vec![("Verbosity", "Verbose"), ("ClearSpeak_Fractions", "Auto")], expr, "f arvolla x per 2, loppu murtoluku,"); } #[test] fn function_over_function() { let expr = " f(x) g(x) "; test_prefs("fi", "ClearSpeak", vec![("Verbosity", "Medium"), ("ClearSpeak_Fractions", "Auto")], expr, "f arvolla x per g arvolla x"); test_prefs("fi", "ClearSpeak", vec![("Verbosity", "Verbose"), ("ClearSpeak_Fractions", "Auto")], expr, "f arvolla x per g arvolla x, loppu murtoluku,"); } #[test] fn non_simple_function_over_function() { let expr = " f(x+1) g(x) "; test_prefs("fi", "ClearSpeak", vec![("Verbosity", "Medium"), ("ClearSpeak_Fractions", "Auto")], expr, "murtoluku osoittaja; f arvolla, auki sulku x plus 1, kiinni sulku; ja nimittäjä g arvolla x;"); test_prefs("fi", "ClearSpeak", vec![("Verbosity", "Verbose"), ("ClearSpeak_Fractions", "Auto")], expr, "murtoluku osoittaja; f arvolla, auki sulku x plus 1, kiinni sulku; ja nimittäjä g arvolla x; loppu murtoluku,"); } #[test] fn binomial() { let expr = " 2 ( 7 3 ) "; test("fi", "ClearSpeak", expr, "2 kertaa 7 yli 3"); }