diff --git a/test/treemap-colorBy.html b/test/treemap-colorBy.html
deleted file mode 100644
index 9845e5d..0000000
--- a/test/treemap-colorBy.html
+++ /dev/null
@@ -1,100 +0,0 @@
-<!DOCTYPE html>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-   http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-
-<html>
-    <head>
-        <meta charset="utf-8">
-        <meta name="viewport" content="width=device-width, initial-scale=1" />
-        <script src="lib/simpleRequire.js"></script>
-        <script src="lib/config.js"></script>
-        <script src="lib/jquery.min.js"></script>
-        <script src="lib/facePrint.js"></script>
-        <script src="lib/testHelper.js"></script>
-        <!-- <script src="ut/lib/canteen.js"></script> -->
-        <link rel="stylesheet" href="lib/reset.css" />
-    </head>
-    <body>
-        <style>
-        </style>
-
-
-
-        <div id="main0"></div>
-
-
-
-
-
-
-
-
-
-        <script>
-        require(['echarts'/*, 'map/js/china' */], function (echarts) {
-            var option;
-
-            option = {
-                series: [{
-                    type: 'treemap',
-                    data: [{
-                        name: 'nodeA',            // First tree
-                        value: 10,
-                        // children: [{
-                        //     name: 'nodeAa',       // First leaf of first tree
-                        //     value: 4
-                        // }, {
-                        //     name: 'nodeAb',       // Second leaf of first tree
-                        //     value: 6
-                        // }]
-                    }, {
-                        name: 'nodeB',            // Second tree
-                        value: 20,
-                        // children: [{
-                        //     name: 'nodeBa',       // Son of first tree
-                        //     value: 20,
-                        //     children: [{
-                        //         name: 'nodeBa1',  // Granson of first tree
-                        //         value: 5
-                        //     }, {
-                        //         name: 'nodeBa2',  // Granson of first tree
-                        //         value: 15
-                        //     }]
-                        // }]
-                    }]
-                }]
-            };
-
-            var chart = testHelper.create(echarts, 'main0', {
-                title: [
-                    'Default colorBy (level0: "childIndex", others: "inherit")',
-                    'nodeA* should be blue;',
-                    'nodeB* should be green.'
-                ],
-                option: option,
-                height: 500
-            });
-        });
-        </script>
-
-
-    </body>
-</html>
-
