def METHOD_NAME():
    """ Check that the offsets between send times of different spike source
        arrays don't change the outcome of STDP
    """
    # STDP parameters
    a_plus = 0.01
    a_minus = 0.01
    tau_plus = 20
    tau_minus = 20
    plastic_delay = 1
    initial_weight = 4.0
    max_weight = 5.0
    min_weight = 0
    pre_spikes = range(0, 10, 2)
    p.setup(1)
    pre_1 = p.Population(1, p.SpikeSourceArray(pre_spikes), label="pre_1")
    pre_2 = p.Population(1, p.SpikeSourceArray(pre_spikes), label="pre_2")
    post_1 = p.Population(1, p.IF_curr_exp(), label="post_1")
    post_2 = p.Population(1, p.IF_curr_exp(), label="post_2")
    post_1.record("spikes")
    stdp = p.STDPMechanism(
            timing_dependence=p.SpikePairRule(
                tau_plus=tau_plus, tau_minus=tau_minus,
                A_plus=a_plus, A_minus=a_minus),
            weight_dependence=p.AdditiveWeightDependence(
                w_min=min_weight, w_max=max_weight),
            weight=initial_weight, delay=plastic_delay)
    conn = p.OneToOneConnector()
    proj_1 = p.Projection(pre_1, post_1, conn, stdp)
    proj_2 = p.Projection(pre_2, post_2, conn, stdp)
    p.run(12)
    # Get the weights
    weights_1 = list(proj_1.get('weight', 'list', with_address=False))
    weights_2 = list(proj_2.get('weight', 'list', with_address=False))
    # Get the spikes
    post_spikes = numpy.array(
        # pylint: disable=no-member
        post_1.get_data('spikes').segments[0].spiketrains[0].magnitude)
    p.end()
    new_weight_exact = calculate_spike_pair_additive_stdp_weight(
        pre_spikes, post_spikes, initial_weight, plastic_delay,
        a_plus, a_minus, tau_plus, tau_minus)
    print(weights_1)
    print(weights_2)
    print(new_weight_exact)
    assert len(weights_1) == 1
    assert len(weights_2) == 1
    assert weights_1[0] == weights_2[0]
    assert numpy.allclose(weights_1, new_weight_exact, rtol=0.001)