def test_normalize_at_point_seds(self):

        sed1 = Sed(
            x=numpy.arange(1000, 10001, 500),
            y=numpy.arange(1000, 10001, 500),
            yerr=numpy.arange(1000, 10001, 500) * 0.01,
        )
        sed2 = Sed(
            x=numpy.arange(10500, 20501, 500),
            y=numpy.arange(10500, 20501, 500),
            yerr=numpy.arange(10500, 20501, 500) * 0.01,
        )
        sed3 = Sed(
            x=numpy.arange(30000, 40001, 500),
            y=numpy.arange(30000, 40001, 500),
            yerr=numpy.arange(30000, 40001, 500) * 0.01,
        )

        aggsed = AggregateSed([sed1, sed2, sed3])

        norm_aggsed = aggsed.normalize_at_point(10350, 1)

        control_norm_constant = 9.523809523809524e-05  # 1./10500.

        self.assertAlmostEqual(norm_aggsed.norm_constant, control_norm_constant)
        # The AggregateSed should
        # retain all Segments after the normalization, even though
        # none of the Segments do not contain the point (10350).
        self.assertEqual(len(norm_aggsed), len(aggsed))

        norm_aggsed = aggsed.normalize_at_point(10251, 1)
        self.assertAlmostEqual(norm_aggsed.norm_constant, 1.0 / 10500)
    def test_normalize_at_point_spectra(self):

        sed1 = Spectrum(x=numpy.arange(1000, 10001), y=numpy.arange(1000, 10001), yerr=numpy.arange(1000, 10001) * 0.01)
        sed2 = Spectrum(
            x=numpy.arange(10500, 20501), y=numpy.arange(10500, 20501), yerr=numpy.arange(10500, 20501) * 0.01
        )
        sed3 = Spectrum(
            x=numpy.arange(30000, 40001), y=numpy.arange(30000, 40001), yerr=numpy.arange(30000, 40001) * 0.01
        )

        aggsed = AggregateSed([sed1, sed2, sed3])

        norm_aggsed = aggsed.normalize_at_point(20000, 1, dx=50)

        control_norm_constant = 1.0 / 20000.0

        self.assertAlmostEqual(norm_aggsed.norm_constant, control_norm_constant)
        # The AggregateSed should
        # retain all Segments after the normalization, even though
        # none of the Segments do not contain the point (10350).
        self.assertEqual(len(norm_aggsed), len(aggsed))
    def test_normalize_at_point_segments(self):

        spec1 = Spectrum(
            x=numpy.arange(1000, 10001), y=numpy.arange(1000, 10001), yerr=numpy.arange(1000, 10001) * 0.01
        )
        spec2 = Spectrum(
            x=numpy.arange(10500, 20501), y=numpy.arange(10500, 20501), yerr=numpy.arange(10500, 20501) * 0.01
        )
        spec3 = Spectrum(
            x=numpy.arange(30000, 40001), y=numpy.arange(30000, 40001), yerr=numpy.arange(30000, 40001) * 0.01
        )
        sed1 = Sed(x=numpy.arange(3000, 11001, 500), y=numpy.arange(300, 1101, 50), yerr=numpy.arange(300, 1101, 50))
        sed2 = Sed(
            x=numpy.arange(25000, 30001, 500), y=numpy.arange(2500, 3001, 50), yerr=numpy.arange(2500, 3001, 50) * 0.01
        )

        aggsed = AggregateSed([spec1, spec2, spec3, sed1, sed2])
        norm_aggsed = aggsed.normalize_at_point(4505.0, 1000.0, dx=50)

        avg = numpy.average(numpy.append(numpy.arange(4456, 4555), [450]))
        control_norm_constant = 1000.0 / avg

        self.assertAlmostEqual(norm_aggsed.norm_constant, control_norm_constant)
files = os.listdir(test_directory)

specs = []
counter = 0
while counter < 14:
    spec = load_sed(test_directory+files[counter], sed_type="spectrum")
    specs.append(spec)
    counter += 1

#specs = [load_sed(test_directory+f, sed_type="spectrum") for f in files]
for spec in specs:
    spec.z = np.random.random_sample()

aggsed = AggregateSed(specs)

norm_aggsed = aggsed.normalize_at_point(3500.0, 1.0)

stack_spectra = stack(norm_aggsed, 10.0, 'avg', fill='fill')

stack_spectra.write(test_directory+'stacked_spectra_maskcc10.dat')

stack_spectra = load_sed(test_directory+'stacked_spectra_maskcc10.dat')

end = time.clock()

plt.plot(stack_.x, stack_.y)
plt.show()

print ''
print 'time it took to do all of this: %.3g sec' % (end-start)