/// *Test fixture for following*
///
/// - There are nine neurons: 1-9.
///
/// - Every neuron has the same stake of 10 ICP and (non-dissolving) dissolution
///   period of 1 year, so the same voting power. Thus, 5 out of 9 need to vote
///   to reach a verdict.
///
/// - Neuron 2 follows 1, 3, 4 on topic Governance and neuron 3 follows 5, 6, 7
///   on topic Unknown = all topics without specific override
///
/// - Neurons 1, 5, 6 have a controller set and can vote.
Test fixture for following
There are nine neurons: 1-9.

Every neuron has the same stake of 10 ICP and (non-dissolving) dissolution
period of 1 year, so the same voting power. Thus, 5 out of 9 need to vote
to reach a verdict.

Neuron 2 follows 1, 3, 4 on topic Governance and neuron 3 follows 5, 6, 7
on topic Unknown = all topics without specific override

Neurons 1, 5, 6 have a controller set and can vote.
Test fixture for following There are nine neurons : 1 - 9 . Every neuron has the same stake of 10 ICP and ( non - dissolving ) dissolution period of 1 year so the same voting power . Thus 5 out of 9 need to vote to reach a verdict . Neuron 2 follows 1 3 4 on topic Governance and neuron 3 follows 5 6 7 on topic Unknown = all topics without specific override Neurons 1 5 6 have a controller set and can vote .
fn fixture_for_following() -> GovernanceProto {
    let mut driver = FakeDriver::default();
    // A 'default' neuron, extended with additional fields below.
    let mut neuron = move |id| Neuron {
        id: Some(NeuronId { id }),
        cached_neuron_stake_e8s: 1_000_000_000, // 10 ICP
        // One year
        dissolve_state: Some(neuron::DissolveState::DissolveDelaySeconds(31557600)),
        account: driver.random_byte_array().to_vec(),
        ..Default::default()
    };
    GovernanceProto {
        economics: Some(NetworkEconomics::with_default_values()),
        neurons: [
            (
                1,
                Neuron {
                    // Needs controller to vote.
                    controller: Some(principal(1)),
                    ..neuron(1)
                },
            ),
            (
                2,
                Neuron {
                    followees: [(
                        Topic::Governance as i32,
                        neuron::Followees {
                            followees: [NeuronId { id: 1 }, NeuronId { id: 3 }, NeuronId { id: 4 }]
                                .to_vec(),
                        },
                    )]
                    .to_vec()
                    .into_iter()
                    .collect(),
                    ..neuron(2)
                },
            ),
            (
                3,
                Neuron {
                    followees: [(
                        Topic::Unspecified as i32,
                        neuron::Followees {
                            followees: [NeuronId { id: 5 }, NeuronId { id: 6 }, NeuronId { id: 7 }]
                                .to_vec(),
                        },
                    )]
                    .to_vec()
                    .into_iter()
                    .collect(),
                    ..neuron(3)
                },
            ),
            (4, neuron(4)),
            (
                5,
                Neuron {
                    controller: Some(principal(5)),
                    ..neuron(5)
                },
            ),
            (
                6,
                Neuron {
                    controller: Some(principal(6)),
                    ..neuron(6)
                },
            ),
            (7, neuron(7)),
            (8, neuron(8)),
            (9, neuron(9)),
        ]
        .to_vec()
        .into_iter()
        .collect(),
        ..Default::default()
    }
}
fn fixture_for_following ( ) -> GovernanceProto { let mut driver = FakeDriver :: default ( ) ; // A 'default' neuron, extended with additional fields below. let mut neuron = move | id | Neuron { id : Some ( NeuronId { id } ) , cached_neuron_stake_e8s : 1_000_000_000 , // 10 ICP // One year dissolve_state : Some ( neuron :: DissolveState :: DissolveDelaySeconds ( 31557600 ) ) , account : driver . random_byte_array ( ) . to_vec ( ) , .. Default :: default ( ) } ; GovernanceProto { economics : Some ( NetworkEconomics :: with_default_values ( ) ) , neurons : [ ( 1 , Neuron { // Needs controller to vote. controller : Some ( principal ( 1 ) ) , .. neuron ( 1 ) } , ) , ( 2 , Neuron { followees : [ ( Topic :: Governance as i32 , neuron :: Followees { followees : [ NeuronId { id : 1 } , NeuronId { id : 3 } , NeuronId { id : 4 } ] . to_vec ( ) , } , ) ] . to_vec ( ) . into_iter ( ) . collect ( ) , .. neuron ( 2 ) } , ) , ( 3 , Neuron { followees : [ ( Topic :: Unspecified as i32 , neuron :: Followees { followees : [ NeuronId { id : 5 } , NeuronId { id : 6 } , NeuronId { id : 7 } ] . to_vec ( ) , } , ) ] . to_vec ( ) . into_iter ( ) . collect ( ) , .. neuron ( 3 ) } , ) , ( 4 , neuron ( 4 ) ) , ( 5 , Neuron { controller : Some ( principal ( 5 ) ) , .. neuron ( 5 ) } , ) , ( 6 , Neuron { controller : Some ( principal ( 6 ) ) , .. neuron ( 6 ) } , ) , ( 7 , neuron ( 7 ) ) , ( 8 , neuron ( 8 ) ) , ( 9 , neuron ( 9 ) ) , ] . to_vec ( ) . into_iter ( ) . collect ( ) , .. Default :: default ( ) } }
Test fixture for following
 There are nine neurons: 1-9.
Test fixture for following There are nine neurons : 1 - 9 .