/// 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("sv", "ClearSpeak", expr, ", en halv"); } #[test] fn common_fraction_thirds() { let expr = " 2 3 "; test("sv", "ClearSpeak", expr, ", 2 tredjedelar"); } #[test] fn common_fraction_tenths() { let expr = " 17 10 "; test_prefs("sv", "ClearSpeak", vec![("Verbosity", "Medium"), ("ClearSpeak_Fractions", "Auto")], expr, ", 17 tiondelar"); } #[test] #[allow(non_snake_case)] fn not_ClearSpeak_common_fraction_tenths() { let expr = " 89 10 "; test_prefs("sv", "ClearSpeak", vec![("Verbosity", "Medium"), ("ClearSpeak_Fractions", "Auto")], expr, ", bråk, 89 genom 10, slut bråk,"); // test_prefs("sv", "ClearSpeak", vec![("Verbosity", "Medium"), ("ClearSpeak_Fractions", "Ordinal")], expr, "89 tenths"); } #[test] fn non_simple_fraction() { let expr = " x+y x-y "; test_prefs("sv", "ClearSpeak", vec![("Verbosity", "Medium"), ("ClearSpeak_Fractions", "Auto")], expr, "division med täljaren; x plus y; och nämnaren x minus y;"); test_prefs("sv", "ClearSpeak", vec![("Verbosity", "Medium"), ("ClearSpeak_Fractions", "Ordinal")], expr, "division med täljaren; x plus y; och nämnaren x minus y;"); test_prefs("sv", "ClearSpeak", vec![("Verbosity", "Medium"), ("ClearSpeak_Fractions", "Over")], expr, ", division, x plus y genom x minus y, slut division,"); test_prefs("sv", "ClearSpeak", vec![("Verbosity", "Medium"), ("ClearSpeak_Fractions", "FracOver")], expr, ", division, x plus y genom x minus y, slut division,"); test_prefs("sv", "ClearSpeak", vec![("Verbosity", "Medium"), ("ClearSpeak_Fractions", "General")], expr, "division med täljaren; x plus y; och nämnaren x minus y;"); test_prefs("sv", "ClearSpeak", vec![("Verbosity", "Medium"), ("ClearSpeak_Fractions", "EndFrac")], expr, "division med täljaren; x plus y; och nämnaren x minus y; slut division,"); test_prefs("sv", "ClearSpeak", vec![("Verbosity", "Medium"), ("ClearSpeak_Fractions", "GeneralEndFrac")], expr, "division med täljaren; x plus y; och nämnaren x minus y; slut division,"); test_prefs("sv", "ClearSpeak", vec![("Verbosity", "Medium"), ("ClearSpeak_Fractions", "OverEndFrac")], expr, ", division, x plus y genom x minus y, slut division,"); test_prefs("sv", "ClearSpeak", vec![("Verbosity", "Medium"), ("ClearSpeak_Fractions", "Per")], expr, "x plus y per x minus y"); test_prefs("sv", "ClearSpeak", vec![("Verbosity", "Verbose"),("ClearSpeak_Fractions", "Auto")], expr, "division med täljaren; x plus y; och nämnaren x minus y; slut division,"); } #[test] fn mixed_number() { let expr = " 3 1 2 "; test("sv", "ClearSpeak", expr, "3 och, en halv"); } #[test] fn explicit_mixed_number() { let expr = " 3 1 8 "; test("sv", "ClearSpeak", expr, "3 och, en åttondel"); } #[test] fn mixed_number_big() { let expr = " 3 7 83 "; test("sv", "ClearSpeak", expr, "3 och; bråk, 7 genom 83, slut bråk,"); } #[test] fn simple_text() { let expr = " rise run "; test("sv", "ClearSpeak", expr, ", rise genom run"); } #[test] fn number_and_text() { let expr = " 2miles 3gallons "; test("sv", "ClearSpeak", expr, ", 2 miles genom 3 gallons"); } #[test] fn nested_simple_fractions() { let expr = " 1 2 2 3 "; test_prefs("sv", "ClearSpeak", vec![("ClearSpeak_Fractions", "Auto")], expr, ", division; en halv genom, 2 tredjedelar, slut division,"); test_prefs("sv", "ClearSpeak", vec![("ClearSpeak_Fractions", "Ordinal")], expr, ", division; en halv genom, 2 tredjedelar, slut division,"); test_prefs("sv", "ClearSpeak", vec![("ClearSpeak_Fractions", "Over")], expr, ", division; bråk, 1 genom 2, slut bråk, genom, bråk, 2 genom 3, slut bråk; slut division,"); test_prefs("sv", "ClearSpeak", vec![("ClearSpeak_Fractions", "FracOver")], expr, ", division; bråk, 1 genom 2, slut bråk, genom, bråk, 2 genom 3, slut bråk; slut division,"); test_prefs("sv", "ClearSpeak", vec![("ClearSpeak_Fractions", "General")], expr, "division med täljaren division med täljaren 1; och nämnaren 2; och nämnaren division med täljaren 2; och nämnaren 3;"); test_prefs("sv", "ClearSpeak", vec![("ClearSpeak_Fractions", "EndFrac")], expr, ", division; en halv genom, 2 tredjedelar, slut division,"); test_prefs("sv", "ClearSpeak", vec![("ClearSpeak_Fractions", "GeneralEndFrac")], expr, "division med täljaren division med täljaren 1; och nämnaren 2; slut division; och nämnaren division med täljaren 2; och nämnaren 3; slut division; slut division,"); test_prefs("sv", "ClearSpeak", vec![("ClearSpeak_Fractions", "OverEndFrac")], expr, ", division; bråk, 1 genom 2, slut bråk, genom, bråk, 2 genom 3, slut bråk; slut division,"); } #[test] fn semi_nested_fraction() { let expr = " 2 3 x 6 "; test("sv", "ClearSpeak", expr, ", division; 2 tredjedelar x genom 6, slut division,"); } #[test] fn general_nested_fraction() { let expr = " 10 n 2 n "; test("sv", "ClearSpeak", expr, "division med täljaren; bråk, 10 genom n, slut bråk; och nämnaren, bråk, 2 genom n, slut bråk;"); } #[test] fn complex_nested_fraction() { let expr = " n + 10 n 2 n "; test("sv", "ClearSpeak", expr, "division med täljaren; division med täljaren; n plus 10; och nämnaren n; och nämnaren, bråk, 2 genom n, slut bråk;"); } #[test] fn simple_function() { let expr = "f(x)2"; test_prefs("sv", "ClearSpeak", vec![("Verbosity", "Medium"), ("ClearSpeak_Fractions", "Auto")], expr, ", division, f av x genom 2, slut division,"); test_prefs("sv", "ClearSpeak", vec![("Verbosity", "Verbose"), ("ClearSpeak_Fractions", "Auto")], expr, ", division, f av x genom 2, slut division,"); } #[test] fn function_over_function() { let expr = " f(x) g(x) "; test_prefs("sv", "ClearSpeak", vec![("Verbosity", "Medium"), ("ClearSpeak_Fractions", "Auto")], expr, ", division, f av x genom g av x, slut division,"); test_prefs("sv", "ClearSpeak", vec![("Verbosity", "Verbose"), ("ClearSpeak_Fractions", "Auto")], expr, ", division, f av x genom g av x, slut division,"); } #[test] fn non_simple_function_over_function() { let expr = " f(x+1) g(x) "; test_prefs("sv", "ClearSpeak", vec![("Verbosity", "Medium"), ("ClearSpeak_Fractions", "Auto")], expr, "division med täljaren; f av, vänster-parentes; x plus 1; höger-parentes; och nämnaren g av x;"); test_prefs("sv", "ClearSpeak", vec![("Verbosity", "Verbose"), ("ClearSpeak_Fractions", "Auto")], expr, "division med täljaren; f av, vänster-parentes; x plus 1; höger-parentes; och nämnaren g av x; slut division,"); } #[test] fn binomial() { let expr = " 2 ( 7 3 ) "; test("sv", "ClearSpeak", expr, "2 gånger, 7 över 3"); }