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