diff --git a/test/test_field.py b/test/test_field.py
index 48bf15b38bb172d04a960fb4d75c67584a9c265f..9685b9e0bedac11c73b975a656d04f5bc7aa796c 100644
--- a/test/test_field.py
+++ b/test/test_field.py
@@ -19,8 +19,7 @@
 import unittest
 
 import numpy as np
-from numpy.testing import assert_,\
-                          assert_almost_equal,\
+from numpy.testing import assert_equal,\
                           assert_allclose
 from nose.plugins.skip import SkipTest
 
@@ -32,6 +31,8 @@ from nifty2go import Field,\
                   PowerSpace,\
                   DomainTuple
 
+from nifty2go.sugar import create_power_operator
+
 from test.common import expand
 
 
@@ -50,7 +51,7 @@ class Test_Interface(unittest.TestCase):
         attribute = attribute_desired_type[0]
         desired_type = attribute_desired_type[1]
         f = Field(domain=domain)
-        assert_(isinstance(getattr(f, attribute), desired_type))
+        assert_equal(isinstance(getattr(f, attribute), desired_type), True)
 
 
 class Test_Functionality(unittest.TestCase):
@@ -85,6 +86,41 @@ class Test_Functionality(unittest.TestCase):
         assert_allclose(ps1.val/samples, fp1.val, rtol=0.2)
         assert_allclose(ps2.val/samples, fp2.val, rtol=0.2)
 
+
+    @expand(product([RGSpace((8,), harmonic=True),
+                     RGSpace((8, 8), harmonic=True, distances=0.123)],
+                    [RGSpace((8,), harmonic=True),
+                     LMSpace(12)]))
+    def test_DiagonalOperator_power_analyze(self, space1, space2):
+        np.random.seed(11)
+
+        p1 = PowerSpace(space1)
+        spec1 = lambda k: 42/(1+k)**2
+        fp1 = Field(p1, val=spec1(p1.kindex))
+
+        p2 = PowerSpace(space2)
+        spec2 = lambda k: 42/(1+k)**3
+        fp2 = Field(p2, val=spec2(p2.kindex))
+
+        S_1 = create_power_operator(space1, lambda x: np.sqrt(spec1(x)))
+        S_2 = create_power_operator(space2, lambda x: np.sqrt(spec2(x)))
+        S_1.set_diagonal(S_1.diagonal().weight(-1))
+        S_2.set_diagonal(S_2.diagonal().weight(-1))
+
+        samples = 500
+        ps1 = 0.
+        ps2 = 0.
+
+        for ii in range(samples):
+            rand_k = Field.from_random('normal', domain=(space1, space2))
+            sk = S_1.times(S_2.times(rand_k, spaces=1), spaces=0)
+            sp = sk.power_analyze(spaces=(0, 1), keep_phase_information=False)
+            ps1 += sp.sum(spaces=1)/fp2.sum()
+            ps2 += sp.sum(spaces=0)/fp1.sum()
+
+        assert_allclose(ps1.val/samples, fp1.val, rtol=0.2)
+        assert_allclose(ps2.val/samples, fp2.val, rtol=0.2)
+
     def test_vdot(self):
         s=RGSpace((10,))
         f1=Field.from_random("normal",domain=s,dtype=np.complex128)