diff --git a/tests/ScriptC_mono.cpp b/tests/ScriptC_mono.cpp
deleted file mode 100644
index 966ecb4..0000000
--- a/tests/ScriptC_mono.cpp
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed 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.
- */
-
-
-/*
- * This file is auto-generated. DO NOT MODIFY!
- * The source Renderscript file: mono.rs
- */
-
-
-#include "ScriptC_mono.h"
-
-static const unsigned char __txt[] = {
-    0xde,0xc0,0x17,0x0b,0x00,0x00,0x00,0x00,0x2c,0x00,0x00,0x00,0xa8,0x04,0x00,0x00,
-    0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x40,0x04,0x00,
-    0x78,0x05,0x00,0x00,0x02,0x40,0x04,0x00,0x03,0x00,0x00,0x00,0x42,0x43,0xc0,0xde,
-    0x21,0x0c,0x00,0x00,0x27,0x01,0x00,0x00,0x01,0x10,0x00,0x00,0x12,0x00,0x00,0x00,
-    0x07,0x81,0x23,0x91,0x41,0xc8,0x04,0x49,0x06,0x10,0x32,0x39,0x92,0x01,0x84,0x0c,
-    0x25,0x05,0x08,0x19,0x1e,0x04,0x8b,0x62,0x80,0x14,0x45,0x02,0x42,0x92,0x0b,0x42,
-    0xa4,0x10,0x32,0x14,0x38,0x08,0x18,0x49,0x0a,0x32,0x44,0x24,0x48,0x0a,0x90,0x21,
-    0x23,0xc4,0x52,0x80,0x0c,0x19,0x21,0x72,0x24,0x07,0xc8,0x48,0x11,0x62,0xa8,0xa0,
-    0xa8,0x40,0xc6,0xf0,0x01,0x00,0x00,0x00,0x49,0x18,0x00,0x00,0x08,0x00,0x00,0x00,
-    0x0b,0x8c,0x00,0x04,0x41,0x10,0x04,0x09,0x01,0x04,0x41,0x10,0x04,0x89,0xff,0xff,
-    0xff,0xff,0x1f,0xc0,0x60,0x81,0xf0,0xff,0xff,0xff,0xff,0x03,0x18,0x00,0x00,0x00,
-    0x89,0x20,0x00,0x00,0x14,0x00,0x00,0x00,0x32,0x22,0x48,0x09,0x20,0x64,0x85,0x04,
-    0x93,0x22,0xa4,0x84,0x04,0x93,0x22,0xe3,0x84,0xa1,0x90,0x14,0x12,0x4c,0x8a,0x8c,
-    0x0b,0x84,0xa4,0x4c,0x10,0x54,0x73,0x04,0x60,0x40,0x60,0x06,0x80,0xc4,0x1c,0x01,
-    0x42,0x64,0x04,0x60,0x18,0x81,0x20,0xe8,0x94,0xc1,0x20,0x44,0x69,0x18,0x81,0x10,
-    0x8a,0xb0,0x0e,0xb1,0x61,0x84,0x41,0x28,0x83,0x70,0x8e,0x5e,0x11,0x8e,0xa3,0x38,
-    0x10,0x30,0x8c,0x30,0x00,0x00,0x00,0x00,0x13,0xb0,0x70,0x90,0x87,0x76,0xb0,0x87,
-    0x3b,0x68,0x03,0x77,0x78,0x07,0x77,0x28,0x87,0x36,0x60,0x87,0x74,0x70,0x87,0x7a,
-    0xc0,0x87,0x36,0x38,0x07,0x77,0xa8,0x87,0x72,0x08,0x07,0x71,0x48,0x87,0x0d,0xf2,
-    0x50,0x0e,0x6d,0x00,0x0f,0x7a,0x30,0x07,0x72,0xa0,0x07,0x73,0x20,0x07,0x7a,0x30,
-    0x07,0x72,0xd0,0x06,0xe9,0x10,0x07,0x7a,0x80,0x07,0x7a,0x80,0x07,0x6d,0x90,0x0e,
-    0x78,0xa0,0x07,0x78,0xa0,0x07,0x78,0xd0,0x06,0xe9,0x10,0x07,0x76,0xa0,0x07,0x71,
-    0x60,0x07,0x7a,0x10,0x07,0x76,0xd0,0x06,0xe9,0x30,0x07,0x72,0xa0,0x07,0x73,0x20,
-    0x07,0x7a,0x30,0x07,0x72,0xd0,0x06,0xe9,0x60,0x07,0x74,0xa0,0x07,0x76,0x40,0x07,
-    0x7a,0x60,0x07,0x74,0xd0,0x06,0xe6,0x30,0x07,0x72,0xa0,0x07,0x73,0x20,0x07,0x7a,
-    0x30,0x07,0x72,0xd0,0x06,0xe6,0x60,0x07,0x74,0xa0,0x07,0x76,0x40,0x07,0x7a,0x60,
-    0x07,0x74,0xd0,0x06,0xf6,0x60,0x07,0x74,0xa0,0x07,0x76,0x40,0x07,0x7a,0x60,0x07,
-    0x74,0xd0,0x06,0xf6,0x10,0x07,0x72,0x80,0x07,0x7a,0x60,0x07,0x74,0xa0,0x07,0x71,
-    0x20,0x07,0x78,0xd0,0x06,0xe1,0x00,0x07,0x7a,0x00,0x07,0x7a,0x60,0x07,0x74,0xd0,
-    0x06,0xee,0x30,0x07,0x72,0xd0,0x06,0xb3,0x60,0x07,0x74,0xa0,0xf3,0x40,0x86,0x04,
-    0x32,0x42,0x44,0x04,0x60,0x20,0x30,0x57,0x81,0x59,0x09,0x34,0x44,0x51,0x00,0x00,
-    0x08,0x00,0x00,0x00,0x80,0x21,0x4a,0x03,0x04,0x00,0x00,0x00,0x00,0x00,0x0c,0x51,
-    0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x60,0x88,0x22,0x01,0x01,0x00,0x00,0x00,0x00,
-    0x00,0x59,0x20,0x00,0x08,0x00,0x00,0x00,0x32,0x1e,0x98,0x10,0x19,0x11,0x4c,0x90,
-    0x8c,0x09,0x26,0x47,0xc6,0x04,0x43,0x02,0x85,0x40,0xa4,0x04,0x48,0x8c,0x11,0xe8,
-    0xac,0x39,0xe7,0x1f,0x00,0x00,0x00,0x00,0x79,0x18,0x00,0x00,0x5f,0x00,0x00,0x00,
-    0x43,0x88,0x29,0x98,0x84,0x05,0x87,0x3d,0x94,0x83,0x3c,0xcc,0x43,0x3a,0xbc,0x83,
-    0x3b,0x2c,0x08,0xe2,0x60,0x08,0x31,0x11,0x53,0xb1,0x20,0x52,0x87,0x70,0xb0,0x87,
-    0x70,0xf8,0x05,0x78,0x08,0x87,0x71,0x58,0x87,0x70,0x38,0x87,0x72,0xf8,0x05,0x77,
-    0x08,0x87,0x76,0x28,0x87,0x05,0x63,0x30,0x0e,0xef,0xd0,0x0e,0x6e,0x50,0x0e,0xf8,
-    0x10,0x0e,0xed,0x00,0x0f,0xec,0x50,0x0e,0x6e,0x10,0x0e,0xee,0x40,0x0e,0xf2,0xf0,
-    0x0e,0xe9,0x40,0x0e,0x6e,0x20,0x0f,0xf3,0xe0,0x06,0xe8,0x50,0x0e,0xec,0xc0,0x0e,
-    0xef,0x30,0x0e,0xef,0xd0,0x0e,0xf0,0x50,0x0f,0xf4,0x50,0x0e,0x43,0x88,0xe9,0x98,
-    0x90,0x05,0xc4,0x39,0xa4,0x82,0x3b,0xd0,0xc3,0x82,0xa0,0x0e,0x86,0x10,0x93,0x32,
-    0x09,0x0b,0x8c,0x71,0x30,0x05,0x76,0x78,0x87,0x70,0xa0,0x87,0x21,0xc4,0xc4,0x4c,
-    0xcd,0x82,0xe2,0x1c,0x44,0xe1,0x1d,0xde,0x81,0x1d,0x16,0x08,0x71,0x10,0x07,0x43,
-    0x84,0xe9,0x59,0x40,0xc8,0xc3,0x3b,0xbc,0x03,0x3d,0x0c,0x11,0xa6,0x68,0x41,0x30,
-    0x07,0x43,0x88,0x69,0x9a,0xa8,0x05,0xcf,0x3b,0xb4,0x83,0x3b,0xa4,0x03,0x3c,0xbc,
-    0x03,0x3d,0x94,0x83,0x3b,0xd0,0x03,0x18,0x8c,0x03,0x3a,0x84,0x83,0x3c,0x0c,0x21,
-    0xa6,0xca,0x00,0x16,0x44,0xb3,0x90,0x0e,0xed,0x00,0x0f,0xec,0x50,0x0e,0x60,0x30,
-    0x0a,0x6f,0x30,0x0a,0x6b,0xb0,0x06,0x60,0x40,0x0b,0xa2,0x10,0x0a,0xa1,0x30,0xe2,
-    0x18,0x03,0x78,0x90,0x87,0x70,0x38,0x87,0x76,0x08,0x87,0x29,0x02,0x30,0x8c,0x70,
-    0xc6,0x40,0x1e,0xe6,0xe1,0x17,0xca,0x01,0x1f,0xe0,0xe1,0x1d,0xe4,0x81,0x1e,0x7e,
-    0xc1,0x1e,0xc2,0x41,0x1e,0xa6,0x0c,0x46,0xb2,0x8c,0x80,0xc6,0x40,0x1e,0xe6,0xe1,
-    0x17,0xde,0x41,0x1c,0xd4,0xa1,0x1c,0xc6,0x81,0x1e,0x7e,0x61,0x1e,0xd8,0xe1,0x1d,
-    0xe8,0x61,0x1e,0xa6,0x00,0x23,0xae,0x31,0x90,0x87,0x79,0xf8,0x85,0x72,0xc0,0x07,
-    0x78,0x78,0x07,0x79,0xa0,0x87,0x5f,0x30,0x87,0x77,0x90,0x87,0x72,0x08,0x87,0x71,
-    0x40,0x87,0x5f,0x70,0x87,0x70,0x68,0x87,0x72,0x98,0x12,0x38,0x23,0xa4,0x31,0x90,
-    0x87,0x79,0xf8,0x85,0x72,0xc0,0x07,0x78,0x78,0x07,0x79,0xa0,0x87,0x5f,0x30,0x87,
-    0x77,0x90,0x87,0x72,0x08,0x87,0x71,0x40,0x87,0x29,0x01,0x04,0x79,0x18,0x00,0x00,
-    0x0b,0x00,0x00,0x00,0x33,0x08,0x80,0x1c,0xc4,0xe1,0x1c,0x66,0x14,0x01,0x3d,0x88,
-    0x43,0x38,0x84,0xc3,0x8c,0x42,0x80,0x07,0x79,0x78,0x07,0x73,0x98,0xb1,0x0c,0xe6,
-    0x00,0x0f,0xe1,0x30,0x0e,0xe3,0x50,0x0f,0xf2,0x10,0x0e,0xe3,0x90,0x0f,0x00,0x00,
-    0x71,0x20,0x00,0x00,0x13,0x00,0x00,0x00,0x06,0x40,0x18,0x62,0x33,0x99,0x40,0x61,
-    0x6c,0x8e,0xb3,0xd8,0x00,0x11,0x39,0xce,0x64,0x04,0x51,0x24,0xb9,0xcd,0x03,0x08,
-    0x0a,0xe7,0x2c,0x4e,0xc4,0xf3,0x3c,0x6f,0x05,0xcd,0x3f,0xdf,0x83,0x33,0x75,0xd5,
-    0xfd,0x17,0xec,0x6f,0x01,0x86,0xf0,0x2d,0x0e,0x30,0x99,0x81,0xf6,0xcf,0xf5,0x1e,
-    0x49,0x29,0x20,0x28,0x9c,0xb3,0x38,0x51,0xeb,0xf0,0x3c,0xcf,0x77,0xd5,0xfd,0x17,
-    0x00,0x00,0x00,0x00,0x61,0x20,0x00,0x00,0x21,0x00,0x00,0x00,0x13,0x04,0x41,0x2c,
-    0x10,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x04,0x46,0x00,0x68,0xcd,0x00,0x90,0x9b,
-    0x01,0x18,0x6b,0x38,0xe9,0x52,0x4e,0x3f,0xb1,0x8d,0xd9,0xf8,0xab,0x4d,0x5f,0xf6,
-    0x3d,0xa2,0x63,0x0d,0x40,0x20,0x8c,0x00,0x00,0x00,0x00,0x00,0xa4,0x8c,0x11,0x03,
-    0x42,0x08,0x08,0x69,0x90,0x61,0x6a,0xa0,0x11,0x83,0x42,0x08,0x0a,0xea,0x99,0x63,
-    0x70,0x2a,0x66,0x90,0xc1,0x72,0xa2,0x11,0x03,0x42,0x08,0x8c,0x6b,0x30,0x62,0xc1,
-    0x06,0x00,0xc3,0x81,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0xa6,0x40,0x54,0x3f,
-    0xd2,0xd8,0x42,0x51,0xfd,0x0e,0x35,0x01,0x01,0x31,0x00,0x00,0x03,0x00,0x00,0x00,
-    0x5b,0x06,0x20,0x90,0xb6,0x0c,0x47,0x20,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-    0x00,0x00,0x00,0x00,
-};
-
-ScriptC_mono::ScriptC_mono(android::renderscriptCpp::RenderScript *rs, const char *cacheDir, size_t cacheDirLength) :
-        ScriptC(rs, __txt, sizeof(__txt), "mono.rs", 4, cacheDir, cacheDirLength) {
-}
-
-ScriptC_mono::~ScriptC_mono() {
-}
-
-void ScriptC_mono::forEach_root(android::sp<const android::renderscriptCpp::Allocation> ain, android::sp<const android::renderscriptCpp::Allocation> aout) const {
-    forEach(0, ain, aout, NULL, 0);
-}
-
diff --git a/tests/ScriptC_mono.h b/tests/ScriptC_mono.h
deleted file mode 100644
index 99912d1..0000000
--- a/tests/ScriptC_mono.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed 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.
- */
-
-
-/*
- * This file is auto-generated. DO NOT MODIFY!
- * The source Renderscript file: mono.rs
- */
-
-
-#include "ScriptC.h"
-
-class ScriptC_mono : public android::renderscriptCpp::ScriptC {
-private:
-    int32_t __gInt;
-    bool __gBool;
-public:
-    ScriptC_mono(android::renderscriptCpp::RenderScript *rs, const char *cacheDir, size_t cacheDirLength);
-    virtual ~ScriptC_mono();
-    
-    void set_gInt(int32_t v) {
-        setVar(0, v);
-        __gInt = v;
-    }
-    int32_t get_gInt() const {
-        return __gInt;
-    }
-    
-    float get_cFloat() const {
-        return 1.2f;
-    }
-    
-    void set_gBool(bool v) {
-        setVar(2, v);
-        __gBool = v;
-    }
-    bool get_gBool() const {
-        return __gBool;
-    }
-    
-    void forEach_root(android::sp<const android::renderscriptCpp::Allocation> ain, android::sp<const android::renderscriptCpp::Allocation> aout) const;
-};
