/* 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 ru
 */
@RunWith(IcuTestFmwkRunner.class)
public class Test_ru extends LanguageTestRoot {

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

  /**
   * Constructor.
   */
  public Test_ru() {
    super("ru", false);
  }
}
