| 20 | } |
| 21 | |
| 22 | TreeliteModelHandle BuildModel() { |
| 23 | TreeliteModelHandle model; |
| 24 | TreeliteModelBuilderHandle builder; |
| 25 | char const* model_metadata |
| 26 | = "{" |
| 27 | " \"threshold_type\": \"float32\"," |
| 28 | " \"leaf_output_type\": \"float32\"," |
| 29 | " \"metadata\": {" |
| 30 | " \"num_feature\": 2," |
| 31 | " \"task_type\": \"kRegressor\"," |
| 32 | " \"average_tree_output\": false," |
| 33 | " \"num_target\": 1," |
| 34 | " \"num_class\": [1]," |
| 35 | " \"leaf_vector_shape\": [1, 1]" |
| 36 | " }," |
| 37 | " \"tree_annotation\": {" |
| 38 | " \"num_tree\": 1," |
| 39 | " \"target_id\": [0]," |
| 40 | " \"class_id\": [0]" |
| 41 | " }," |
| 42 | " \"postprocessor\": {" |
| 43 | " \"name\": \"identity\"" |
| 44 | " }," |
| 45 | " \"base_scores\": [0.0]" |
| 46 | "}"; |
| 47 | safe_treelite(TreeliteGetModelBuilder(model_metadata, &builder)); |
| 48 | safe_treelite(TreeliteModelBuilderStartTree(builder)); |
| 49 | safe_treelite(TreeliteModelBuilderStartNode(builder, 0)); |
| 50 | safe_treelite(TreeliteModelBuilderNumericalTest(builder, 0, 0.0, 0, "<", 1, 2)); |
| 51 | safe_treelite(TreeliteModelBuilderEndNode(builder)); |
| 52 | safe_treelite(TreeliteModelBuilderStartNode(builder, 1)); |
| 53 | safe_treelite(TreeliteModelBuilderLeafScalar(builder, -1.0)); |
| 54 | safe_treelite(TreeliteModelBuilderEndNode(builder)); |
| 55 | safe_treelite(TreeliteModelBuilderStartNode(builder, 2)); |
| 56 | safe_treelite(TreeliteModelBuilderLeafScalar(builder, 1.0)); |
| 57 | safe_treelite(TreeliteModelBuilderEndNode(builder)); |
| 58 | safe_treelite(TreeliteModelBuilderEndTree(builder)); |
| 59 | |
| 60 | safe_treelite(TreeliteModelBuilderCommitModel(builder, &model)); |
| 61 | |
| 62 | // Clean up |
| 63 | safe_treelite(TreeliteDeleteModelBuilder(builder)); |
| 64 | |
| 65 | return model; |
| 66 | } |
| 67 | |
| 68 | int main() { |
| 69 | TreeliteModelHandle model = BuildModel(); |
no test coverage detected