Dave Jarvis' Repositories

git clone https://repo.autonoma.ca/repo/keenwrite.git

Insert additional pluralize entries into map

AuthorDaveJarvis <email>
Date2020-10-10 16:11:31 GMT-0700
Commit67ec343f24059b7fa507c2b9bb75fae6d7dd7bda
Parent592dd04
Delta28 lines added, 7 lines removed, 21-line increase
src/test/java/com/keenwrite/r/PluralizeTest.java
package com.keenwrite.r;
-import com.keenwrite.util.Pair;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
import java.util.Map;
import static java.lang.String.format;
+import static java.util.Map.entry;
+import static java.util.Map.ofEntries;
import static org.junit.jupiter.api.Assertions.assertEquals;
+/**
+ * Test that English pluralization rules produce expected values.
+ */
public class PluralizeTest {
private static final ScriptEngine ENGINE =
(new ScriptEngineManager()).getEngineByName( "Renjin" );
- private static final Map<Pair<String, Integer>, String> TESTS = Map.of(
- new Pair<>( "wolf", 2 ), "wolves"
+ private static final Map<String, String> PLURAL_MAP = ofEntries(
+ entry( "beef", "beefs" ),
+ entry( "brother", "brothers" ),
+ entry( "child", "children" ),
+ entry( "cow", "cows" ),
+ entry( "ephemeris", "ephemerides" ),
+ entry( "genie", "genies" ),
+ entry( "money", "moneys" ),
+ entry( "mongoose", "mongooses" ),
+ entry( "mythos", "mythoi" ),
+ entry( "octopus", "octopuses" ),
+ entry( "ox", "oxen" ),
+ entry( "soliloquy", "soliloquies" ),
+ entry( "trilby", "trilbys" ),
+ entry( "wolf", "wolves" )
);
@BeforeAll
static void setup() throws ScriptException {
r( "setwd( 'R' );" );
r( "source( 'pluralize.R' );" );
}
@Test
+ @SuppressWarnings("UnnecessaryLocalVariable")
public void test_Pluralize_SingularForms_PluralForms()
throws ScriptException {
- for( final var entry : TESTS.keySet() ) {
- final var expected = TESTS.get( entry );
- final var actual = pluralize( entry.getKey(), entry.getValue() );
+ for( final var key : PLURAL_MAP.keySet() ) {
+ final var expectedSingular = key;
+ final var expectedPlural = PLURAL_MAP.get( key );
+ final var actualSingular = pluralize( key, 1 );
+ final var actualPlural = pluralize( key, 2 );
- assertEquals( expected, actual );
+ assertEquals( expectedSingular, actualSingular );
+ assertEquals( expectedPlural, actualPlural );
}
}