// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html#License
/*
******************************************************************************
* Copyright (C) 2007, International Business Machines Corporation and        *
* others. All Rights Reserved.                                               *
******************************************************************************
*/

// Copyright 2006 Google Inc.  All Rights Reserved.

package com.ibm.icu.dev.test.duration.languages;


import com.ibm.icu.dev.test.duration.LanguageTestFmwk;


/**
 * Test cases for zh_Hant
 */
public class Test_zh_Hant extends LanguageTestFmwk {
  public Test_zh_Hant() {
    super("zh_Hant", false);
  }
}
