Esempio n. 1
0
    def testSetParamBag(self):
        fs1 = formsettings.T(g_comp,None,"cf0")
        fs1.set_formula("standard.ucl","DirectOrbitTraps",g_grad)
        
        bag = fctutils.ParamBag()
        bag.load(StringIO.StringIO("""formulafile=stdexp.cfrm
function=DirectOrbitTraps
@_transfer=ident
@trapmergemode=mergenormal
@_density=1.00000000000000000
@_offset=0.00000000000000000
@angle=0.00000000000000000
@aspect=1.00000000000000000
@diameter=1.00000000000000000
@solidcolor=0
@startcolor=(1.00000000000000000,1.00000000000000000,1.00000000000000000,0.00000000000000000)
@threshold=0.25000000000000000
@trapcenter=(0.00000000000000000,0.00000000000000000)
@trapcolor=8
@trapfreq=1.00000000000000000
@trapmergemodifier=0
@trapmergeopacity=0.20000000000000001
@trapmergeorder=0
@traporder=4.00000000000000000
@trapshape=23
[endsection]
"""))
        fs1.load_param_bag(bag)

        self.assertEqual(fs1.get_func_value("@trapmergemode"),"mergenormal")
        self.assertEqual(fs1.get_named_param_value("@trapshape"),23)
Esempio n. 2
0
    def testSetNamedParam(self):
        fs1 = formsettings.T(g_comp)
        fs1.set_formula("test.frm","test_all_types",g_grad)

        fs1.set_named_param("@b","True")
        self.assertEqual(True, fs1.get_named_param_value("@b"))

        fs1.set_named_param("@b","0")
        self.assertEqual(False, fs1.get_named_param_value("@b"))

        fs1.set_named_param("@i","-122985354")
        self.assertEqual(-122985354, fs1.get_named_param_value("@i"))

        # FIXME this is weird behavior
        fs1.set_named_param("@c","(77.1,-90.3)")
        self.assertEqual(77.1, fs1.get_named_param_value("@c")) 

        fs1.set_named_param("@h","(79.1,-90.3,99.0,17.777)")
        self.assertEqual(79.1, fs1.get_named_param_value("@h")) 

        fs1.set_named_param("@_gradient","""GIMP Gradient
Name: burning_coals
3
0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.871094 0.429688 0.156250 1.000000 0 0
0.000000 0.002500 0.005000 0.871094 0.429688 0.156250 1.000000 0.894531 0.484375 0.035156 1.000000 0 0
0.005000 0.006250 0.007500 0.894531 0.484375 0.035156 1.000000 0.750000 0.546875 0.015625 1.000000 0 0
""")
Esempio n. 3
0
    def testCreate(self):
        fs = formsettings.T(g_comp)

        self.assertEqual(None,fs.formula)
        self.assertEqual(None,fs.funcName)
        self.assertEqual(None,fs.funcFile)
        self.assertEqual([], fs.params)
        self.assertEqual(False,fs.dirty)

        p = Parent()
        fs2 = formsettings.T(g_comp,p)

        fs2.changed()
        self.assertEqual(1,p.changes)
        self.assertEqual(True, fs2.dirty)
        self.assertEqual(True, p.dirty)
Esempio n. 4
0
    def testSetFuncs(self):
        fs1 = formsettings.T(g_comp)
        fs1.set_formula("gf4d.frm","Mandelbrot",g_grad)

        # should return true if it actually changed
        self.assertEqual(True,fs1.set_named_func("@bailfunc", "manhattanish"))
        self.assertEqual(False,fs1.set_named_func("@bailfunc", "manhattanish"))
Esempio n. 5
0
 def testSetFormula(self):
     fs = formsettings.T(g_comp)
     fs.set_formula("gf4d.frm","Mandelbrot",g_grad)
     
     self.assertEqual("gf4d.frm",fs.funcFile)
     self.assertEqual("Mandelbrot", fs.funcName)
     self.assertNotEqual(None,fs.formula, "Formula should have been set")
     self.assertNotEqual([], fs.params)
Esempio n. 6
0
    def testParamsOfType(self):
        fs = formsettings.T(g_comp)
        fs.set_formula("test.frm","test_all_types",g_grad)

        params = fs.params_of_type(fracttypes.Complex)
        self.assertEqual(params, ['t__a_c'])

        params = fs.params_of_type(fracttypes.Image)
        self.assertEqual(params, ['t__a_im'])
Esempio n. 7
0
    def set_transform(self,funcfile,funcname,i):
        fs = formsettings.T(self.compiler,self,self.get_transform_prefix())    
        fs.set_formula(funcfile, funcname, self.get_gradient())
        if len(self.transforms) <= i:
            self.transforms.extend([None] * (i- len(self.transforms)+1))

        self.transforms[i] = fs
        self.formula_changed()
        self.changed()
Esempio n. 8
0
    def testNames(self):
        fs = formsettings.T(g_comp)
        fs.set_formula("gf4d.frm","Mandelbrot",g_grad)

        names = fs.func_names()
        names.sort()
        self.assertEqual(["@bailfunc"],names)

        names = fs.param_names()
        names.sort()
        self.assertEqual(["@_gradient", "@bailout"],names)
Esempio n. 9
0
    def testCopy(self):
        fs1 = formsettings.T(g_comp)
        fs1.set_formula("gf4d.frm","Mandelbrot",g_grad)

        fs2 = copy.copy(fs1)
        fs1.set_formula("test.frm", "test_defaults", g_grad)

        # check fs2 wasn't updated
        self.assertEqual(fs2.funcFile, "gf4d.frm")
        self.assertEqual(fs2.funcName, "Mandelbrot")
        self.assertEqual(fs2.params, [g_grad, 4.0])
        self.assertEqual(fs2.paramtypes, [fracttypes.Gradient, fracttypes.Float])
Esempio n. 10
0
    def testInitValue(self):
        fs1 = formsettings.T(g_comp)
        fs1.set_formula("test.frm","test_all_types",g_grad)

        self.assertEqual("1",fs1.initvalue("@b"))
        self.assertEqual("7",fs1.initvalue("@i"))
        self.assertEqual("99.00000000000000000",fs1.initvalue("@f"))
        self.assertEqual("(3.00000000000000000,4.00000000000000000)",fs1.initvalue("@c"))
        self.assertEqual("(1.00000000000000000,2.00000000000000000,3.00000000000000000,4.00000000000000000)",
                         fs1.initvalue("@h"))

        self.assertEqual("warp",fs1.initvalue("@c","@c"))
        self.assertEqual("[\n]", fs1.initvalue("@im"))
Esempio n. 11
0
    def testNudge(self):
        fs1 = formsettings.T(g_comp)
        fs1.set_formula("test.frm","test_defaults",g_grad)

        (a,b) = (fs1.params[1],fs1.params[2])
        self.assertEqual(False,fs1.nudge_param(1,0,0))
        self.assertEqual(a, fs1.params[1])
        self.assertEqual(b, fs1.params[2])        
        
        self.assertEqual(True,fs1.nudge_param(1,4,2))

        self.assertEqual(a + 4 * 0.025, fs1.params[1])
        self.assertEqual(b + 2 * 0.025, fs1.params[2])
Esempio n. 12
0
 def testAllTypesBasic(self):
     fs1 = formsettings.T(g_comp)
     fs1.set_formula("test.frm","test_all_types",g_grad)
Esempio n. 13
0
 def append_transform(self,funcfile,funcname):
     fs = formsettings.T(self.compiler,self,self.get_transform_prefix())    
     fs.set_formula(funcfile, funcname, self.get_gradient())
     self.transforms.append(fs)
     self.formula_changed()
     self.changed()
Esempio n. 14
0
    def __init__(self,compiler,site=None):
        fctutils.T.__init__(self)
        
        self.format_version = 2.8

        self.bailfunc = 0
        # formula support
        self.forms = [
            formsettings.T(compiler,self), # formula
            formsettings.T(compiler,self,"cf0"), # outer
            formsettings.T(compiler,self,"cf1") # inner
            ]

        self.transforms = []
        self.next_transform_id = 0
        self.compiler_options = { "optimize" : 1 }
        self.yflip = False
        self.periodicity = True
        self.period_tolerance = 1.0E-9
        self.auto_epsilon = False # automatically set @epsilon param, if found
        self.auto_deepen = True # automatically adjust maxiter
        self.auto_tolerance = True # automatically adjust periodicity
        self.antialias = 1
        self.compiler = compiler
        self.outputfile = None
        self.render_type = 0
        self.pfunc = None
        self.handle = None

        self.warp_param = None
        # gradient
        
        # default is just white outside
        self.default_gradient = gradient.Gradient()
        self.default_gradient.segments[0].left_color = [1.0,1.0,1.0,1.0]
        self.default_gradient.segments[0].right_color = [1.0,1.0,1.0,1.0]

        # solid colors are black
        self.solids = [(0,0,0,255),(0,0,0,255)]

        # formula defaults
        self.set_formula(T.DEFAULT_FORMULA_FILE,T.DEFAULT_FORMULA_FUNC,0)
        self.set_inner("gf4d.cfrm","zero")
        self.set_outer("gf4d.cfrm","continuous_potential")
        self.dirtyFormula = True # formula needs recompiling
        self.dirty = True # parameters have changed
        self.clear_image = True
        
        self.reset()

        # interaction with fract4dc library
        self.site = site or fract4dc.site_create(self)

        # colorfunc lookup
        self.colorfunc_names = [
            "default", 
            "continuous_potential",
            "zero",
            "ejection_distance",
            "decomposition",
            "external_angle"]

        self.saved = True # initial params not worth saving
Esempio n. 15
0
 def testErroneousFormula(self):
     fs = formsettings.T(g_comp)
     self.assertRaises(ValueError, fs.set_formula,"test.frm","test_error", g_grad)
Esempio n. 16
0
 def testNoSuchFile(self):
     fs = formsettings.T(g_comp)
     self.assertRaises(IOError, fs.set_formula,"no_such_file.frm","Mandelbrot", g_grad)
Esempio n. 17
0
 def testNoSuchFormula(self):
     fs = formsettings.T(g_comp)
     self.assertRaises(ValueError, fs.set_formula,"gf4d.frm","no_such_formula", g_grad)
Esempio n. 18
0
    def testFuncValue(self):
        fs = formsettings.T(g_comp)
        fs.set_formula("gf4d.frm","Mandelbrot",g_grad)

        self.assertEqual("cmag",fs.get_func_value("@bailfunc"))
Esempio n. 19
0
    def testSetParams(self):
        fs1 = formsettings.T(g_comp)
        fs1.set_formula("gf4d.frm","Mandelbrot",g_grad)

        self.assertEqual(True, fs1.set_param(1,"5.0"))
        self.assertEqual(False, fs1.set_param(1,"5.0"))
Esempio n. 20
0
    def testGetNamedParamValue(self):
        fs1 = formsettings.T(g_comp)
        fs1.set_formula("gf4d.frm","Mandelbrot",g_grad)

        self.assertEqual(4.0,fs1.get_named_param_value("@bailout"))
Esempio n. 21
0
    def testMutate(self):
        fs1 = formsettings.T(g_comp)
        fs1.set_formula("gf4d.frm","Mandelbrot",g_grad)

        fs1.mutate(0.0,1.0)
Esempio n. 22
0
    def testSetNamedItem(self):
        fs1 = formsettings.T(g_comp)
        fs1.set_formula("gf4d.frm","Mandelbrot",g_grad)

        fs1.set_named_item("@bailfunc","manhattan")
        fs1.set_named_item("@bailout","7.0")