def test_no_perturbation(art_warning, fix_get_synthetic_data, fix_make_dummy_model):
    """
    Assert that with 0 perturbation the data is unmodified
    """
    try:
        param_dic = {"maxlen": 2**20, "input_dim": 257, "embedding_size": 8}
        # First check: with no perturbation the malware of sufficient size, and benign files, should be unperturbed
        attack = MalwareGDTensorFlow(
            classifier=fix_make_dummy_model[0], embedding_weights=fix_make_dummy_model[1], l_0=0, param_dic=param_dic
        )

        attack.l_0 = 0
        x = np.copy(fix_get_synthetic_data[0])
        y = np.copy(fix_get_synthetic_data[1])
        size_of_files = np.copy(fix_get_synthetic_data[2])

        adv_x, adv_y, adv_sizes = attack.pull_out_valid_samples(x, y, size_of_files)

        # We should only have 3 files as the following cannot be converted to valid adv samples:
        #   2nd datapoint (file too large to support any modifications)
        #   5th datapoint (benign file)

        assert len(adv_x) == 3

        adv_x = attack.generate(adv_x, adv_y, adv_sizes)

        j = 0
        for i in range(len(x)):
            if i in [0, 2, 3]:
                assert np.array_equal(adv_x[j], x[i])
                j += 1
            else:
                assert np.array_equal(x[i], fix_get_synthetic_data[0][i])
    except ARTTestException as e:
        art_warning(e)

    Assert that with 0 perturbation the data is unmodified
    
tests/attacks/evasion/test_pe_malware_attack.py