Skip to content

Commit a6ec3b5

Browse files
Merge pull request #1 from nlbdev/nb
merge
2 parents 1dc93e7 + c5fdde0 commit a6ec3b5

1 file changed

Lines changed: 366 additions & 0 deletions

File tree

tests/Languages/nb/units.rs

Lines changed: 366 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -474,4 +474,370 @@ fn test_mtext_inference() {
474474
<mo>]</mo></math>"#;
475475
test_prefs("nb", "SimpleSpeak", vec![("DecimalSeparators", ","), ("BlockSeparators", ".")], expr,
476476
"start hakeparentes; 1 tonn, komma; 2 peta-ampere, komma, 3 pascal, komma; 4,5 milli-tesla; slutt hakeparentes");
477+
}
478+
479+
/// Tests for fractions followed by units
480+
481+
#[test]
482+
fn one_neuter_unit() {
483+
let expr = r#"<math>
484+
<mn>1</mn><mi mathvariant="normal" intent=":unit">min</mi>
485+
</math>"#;
486+
test("nb", "SimpleSpeak", expr, "ett minutt");
487+
test("nb", "ClearSpeak", expr, "ett minutt");
488+
}
489+
490+
491+
#[test]
492+
fn one_masculine_feminine_unit() {
493+
let expr = r#"<math>
494+
<mn>1</mn><mi mathvariant="normal" intent=":unit">hr</mi>
495+
</math>"#;
496+
test("nb", "SimpleSpeak", expr, "én time");
497+
test("nb", "ClearSpeak", expr, "én time");
498+
}
499+
500+
501+
#[test]
502+
fn half_neuter_unit() {
503+
let expr = r#"<math>
504+
<mfrac>
505+
<mn>1</mn><mn>2</mn>
506+
</mfrac>
507+
<mi mathvariant="normal" intent=":unit">sek</mi>
508+
</math>"#;
509+
test("nb", "SimpleSpeak", expr, "ett halvt sekund");
510+
test("nb", "ClearSpeak", expr, "ett halvt sekund");
511+
}
512+
513+
514+
#[test]
515+
fn half_masculine_feminine_unit() {
516+
let expr = r#"<math>
517+
<mfrac>
518+
<mn>1</mn><mn>2</mn>
519+
</mfrac>
520+
<mi mathvariant="normal" intent=":unit">l</mi>
521+
</math>"#;
522+
test("nb", "SimpleSpeak", expr, "én halv liter");
523+
test("nb", "ClearSpeak", expr, "én halv liter");
524+
}
525+
526+
527+
#[test]
528+
fn one_third_neuter_unit() {
529+
let expr = r#"<math>
530+
<mfrac>
531+
<mn>1</mn><mn>3</mn>
532+
</mfrac>
533+
<mi mathvariant="normal" intent=":unit">as</mi>
534+
</math>"#;
535+
test("nb", "SimpleSpeak", expr, "ett tredjedels buesekund");
536+
test("nb", "ClearSpeak", expr, "ett tredjedels buesekund");
537+
}
538+
539+
540+
#[test]
541+
fn one_third_masculine_feminine_unit() {
542+
let expr = r#"<math>
543+
<mfrac>
544+
<mn>1</mn><mn>3</mn>
545+
</mfrac>
546+
<mi mathvariant="normal" intent=":unit">m</mi>
547+
</math>"#;
548+
test("nb", "SimpleSpeak", expr, "én tredjedels meter");
549+
test("nb", "ClearSpeak", expr, "én tredjedels meter");
550+
}
551+
552+
553+
#[test]
554+
fn five_thirds_unit() {
555+
let expr = r#"<math>
556+
<mfrac>
557+
<mn>5</mn><mn>3</mn>
558+
</mfrac>
559+
<mi mathvariant="normal" intent=":unit">hr</mi>
560+
</math>"#;
561+
test("nb", "SimpleSpeak", expr, "5 tredjedels time");
562+
test("nb", "ClearSpeak", expr, "5 tredjedels time");
563+
}
564+
565+
566+
#[test]
567+
fn four_eighths_unit() {
568+
let expr = r#"<math>
569+
<mfrac>
570+
<mn>4</mn><mn>8</mn>
571+
</mfrac>
572+
<mi mathvariant="normal" intent=":unit">g</mi>
573+
</math>"#;
574+
test("nb", "SimpleSpeak", expr, "4 åttedels gram");
575+
test("nb", "ClearSpeak", expr, "4 åttedels gram");
576+
}
577+
578+
579+
#[test]
580+
fn six_ninths_unit() {
581+
let expr = r#"<math>
582+
<mfrac>
583+
<mn>6</mn><mn>9</mn>
584+
</mfrac>
585+
<mi mathvariant="normal" intent=":unit">hr</mi>
586+
</math>"#;
587+
test("nb", "SimpleSpeak", expr, "6 nidels time");
588+
test("nb", "ClearSpeak", expr, "6 nidels time");
589+
}
590+
591+
592+
#[test]
593+
fn mixed_fraction__half_neuter_unit() {
594+
let expr = r#"<math>
595+
<mn>3</mn>
596+
<mfrac>
597+
<mn>1</mn><mn>2</mn>
598+
</mfrac>
599+
<mi mathvariant="normal" intent=":unit">min</mi>
600+
</math>"#;
601+
test("nb", "SimpleSpeak", expr, "3 og et halvt minutt");
602+
test("nb", "ClearSpeak", expr, "3 og et halvt minutt");
603+
}
604+
605+
606+
#[test]
607+
fn mixed_fraction__half_masculine_feminine_unit() {
608+
let expr = r#"<math>
609+
<mn>3</mn>
610+
<mfrac>
611+
<mn>1</mn><mn>2</mn>
612+
</mfrac>
613+
<mi mathvariant="normal" intent=":unit">hr</mi>
614+
</math>"#;
615+
test("nb", "SimpleSpeak", expr, "3 og én halv time");
616+
test("nb", "ClearSpeak", expr, "3 og én halv time");
617+
}
618+
619+
620+
#[test]
621+
fn mixed_fractions_third_neuter_unit() {
622+
let expr = r#"<math>
623+
<mn>1</mn>
624+
<mfrac>
625+
<mn>1</mn><mn>3</mn>
626+
</mfrac>
627+
<mi mathvariant="normal" intent=":unit">min</mi>
628+
</math>"#;
629+
test("nb", "SimpleSpeak", expr, "ett og ett tredjedels minutt");
630+
test("nb", "ClearSpeak", expr, "ett og ett tredjedels minutt");
631+
}
632+
633+
634+
#[test]
635+
fn mixed_fractions_third_masculine_feminine_unit() {
636+
let expr = r#"<math>
637+
<mn>1</mn>
638+
<mfrac>
639+
<mn>1</mn><mn>3</mn>
640+
</mfrac>
641+
<mi mathvariant="normal" intent=":unit">hr</mi>
642+
</math>"#;
643+
test("nb", "SimpleSpeak", expr, "én og én tredjedels time");
644+
test("nb", "ClearSpeak", expr, "én og én tredjedels time");
645+
}
646+
647+
#[test]
648+
fn mixed_fractions_two_and_two_thirds_unit() {
649+
let expr = r#"<math>
650+
<mn>2</mn>
651+
<mfrac>
652+
<mn>2</mn><mn>3</mn>
653+
</mfrac>
654+
<mi mathvariant="normal" intent=":unit">hr</mi>
655+
</math>"#;
656+
test("nb", "SimpleSpeak", expr, "2 og 2 tredjedels time");
657+
test("nb", "ClearSpeak", expr, "2 og 2 tredjedels time");
658+
}
659+
660+
#[test]
661+
fn mixed_fractions_four_and_five_sevenths_unit() {
662+
let expr = r#"<math>
663+
<mn>4</mn>
664+
<mfrac>
665+
<mn>5</mn><mn>7</mn>
666+
</mfrac>
667+
<mi mathvariant="normal" intent=":unit">min</mi>
668+
</math>"#;
669+
test("nb", "SimpleSpeak", expr, "4 og 5 sjudels minutt");
670+
test("nb", "ClearSpeak", expr, "4 og 5 sjudels minutt");
671+
}
672+
673+
674+
#[test]
675+
fn fraction_with_units_neuter_unit() {
676+
let expr = r#"<math>
677+
<mfrac><mn>1</mn><mn>2</mn></mfrac>
678+
<mfrac><mi mathvariant="normal" intent=":unit">g</mi><mi mathvariant="normal" intent=":unit">hr</mi></mfrac>
679+
</math>"#;
680+
test("nb", "SimpleSpeak", expr, "ett halvt gram per time");
681+
test("nb", "ClearSpeak", expr, "ett halvt gram per time");
682+
}
683+
684+
685+
#[test]
686+
fn fraction_with_units_masculine_feminine_unit() {
687+
let expr = r#"<math>
688+
<mfrac><mn>1</mn><mn>2</mn></mfrac>
689+
<mfrac><mi mathvariant="normal" intent=":unit">m</mi><mi mathvariant="normal" intent=":unit">sek</mi></mfrac>
690+
</math>"#;
691+
test("nb", "SimpleSpeak", expr, "én halv meter per sekund");
692+
test("nb", "ClearSpeak", expr, "én halv meter per sekund");
693+
}
694+
695+
#[test]
696+
fn fraction_with_units_2_neuter_unit() {
697+
let expr = r#"<math>
698+
<mfrac>
699+
<mrow><mn>1</mn><mi mathvariant="normal" intent=":unit">g</mi></mrow>
700+
<mrow><mn>3</mn><mi mathvariant="normal" intent=":unit">hr</mi></mrow>
701+
</mfrac>
702+
</math>"#;
703+
test("nb", "SimpleSpeak", expr, "brøk, ett gram, over, 3 timer, slutt brøk");
704+
test("nb", "ClearSpeak", expr, "brøken med teller ett gram; og nevner 3 timer");
705+
}
706+
707+
708+
#[test]
709+
fn fraction_with_units_2_masculine_feminine_unit() {
710+
let expr = r#"<math>
711+
<mfrac>
712+
<mrow><mn>1</mn><mi mathvariant="normal" intent=":unit">m</mi></mrow>
713+
<mrow><mn>3</mn><mi mathvariant="normal" intent=":unit">sek</mi></mrow>
714+
</mfrac>
715+
</math>"#;
716+
test("nb", "SimpleSpeak", expr, "brøk, én meter, over, 3 sekunder, slutt brøk");
717+
test("nb", "ClearSpeak", expr, "brøken med teller én meter; og nevner 3 sekunder");
718+
}
719+
720+
721+
#[test]
722+
fn fraction_not_ordinal_units_neuter() {
723+
let expr = r#"<math>
724+
<mfrac><mn>3</mn><mn>11</mn></mfrac><mi mathvariant="normal" intent=":unit">min</mi>
725+
</math>"#;
726+
test("nb", "SimpleSpeak", expr, "3 over 11, minutter");
727+
test("nb", "ClearSpeak", expr, "3 over 11 minutter");
728+
}
729+
730+
731+
#[test]
732+
fn fraction_not_ordinal_units_masculine_feminine() {
733+
let expr = r#"<math>
734+
<mfrac><mn>3</mn><mn>11</mn></mfrac><mi mathvariant="normal" intent=":unit">hr</mi>
735+
</math>"#;
736+
test("nb", "SimpleSpeak", expr, "3 over 11, timer");
737+
test("nb", "ClearSpeak", expr, "3 over 11 timer");
738+
}
739+
740+
#[test]
741+
fn fraction_not_ordinal_2_units_neuter() {
742+
let expr = r#"<math>
743+
<mfrac><mn>7</mn><mn>21</mn></mfrac><mi mathvariant="normal" intent=":unit">min</mi>
744+
</math>"#;
745+
test("nb", "SimpleSpeak", expr, "7 over 21, minutter");
746+
test("nb", "ClearSpeak", expr, "7 over 21 minutter");
747+
}
748+
749+
750+
#[test]
751+
fn fraction_not_ordinal_2_units_masculine_feminine() {
752+
let expr = r#"<math>
753+
<mfrac><mn>7</mn><mn>21</mn></mfrac><mi mathvariant="normal" intent=":unit">hr</mi>
754+
</math>"#;
755+
test("nb", "SimpleSpeak", expr, "7 over 21, timer");
756+
test("nb", "ClearSpeak", expr, "7 over 21 timer");
757+
}
758+
759+
/// Fractions followed by units with prefix.
760+
761+
#[test]
762+
fn one_neuter_unit_prefix() {
763+
let expr = r#"<math>
764+
<mn>1</mn><mi mathvariant="normal" intent=":unit">mg</mi>
765+
</math>"#;
766+
test("nb", "SimpleSpeak", expr, "ett milli-gram");
767+
test("nb", "ClearSpeak", expr, "ett milli-gram");
768+
}
769+
770+
771+
#[test]
772+
fn one_masculine_feminine_unit_prefix() {
773+
let expr = r#"<math>
774+
<mn>1</mn><mi mathvariant="normal" intent=":unit">µm</mi>
775+
</math>"#;
776+
test("nb", "SimpleSpeak", expr, "én mikro-meter");
777+
test("nb", "ClearSpeak", expr, "én mikro-meter");
778+
}
779+
780+
781+
#[test]
782+
fn half_neuter_unit_prefix() {
783+
let expr = r#"<math>
784+
<mfrac>
785+
<mn>1</mn><mn>2</mn>
786+
</mfrac>
787+
<mi mathvariant="normal" intent=":unit">nsek</mi>
788+
</math>"#;
789+
test("nb", "SimpleSpeak", expr, "ett halvt nano-sekund");
790+
test("nb", "ClearSpeak", expr, "ett halvt nano-sekund");
791+
}
792+
793+
794+
#[test]
795+
796+
fn mixed_fractions_third_masculine_feminine_unit_prefix() {
797+
let expr = r#"<math>
798+
<mn>1</mn>
799+
<mfrac>
800+
<mn>1</mn><mn>3</mn>
801+
</mfrac>
802+
<mi mathvariant="normal" intent=":unit">dN</mi>
803+
</math>"#;
804+
test("nb", "SimpleSpeak", expr, "én og én tredjedels desi-newton");
805+
test("nb", "ClearSpeak", expr, "én og én tredjedels desi-newton");
806+
}
807+
808+
809+
#[test]
810+
811+
fn mixed_fractions_four_and_five_sevenths_unit_prefix() {
812+
let expr = r#"<math>
813+
<mn>4</mn>
814+
<mfrac>
815+
<mn>5</mn><mn>7</mn>
816+
</mfrac>
817+
<mi mathvariant="normal" intent=":unit">nas</mi>
818+
</math>"#;
819+
test("nb", "SimpleSpeak", expr, "4 og 5 sjudels nano-buesekund");
820+
test("nb", "ClearSpeak", expr, "4 og 5 sjudels nano-buesekund");
821+
}
822+
823+
824+
#[test]
825+
826+
fn fraction_not_ordinal_2_units_neuter_prefix() {
827+
let expr = r#"<math>
828+
<mfrac><mn>7</mn><mn>21</mn></mfrac><mi mathvariant="normal" intent=":unit">nsek</mi>
829+
</math>"#;
830+
test("nb", "SimpleSpeak", expr, "7 over 21, nano-sekunder");
831+
test("nb", "ClearSpeak", expr, "7 over 21 nano-sekunder");
832+
}
833+
834+
835+
#[test]
836+
837+
fn fraction_not_ordinal_2_units_masculine_feminine_prefix() {
838+
let expr = r#"<math>
839+
<mfrac><mn>7</mn><mn>21</mn></mfrac><mi mathvariant="normal" intent=":unit">ml</mi>
840+
</math>"#;
841+
test("nb", "SimpleSpeak", expr, "7 over 21, milli-liter");
842+
test("nb", "ClearSpeak", expr, "7 over 21 milli-liter");
477843
}

0 commit comments

Comments
 (0)