/* GENERATED SOURCE. DO NOT MODIFY. */
/*
******************************************************************************
* Copyright (C) 2007, International Business Machines Corporation and        *
* others. All Rights Reserved.                                               *
******************************************************************************
*/

// Copyright 2006 Google Inc.  All Rights Reserved.

package android.icu.dev.test.duration.languages;

import android.icu.dev.test.duration.LanguageTestRoot;
import org.junit.runner.RunWith;
import android.icu.junit.IcuTestFmwkRunner;

/**
 * Test cases for es
 */
@RunWith(IcuTestFmwkRunner.class)
public class Test_es extends LanguageTestRoot {

  /**
   * Invoke the tests.
   */
  public static void main(String[] args) {
      new Test_es().run(args);
  }

  /**
   * Constructor.
   */
  public Test_es() {
    super("es", false);
  }
}
