Made parent-less vertical, like a factor
							parent
							
								
									042cb9d902
								
							
						
					
					
						commit
						1ab8a23792
					
				|  | @ -229,11 +229,22 @@ std::string DiscreteConditional::_repr_markdown_( | |||
| 
 | ||||
|   // Print out signature.
 | ||||
|   ss << " $P("; | ||||
|   for(Key key: frontals()) | ||||
|     ss << keyFormatter(key); | ||||
|   if (nrParents() > 0) | ||||
|     ss << "|"; | ||||
|   bool first = true; | ||||
|   for (Key key : frontals()) { | ||||
|     if (!first) ss << ","; | ||||
|     ss << keyFormatter(key); | ||||
|     first = false; | ||||
|   } | ||||
|   if (nrParents() == 0) { | ||||
|    // We have no parents, call factor method.
 | ||||
|     ss << ")$:" << std::endl; | ||||
|     ss << DecisionTreeFactor::_repr_markdown_(); | ||||
|     return ss.str(); | ||||
|   } | ||||
| 
 | ||||
|   // We have parents, continue signature and do custom print.
 | ||||
|   ss << "|"; | ||||
|   first = true; | ||||
|   for (Key parent : parents()) { | ||||
|     if (!first) ss << ","; | ||||
|     ss << keyFormatter(parent); | ||||
|  | @ -256,9 +267,8 @@ std::string DiscreteConditional::_repr_markdown_( | |||
|     pairs.emplace_back(key, k); | ||||
|     n *= k; | ||||
|   } | ||||
|   size_t nrParents = size() - nrFrontals_; | ||||
|   std::vector<std::pair<Key, size_t>> slatnorf(pairs.rbegin(), | ||||
|                                                pairs.rend() - nrParents); | ||||
|                                                pairs.rend() - nrParents()); | ||||
|   const auto frontal_assignments = cartesianProduct(slatnorf); | ||||
|   for (const auto& a : frontal_assignments) { | ||||
|     for (it = beginFrontals(); it != endFrontals(); ++it) ss << a.at(*it); | ||||
|  | @ -268,7 +278,7 @@ std::string DiscreteConditional::_repr_markdown_( | |||
| 
 | ||||
|   // Print out separator with alignment hints.
 | ||||
|   ss << "|"; | ||||
|   for (size_t j = 0; j < nrParents + n; j++) ss << ":-:|"; | ||||
|   for (size_t j = 0; j < nrParents() + n; j++) ss << ":-:|"; | ||||
|   ss << "\n"; | ||||
| 
 | ||||
|   // Print out all rows.
 | ||||
|  |  | |||
|  | @ -181,9 +181,10 @@ TEST(DiscreteBayesNet, markdown) { | |||
|       "`DiscreteBayesNet` of size 2\n" | ||||
|       "\n" | ||||
|       " $P(Asia)$:\n" | ||||
|       "|0|1|\n" | ||||
|       "|0|value|\n" | ||||
|       "|:-:|:-:|\n" | ||||
|       "|0.99|0.01|\n" | ||||
|       "|0|0.99|\n" | ||||
|       "|1|0.01|\n" | ||||
|       "\n" | ||||
|       " $P(Smoking|Asia)$:\n" | ||||
|       "|Asia|0|1|\n" | ||||
|  |  | |||
|  | @ -110,13 +110,15 @@ TEST(DiscreteConditional, Combine) { | |||
| /* ************************************************************************* */ | ||||
| // Check markdown representation looks as expected, no parents.
 | ||||
| TEST(DiscreteConditional, markdown_prior) { | ||||
|   DiscreteKey A(Symbol('x', 1), 2); | ||||
|   DiscreteConditional conditional(A % "1/3"); | ||||
|   DiscreteKey A(Symbol('x', 1), 3); | ||||
|   DiscreteConditional conditional(A % "1/2/2"); | ||||
|   string expected = | ||||
|       " $P(x1)$:\n" | ||||
|       "|0|1|\n" | ||||
|       "|x1|value|\n" | ||||
|       "|:-:|:-:|\n" | ||||
|       "|0.25|0.75|\n"; | ||||
|       "|0|0.2|\n" | ||||
|       "|1|0.4|\n" | ||||
|       "|2|0.4|\n"; | ||||
|   string actual = conditional._repr_markdown_(); | ||||
|   EXPECT(actual == expected); | ||||
| } | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue