Home | History | Annotate | Download | only in util
      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