示例#1
0
    def testPrefs(self):
        compiler = fc.Compiler()
        prefs = fractconfig.T("testprefs")
        prefs.set("compiler", "name", "x")
        prefs.set("compiler", "options", "foo")
        prefs.set_list("formula_path", ["fish"])
        prefs.set_list("map_path", ["wibble"])

        compiler.update_from_prefs(prefs)

        self.assertEqual("x", compiler.compiler_name)
        self.assertEqual("foo", compiler.flags)
        self.assertEqual(["fish"], compiler.path_lists[0])
        self.assertEqual(["wibble"], compiler.path_lists[3])
示例#2
0
    def testFileTimeChecking(self):
        'Check we notice when a file changes'
        try:
            f2 = fc.Compiler()

            formulas = '''
test_circle {
loop:
z = pixel
bailout:
|z| < @bailout
default:
float param bailout
	default = 4.0
endparam
}
test_square {
loop:
z = pixel
bailout: abs(real(z)) > 2.0 || abs(imag(z)) > 2.0
}
'''
            f = open("fttest.frm", "w")
            f.write(formulas)
            f.close()

            f2.load_formula_file("fttest.frm")
            frm = f2.get_formula("fttest.frm", "test_circle")
            self.assertEqual(frm.symbols.default_params(), [0, 4.0])

            formulas = formulas.replace('4.0', '6.0')
            time.sleep(1.0)  # ensure filesystem will have a different time
            f = open("fttest.frm", "w")
            f.write(formulas)
            f.close()

            frm2 = f2.get_formula("fttest.frm", "test_circle")
            self.assertEqual(frm2.symbols.default_params(), [0, 6.0])

        finally:
            os.remove("fttest.frm")
示例#3
0
        return self.param_display_name(name,param)

    def loadFctFile(self,f):
        old_gradient = self.get_gradient()
        line = f.readline()
        if line == None or not line.startswith("gnofract4d parameter file"):
            raise Exception("Not a valid parameter file")

        self.load(f)

        self.fix_bailout()
        #self.fix_gradients(old_gradient)
        self.saved = True
        
if __name__ == '__main__':
    g_comp = fc.Compiler()
    g_comp.add_func_path("formulas")
    g_comp.add_func_path("../formulas")
    g_comp.add_func_path(
            os.path.join(sys.exec_prefix, "share/gnofract4d/formulas"))

    f = T(g_comp)
    for arg in sys.argv[1:]:
        file = open(arg)
        f.loadFctFile(file)
        f.compile()
        im = image.T(64,48)
        f.draw(im)
        im.save(os.path.basename(arg) + ".png")
        
示例#4
0
 def __init__(self):
     self.compiler = fc.Compiler()
     self.update_compiler_prefs(fractconfig.instance)
     self.f = fractal.T(self.compiler)
示例#5
0
                for k in range(0,runlength):
                    ratio = (k+1.0) / runlength
                    nratio = 1.0 - ratio
                    col = [int(x_y[0] * nratio + x_y[1] * ratio) for x_y in pairs]
                    colors.append(col)
                    
            colors.append(rgb)
            i += 3
            runlength = 0
            
    return colors
     

if __name__ == "__main__":
    import sys
    import fc
    import fractal
    
    g_comp = fc.Compiler(fractconfig.userConfig())
    g_comp.add_func_path("../formulas")
    g_comp.load_formula_file("gf4d.frm")
    g_comp.load_formula_file("test.frm")
    g_comp.load_formula_file("gf4d.cfrm")

    f = fractal.T(g_comp)
    file = open(sys.argv[1])

    parse(file,f)

    f.save(open("parfile.fct","w"))
 def setUp(self):
     compiler = fc.Compiler()
     self.compiler = compiler
     self.gradient = gradient.Gradient()