1 /* GENERATED SOURCE. DO NOT MODIFY. */ 2 // 2016 and later: Unicode, Inc. and others. 3 // License & terms of use: http://www.unicode.org/copyright.html#License 4 /* 5 ******************************************************************************* 6 * Copyright (C) 2003-2012, Google, International Business Machines Corporation and * 7 * others. All Rights Reserved. * 8 ******************************************************************************* 9 */ 10 package android.icu.dev.test.util; 11 12 import java.util.Arrays; 13 import java.util.List; 14 15 import org.junit.Test; 16 import org.junit.runner.RunWith; 17 import org.junit.runners.JUnit4; 18 19 import android.icu.dev.test.TestFmwk; 20 import android.icu.util.GenderInfo; 21 import android.icu.util.GenderInfo.Gender; 22 import android.icu.util.ULocale; 23 import android.icu.testsharding.MainTestShard; 24 25 @MainTestShard 26 @RunWith(JUnit4.class) 27 public class GenderInfoTest extends TestFmwk { 28 public static GenderInfo NEUTRAL_LOCALE = GenderInfo.getInstance(ULocale.ENGLISH); 29 public static GenderInfo MIXED_NEUTRAL_LOCALE = GenderInfo.getInstance(new ULocale("is")); 30 public static GenderInfo MALE_TAINTS_LOCALE = GenderInfo.getInstance(ULocale.FRENCH); 31 32 @Test 33 public void TestEmpty() { 34 // Gender of the empty list is always OTHER regardless of gender style. 35 check(Gender.OTHER, Gender.OTHER, Gender.OTHER); 36 } 37 38 @Test 39 public void TestOne() { 40 // Gender of single item list is always gender of sole item regardless of 41 // gender style. 42 for (Gender g : Gender.values()) { 43 check(g, g, g, g); 44 } 45 } 46 47 @Test 48 public void TestOther() { 49 check(Gender.OTHER, Gender.MALE, Gender.MALE, Gender.MALE, Gender.MALE); 50 check(Gender.OTHER, Gender.OTHER, Gender.MALE, Gender.MALE, Gender.FEMALE); 51 check(Gender.OTHER, Gender.OTHER, Gender.MALE, Gender.MALE, Gender.OTHER); 52 53 check(Gender.OTHER, Gender.OTHER, Gender.MALE, Gender.FEMALE, Gender.MALE); 54 check(Gender.OTHER, Gender.FEMALE, Gender.FEMALE, Gender.FEMALE, Gender.FEMALE); 55 check(Gender.OTHER, Gender.OTHER, Gender.MALE, Gender.FEMALE, Gender.OTHER); 56 57 check(Gender.OTHER, Gender.OTHER, Gender.MALE, Gender.OTHER, Gender.MALE); 58 check(Gender.OTHER, Gender.OTHER, Gender.MALE, Gender.OTHER, Gender.FEMALE); 59 check(Gender.OTHER, Gender.OTHER, Gender.MALE, Gender.OTHER, Gender.OTHER); 60 } 61 62 public void check(Gender neutral, Gender mixed, Gender taints, Gender... genders) { 63 List<Gender> mixed0 = Arrays.asList(genders); 64 assertEquals("neutral " + mixed0, neutral, NEUTRAL_LOCALE.getListGender(mixed0)); 65 assertEquals("mixed neutral " + mixed0, mixed, MIXED_NEUTRAL_LOCALE.getListGender(mixed0)); 66 assertEquals("male taints " + mixed0, taints, MALE_TAINTS_LOCALE.getListGender(mixed0)); 67 } 68 69 @Test 70 public void TestFallback() { 71 assertEquals("Strange locale = root", GenderInfo.getInstance(ULocale.ROOT), GenderInfo.getInstance(new ULocale("xxx"))); 72 assertEquals("Strange locale = root", GenderInfo.getInstance(ULocale.FRANCE), GenderInfo.getInstance(ULocale.CANADA_FRENCH)); 73 } 74 } 75