def test_switch_ds(): """ Tests the _switch_ds() method for ParticleProjectionPlots that as of 25th October 2017 requires a specific hack in plot_container.py """ ds = load(tgal) ds2 = load(tgal) plot = ParticlePlot( ds, ("Gas", "particle_position_x"), ("Gas", "particle_position_y"), ("Gas", "density"), ) plot._switch_ds(ds2) return
def test_particle_phase_plot_semantics(): ds = load(tgal) ad = ds.all_data() dens_ex = ad.quantities.extrema(('Gas', 'density')) temp_ex = ad.quantities.extrema(('Gas', 'temperature')) plot = ParticlePlot(ds, ('Gas', 'density'), ('Gas', 'temperature'), ('Gas', 'particle_mass')) plot.set_log('density', True) plot.set_log('temperature', True) p = plot.profile # bin extrema are field extrema assert dens_ex[0] - np.spacing(dens_ex[0]) == p.x_bins[0] assert dens_ex[-1] + np.spacing(dens_ex[-1]) == p.x_bins[-1] assert temp_ex[0] - np.spacing(temp_ex[0]) == p.y_bins[0] assert temp_ex[-1] + np.spacing(temp_ex[-1]) == p.y_bins[-1] # bins are evenly spaced in log space logxbins = np.log10(p.x_bins) dxlogxbins = logxbins[1:] - logxbins[:-1] assert_allclose(dxlogxbins, dxlogxbins[0]) logybins = np.log10(p.y_bins) dylogybins = logybins[1:] - logybins[:-1] assert_allclose(dylogybins, dylogybins[0]) plot.set_log('density', False) plot.set_log('temperature', False) p = plot.profile # bin extrema are field extrema assert dens_ex[0] - np.spacing(dens_ex[0]) == p.x_bins[0] assert dens_ex[-1] + np.spacing(dens_ex[-1]) == p.x_bins[-1] assert temp_ex[0] - np.spacing(temp_ex[0]) == p.y_bins[0] assert temp_ex[-1] + np.spacing(temp_ex[-1]) == p.y_bins[-1] # bins are evenly spaced in log space dxbins = p.x_bins[1:] - p.x_bins[:-1] assert_allclose(dxbins, dxbins[0]) dybins = p.y_bins[1:] - p.y_bins[:-1] assert_allclose(dybins, dybins[0])
def test_particle_plot_instance(): """ Tests the type of plot instance returned by ParticlePlot. If x_field and y_field are any combination of valid particle_position in x, y or z axis,then ParticleProjectionPlot instance is expected. """ ds = fake_particle_ds() x_field = ('all', 'particle_position_x') y_field = ('all', 'particle_position_y') z_field = ('all', 'particle_velocity_x') plot = ParticlePlot(ds, x_field, y_field) assert isinstance(plot, ParticleProjectionPlot) plot = ParticlePlot(ds, y_field, x_field) assert isinstance(plot, ParticleProjectionPlot) plot = ParticlePlot(ds, x_field, z_field) assert isinstance(plot, ParticlePhasePlot)