def testRdfFormatter(self):
    # Create a complex RDF value
    rdf = rdf_client.ClientSummary()
    rdf.system_info.system = "Linux"
    rdf.system_info.node = "coreai.skynet.com"
    # Users (repeated)
    rdf.users = [
        rdf_client.User(username=u) for u in ("root", "jconnor")]
    # Interface (nested, repeated)
    addresses = [rdf_client.NetworkAddress(human_readable=a) for a in (
        "1.1.1.1", "2.2.2.2", "3.3.3.3")]
    eth0 = rdf_client.Interface(ifname="eth0", addresses=addresses[:2])
    ppp0 = rdf_client.Interface(ifname="ppp0", addresses=addresses[2])
    rdf.interfaces = [eth0, ppp0]

    template = ("{system_info.system} {users.username} {interfaces.ifname} "
                "{interfaces.addresses.human_readable}\n")
    hinter = hints.Hinter(template=template)
    expected = "Linux root,jconnor eth0,ppp0 1.1.1.1,2.2.2.2,3.3.3.3"
    result = hinter.Render(rdf)
    self.assertEqual(expected, result)
Starting either with a naive BEGIN state, or the provided `init_state`
dataset/ETHPy150Open google/grr/grr/lib/checks/hints_test.py/HintsTests.testRdfFormatter--crossover with--dataset/ETHPy150Open jsvine/markovify/markovify/chain.py/Chain.gen