about summary refs log tree commit diff stats
path: root/cpp/002main.test.cc
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2015-02-17 12:26:17 -0800
committerKartik K. Agaram <vc@akkartik.com>2015-02-17 12:26:17 -0800
commit4a753480074e3a3dda4d4414fe9a60e9704b799d (patch)
treefcad3a42bcde17b843908b20c4e469da27a2c2fb /cpp/002main.test.cc
parentf1e1cac414c34449113ca7196ceb82cbcbb2517f (diff)
downloadmu-4a753480074e3a3dda4d4414fe9a60e9704b799d.tar.gz
769 - first recipe/instruction parsed
Diffstat (limited to 'cpp/002main.test.cc')
-rw-r--r--cpp/002main.test.cc18
1 files changed, 17 insertions, 1 deletions
diff --git a/cpp/002main.test.cc b/cpp/002main.test.cc
index 8608d724..77d0ee38 100644
--- a/cpp/002main.test.cc
+++ b/cpp/002main.test.cc
@@ -1,8 +1,24 @@
-void test_compile() {
+void test_parse() {
   compile("recipe main [\n"
           "  1:integer <- copy 23:literal\n"
+//?           "  1:integer, 2:integer <- copy 23:literal\n"
           "]\n");
   CHECK(Recipe_number.find("main") != Recipe_number.end());
+  recipe r = Recipe[Recipe_number["main"]];
+  vector<instruction>::iterator i = r.step.begin();
+  CHECK_EQ(i->is_label, false);
+  CHECK_EQ(i->label, "");
+  CHECK_EQ(i->operation, Recipe_number["copy"]);
+  CHECK_EQ(i->ingredients.size(), 1);
+  CHECK_EQ(i->ingredients[0].name, string("23"));
+  CHECK_EQ(i->ingredients[0].types.size(), 1);
+  CHECK_EQ(i->ingredients[0].types[0], Type_number["literal"]);
+  CHECK_EQ(i->ingredients[0].properties.size(), 0);
+  CHECK_EQ(i->products.size(), 1);
+  CHECK_EQ(i->products[0].name, string("1"));
+  CHECK_EQ(i->products[0].types.size(), 1);
+  CHECK_EQ(i->products[0].types[0], Type_number["integer"]);
+  CHECK_EQ(i->products[0].properties.size(), 0);
 }
 
 void test_literal() {