def METHOD_NAME(self, class_p3m):
    p3m = class_p3m(prefactor=2., accuracy=1e-3, mesh=16, cao=6, r_cut=7.5)
    self.system.electrostatics.solver = p3m
    skin = self.system.cell_system.tune_skin(
        min_skin=0.0, max_skin=2.5, tol=0.05, int_steps=100)
    print(f"Tuned skin: {skin}")
    pressures_via_virial = []
    num_samples = 25
    pressure_via_volume_scaling = pressureViaVolumeScaling(
        self.system, self.kT)
    for _ in range(num_samples):
        self.system.integrator.run(50)
        pressures_via_virial.append(
            self.system.analysis.pressure()['total'])
        pressure_via_volume_scaling.measure_pressure_via_volume_scaling()
    pressure_virial = np.mean(pressures_via_virial)
    # deviation should be below 5%
    abs_deviation_in_percent = 100 * abs(
        pressure_virial / pressure_via_volume_scaling.get_result() - 1.0)
    np.testing.assert_array_less(abs_deviation_in_percent, 5.0)