Computer Science http://blog.stone-head.org an act of subversive playful cleverness Fri, 25 Mar 2016 23:32:25 +0000 en-US hourly 1 Cuanto cuesta vivir y estudiar ciencia de la computación en Arequipa http://blog.stone-head.org/cuanto-cuesta-vivir-y-estudiar-ciencia-de-la-computacion-en-arequipa/ http://blog.stone-head.org/cuanto-cuesta-vivir-y-estudiar-ciencia-de-la-computacion-en-arequipa/#comments Mon, 02 Mar 2015 00:52:11 +0000 http://blog.stone-head.org/?p=1156 Related posts:
  1. Primer programa de maestría en Ciencia de la Computación – UCSP Por primera vez nuestro país contará con un programa de...
  2. Ciencia de la Computación en Perú Estado actual de la carrera de Ciencia de la Computación...
  3. Curso del MIT Global Startup Labs en Arequipa Del 7 de julio al 11 de agosto del 2014...
]]>
IMG_0303Este post está orientado a las personas que están pensando trasladarse para vivir y estudiar Ciencia de la Computación en Arequipa. Principalmente mostrará números pero también algunos datos de contexto que pueden servir de referencia para quienes no conocen la ciudad. Si quiere ver los números directamente pasar a la sección “Costos”.

En Arequipa existen dos universidades que ofrecen la carrera de Ciencia de la Computación, y por coincidencia, también comparten un buen número de profesores. Lo cual significa, hasta cierto punto, que son alternativas relativamente equivalentes. Tenemos la que es privada y la que es pública.

Arequipa es una ciudad con cerca de 1 millón de habitantes. Los últimos 5 años ha sufrido grandes cambios en cuanto a la oferta comercial y de servicios. El año 2007, que la visite por primera vez, tenía solo el pequeño centro comercial “Saga” en la Av. Ejercito. Hoy tiene 5, dos de ellos comparable en tamaño, oferta de tiendas y productos al Jockey Plaza. En estos centros comerciales están las cadenas de “retail” más conocidas: Saga Falabella, Ripley, Oeschle, Tottus, Plaza Vea, Wong, Paris. En restaurantes de “fast-food”: TGI’s Fridays, Papa John’s, KFC, Bembos, Chillis, Telepizza, Subway, Norky’s etc. En restaurantes en otros formatos: Chicha, Tanta, Edo. En centros de diversión: Aura y Mr. Fish, con el mismo formato que en Lima, y decenas de establecimientos locales como Forum en la calle San Francisco en el centro. Cada mes se inauguran nuevos negocios tanto locales como de cadenas nacionales e internacionales. Además en Arequipa existen desde hace varios años productos y empresas o cadenas que no encuentras en otras ciudades como: Pizzas Presto (también en Tacna), Pollo Real, Estilos (retail fundado en Arequipa), Mamut (sandwiches), Capriccio (postres y restaurante), “Kola Escocesa”, Energina, Socosani, etc.

En cuanto a transporte se podría decir que Arequipa es una de las ciudades más conectadas del Perú después de Lima. El desde el 2012 tanto en infraestructura (construcción de ) como en tráfico para atender la demanda de los próximos 20 años. Demanda que ya se supero y llevará a ampliar la pista para poder recibir aviones de mayor tamaño y . Actualmente LAN tiene 8-9 vuelos diarios desde Lima. También llegan Peruvian Airlines y TACA (ahora Avianca). Para vuelos al extranjero, además de las mencionadas, cuenta con la empresa boliviana Amaszonas que cubre Bolivia, Paraguay y Uruguay; y Sky Airline que vuela a Chile, Argentina, Bolivia y Colombia.

Costos

En el esquema de presupuesto que coloco pongo énfasis en los costos nuevos para una persona que no vive en Arequipa. Estos principalmente son: vivienda, alimentación. Asumo que pensiones, vestimenta, transporte ya son costos que se tiene previamente, o se van a tener al momento de iniciar estudios en su ciudad de origen. Otro tema importante es que los costos de referencia están cerca de los más altos. Por tanto, es bastante posible encontrar opciones a costo menor para cada item. Finalmente, los costos siempre están relacionados al estilo de vida, pero cuando se es estudiante eso no es la prioridad :)

UCSP-CS por mes

Item Costo Comentarios
Pensión S/. 900 Categoría más alta.
Vivienda/Renta S/. 500 Cuartos/Habitaciones en zonas cercanas.
Alimentación S/. 420 Dos comidas al día. (7*2*30)
Transporte S/. 63 Tres viajes por día. (0.7*3*30)
Total S/. 1883

Los distritos cercanos a la UCSP son: Cercado, Yanahuara, Cayma (desde la plaza), Selva Alegre (baja). Se puede encontrar habitaciones más económicas en otras zonas como Miraflores, Selva Alegre (alta), Jose Luis Bustamente y Rivero.

UCSP-CS por semestre

Otra forma de ver el presupuesto es el costo efectivo por semestre, puesto que hay algunos costos adicionales que se pagan por semestre. En la UCSP el semestre dura 17 semanas, cerca de 5 meses.

Item Costo Unidades Total
Pensión S/. 900 5 S/. 4500
Matrícula S/. 275 1 S/. 275
Vivienda/Renta S/. 500 5 S/. 2500
Alimentación S/. 420 5 S/. 2100
Transporte S/. 63 5 S/. 315
Total S/. 9690

Algunas opciones para reducir costos en la UCSP son:

  • Pensión: beca por rendimiento (alumnos con ponderado mayor a 14 pueden postular), categorización (no es un gran descuento usualmente pero es algo). No hay descuento en la matrícula.
  • Pensión: Hay descuento de 4%-5% si pagas todo el semestre adelantado. Considerando la categoría más alta, el ahorro puede llegar a cerca de S/. 200.
  • Vivienda: buscar rentar un departamento con otros compañeros. Costo promedio de departamentos cercanos con 3 – 4 habitaciones es: S/. 1500 por mes.
  • Transporte: existen opciones de habitaciones frente a la UCSP, por lo que el costo sería 0 si vives allí.

UNSA-CS por mes

Item Costo Comentarios
Pensión S/. 0
Vivienda/Renta S/. 400 Cuartos/Habitaciones en zonas cercanas.
Alimentación S/. 360 Dos comidas al día. (6*2*30)
Transporte S/. 63 Tres viajes por día. (0.7*3*30)
Total S/. 823

Los distritos cercanos a la UNSA son: Cercado, Miraflores, Jose Luis Bustamente y Rivero.

UNSA-CS por semestre

Item Costo Unidades Total
Pensión S/. 0 0 S/. 0
Matrícula S/. 120 1 S/. 120
Vivienda/Renta S/. 400 5 S/. 2000
Alimentación S/. 360 5 S/. 1800
Transporte S/. 63 5 S/. 315
Total S/. 4235

Otras formas de reducir costos en la UNSA son:

  • Vivienda: Entiendo que existen opciones de vivienda a menor costo por la zona.
  • Alimentación: Entiendo que la universidad tiene comedor universitario que cuesta cerca de S/. 2.
]]>
http://blog.stone-head.org/cuanto-cuesta-vivir-y-estudiar-ciencia-de-la-computacion-en-arequipa/feed/ 6
Memory http://blog.stone-head.org/memory/ http://blog.stone-head.org/memory/#respond Mon, 15 Sep 2014 14:52:29 +0000 http://blog.stone-head.org/?p=1066 Related posts:
  1. Introducing no-computer.org It’s a honor for me to present a personal project...
  2. The memory of the future: smaller, faster, cheaper and less power consuming Society needs are always evolving. Computing, a field that has...
  3. Computers Don't be happy, be yourself....
]]>
Many people is not aware about this, but programs (apps for the young) are loaded into a computer’s memory the moment you start them. Sometimes earlier when you turn on your computer. Computer memory is a limited and volatile resource. Second level memory was invented so that your apps can also store permanent data, such as configuration data, input and output, etc. Second level memory was materialized in the form of hard disks, slower than the original memory, but reliable enough for permanent storage. People needed to have ways to find stored stuff without having to memorize addresses. Structured organization was then conceived in the form of objects: files and folders, using a physical-world analogy.

The introduction of the personal computer (PC) turned computers from number crunching machines into digital production tools. Production tools were gradually removed in favor of the computer for text editing, video editing, graphics, record keeping, etc. Eventually this phenomena increased the demand for larger permanent storage capacity. Every new computer model should advertise at least a 2x increase in it’s disk capacity to caught market’s eye. Worldwide Internet adoption put the pressure few levels up. Current models will never get you satisfaction as the latest and greatest promises. It’s an addiction. The more the better.

Little time has been put on re-thinking this clearly unsustainable model. Do you really need to have the largest disk in the world on your personal computer? I find that keeping files that are, and most likely will be, available forever in the Internet makes no sense. We should really ask ourselves this question: How much memory we want to keep? My take on such question is this:

  • Personal storage: For personal storage. Objects such as your personal and family photos and videos, documents or anything you produce and most likely don’t share. Digital objects that you want to keep with you all the time. Backup for this is critical and should be done the way we do it currently: full and incremental.
  • Shared storage: For digital objects you produce and share with the world. For objects that are available on the Internet but you want to keep a copy, and eventually sync-up every now and then with the source. Backup for this should be basically metadata for object’s source and relevant information plus full backup for specific objects. Say you are a scientist working on some data-set that you’ve grabbed from a public source.
  • Internet storage: For anything that is available on the Internet. Such objects are copied to your computer but not kept there, since they will be, most likely, always available online. Software installers,  development components, video and audio streams (including torrent’s), etc. are candidates for this area. Those objects basically live in the Internet and sometimes you want to use them. If you want to keep a copy, mark them as “shared” to have them on your “shared storage”. Backup for this is not necessary, you can simply keep metadata or URIs at application or filesystem level.

Memory is becoming larger and faster but access and retrieval is still constrained by time. My answer to the initial question came when asking myself if the “download” model is still valid today. Computers were designed under the copy model. To work with data you need to copy from disk to main memory or the other way. The moment you visit a website a copy of that is stored on your browser’s assigned memory. Does this model still makes sense in the Internet and always-on world? I think the model should be upgraded.

]]>
http://blog.stone-head.org/memory/feed/ 0
Curso del MIT Global Startup Labs en Arequipa http://blog.stone-head.org/curso-del-mit-global-startup-labs-en-arequipa/ http://blog.stone-head.org/curso-del-mit-global-startup-labs-en-arequipa/#respond Thu, 08 May 2014 22:52:48 +0000 http://blog.stone-head.org/?p=990 Related posts:
  1. Campamento peruano de programación 2013 El Campamento Peruano de Programación 2013 tiene por objetivo aumentar...
  2. Aprendiendo del ecosistema de software libre El pasado 24 de junio a invitación del Chapter Lima...
  3. Primer programa de maestría en Ciencia de la Computación – UCSP Por primera vez nuestro país contará con un programa de...
]]>

Conferencia de prensa de presentación del curso el 2 de julio 2014.

Del 7 de julio al 11 de agosto del 2014 se realizara en la Universidad Católica San Pablo, Arequipa el curso de “Entrepreneurship” dictado por el MIT Global Startup Labs. El curso está orientado a la creación de empresas de base tecnológica con alcance global.

Se busca la participación, en gran medida, de alumnos de ciencia de la computación, y personas de otras áreas con interés en la creación de empresas de base tecnológica. Durante 6 semanas los alumnos estarán abocados en aprender los diferentes aspectos que involucra la generación de este tipo de empresas.

Todos los detalles sobre el mismo en el sitio web del programa de Ciencia de la computación de la UCSP.

Update (20/7/2014):

al curso.

]]>
http://blog.stone-head.org/curso-del-mit-global-startup-labs-en-arequipa/feed/ 0
Concurso Escolar de Programación – 2014 http://blog.stone-head.org/concurso-escolar-de-programacion-2014/ http://blog.stone-head.org/concurso-escolar-de-programacion-2014/#respond Tue, 15 Apr 2014 03:55:10 +0000 http://blog.stone-head.org/?p=981 Related posts:
  1. Concurso Escolar de Programación El ACM Chapter de la UCSP está organizando la primera...
  2. Campamento peruano de programación 2013 El Campamento Peruano de Programación 2013 tiene por objetivo aumentar...
  3. Concurso FINCyT-CIES: Innovación tecnológica empresarial en el Perú El programa de Ciencia y Tecnología (FINCyT) está organizando un...
]]>
Concurso Escolar de Programacion 2014

CEP2014

El capitulo estudiantil de ACM de la UCSP está organizando la segunda edición del Concurso Escolar de Programación. El Concurso Escolar de Programación es una competencia que permitirá desarrollar tu creatividad y medir tus habilidades de comprensión lectora, matemática, abstracción y, finalmente, programación. Los participantes probarán sus habilidades de abstracción, diseño de algoritmos y programación en un ambiente competitivo.

Tal como la edición anterior, se realizará capacitación y entrenamiento a los colegios de la ciudad de Arequipa que deseen participar de este programa. Sin embargo, el concurso será abierto a cualquier participante que cumpla con los requisitos de las bases. Te animamos a formar parte del mundo de la programación competitiva. Esto te ayudara a conocer y aprender con los mejores del Perú y del mundo.

Esperamos que los participantes puedan obtener la experiencia necesaria para después intentar participar de las competencias internacionales como el – IOI o la competencia . De los participantes de la edición anterior hay más de uno que continúa desarrollando sus habilidades, preparándose y participando de competencias de este tipo.

Si deseas inscribirte o inscribir a tu colegio, visita el sitio web del concurso:

]]>
http://blog.stone-head.org/concurso-escolar-de-programacion-2014/feed/ 0
Primer programa de maestría en Ciencia de la Computación – UCSP http://blog.stone-head.org/primer-programa-de-maestria-en-ciencia-de-la-computacion-ucsp/ http://blog.stone-head.org/primer-programa-de-maestria-en-ciencia-de-la-computacion-ucsp/#comments Tue, 10 Dec 2013 17:30:29 +0000 http://blog.stone-head.org/?p=935 Related posts:
  1. UNSA abre primer programa de doctorado en CS La Universidad San Agustin de Arequipa acaba de anunciar la...
  2. Ciencia de la Computación en Perú Estado actual de la carrera de Ciencia de la Computación...
  3. Cómo y porqué llegue a la UCSP Este es un relato corto que me anime a escribir...
]]>
Por primera vez nuestro país contará con un programa de maestría a tiempo completo, o dedicación exclusiva, en Ciencia de la Computación. La a través de la Facultad de Ingeniería y Computación, que ya ofrece el tendrá a cargo el primer gracias a de .

El Dr. Alex Cuadros, líder de este proyecto y logro para el área de computación, ha que gracias a este financiamiento del gobierno peruano los estudiantes podrán recibir un estipendio que asciende a S/. 2500 y también incluye seguro médico entre otros beneficios. Este nuevo programa, que iniciará actividades el año 2014, contará también con fondos ascendentes a S/. 100,000 anuales para dedicarlos exclusivamente a fines de investigación.

Los están publicados ya en el sitio web del programa de maestría.

]]>
http://blog.stone-head.org/primer-programa-de-maestria-en-ciencia-de-la-computacion-ucsp/feed/ 2
Concurso Escolar de Programación http://blog.stone-head.org/concurso-escolar-de-programacion/ http://blog.stone-head.org/concurso-escolar-de-programacion/#respond Wed, 30 Oct 2013 16:02:10 +0000 http://blog.stone-head.org/?p=920 Related posts:
  1. Campamento peruano de programación 2013 El Campamento Peruano de Programación 2013 tiene por objetivo aumentar...
  2. Concurso FINCyT-CIES: Innovación tecnológica empresarial en el Perú El programa de Ciencia y Tecnología (FINCyT) está organizando un...
  3. Ciencia de la Computación en Perú Estado actual de la carrera de Ciencia de la Computación...
]]>
El ACM Chapter de la UCSP está organizando la primera edición del Concurso Escolar de Programación. El Concurso Escolar de Programación es una competencia que fomenta la creatividad e innovación a través del análisis y solución de problemas computacionales. Los participantes probarán sus habilidades de abstracción, diseño de algoritmos y programación en un ambiente competitivo.

El concurso se llevará a cabo el 6 y 7 de diciembre del 2013 en la   – Arequipa, Perú. La modalidad de participación es individual. Esperamos que los participantes puedan obtener la experiencia necesaria para después intentar participar de las competencias internacionales como el – IOI o la competencia .

Los participantes pueden registrarse y ver el reglamento del concurso en:

]]>
http://blog.stone-head.org/concurso-escolar-de-programacion/feed/ 0
Posgrado en computación en el extranjero http://blog.stone-head.org/posgrado-en-computacion-en-el-extranjero/ http://blog.stone-head.org/posgrado-en-computacion-en-el-extranjero/#respond Wed, 19 Jun 2013 16:56:46 +0000 http://blog.stone-head.org/?p=863 Related posts:
  1. Ciencia de la Computación en Perú Estado actual de la carrera de Ciencia de la Computación...
  2. XI Congreso de la Sociedad Peruana de Computación – Puno El Congreso de la Sociedad Peruana de Computación (CSPC) es...
  3. Primer programa de maestría en Ciencia de la Computación – UCSP Por primera vez nuestro país contará con un programa de...
]]>

El pasado viernes 14 de junio el Capítulo Estudiantil de ACM de la Universidad Católica San Pablo realizó un evento respecto del tema de estudios de posgrado en computación en el extranjero. En el evento se trataron los siguientes aspectos:

  • Oportunidades existentes para estudios de posgrado.
  • Facilidades y apoyo disponible.
  • Perfíl del estudiante.

En el evento contamos con la participación de peruanos miembros de la comunidad de computación quienes están haciendo o han realizado sus estudios de posgrado en el extranjero. En esta oportunidad participaron:

  • Nelly Condori Fernandez, PhD, Universidad de Twente, Holanda
  • Nils Murrugarra Llerena, PhD Student, University of Pittsburgh, EE.UU.
  • Jorge Carlos Valverde Rebaza, PhD Student, Universidad de São Paulo, Brasil
  • Omar Florez, PhD, Utah State University, EEUU

Ellos trataron acerca de las oportunidades y aspectos a tener en cuenta en cada una de sus universidades, con énfasis en las posibilidades en Brasil y EEUU.

En un futuro desarrollaremos otros conversatorios sobre el tema y esperamos contar con más panelistas quienes se encuentran desarrollando su actividad profesional y académica en el extranjero.

 

]]>
http://blog.stone-head.org/posgrado-en-computacion-en-el-extranjero/feed/ 0
SIBGRAPI 2013 – The Conference on Graphics, Patterns, and Images http://blog.stone-head.org/sibgrapi-2013-the-conference-on-graphics-patterns-and-images/ http://blog.stone-head.org/sibgrapi-2013-the-conference-on-graphics-patterns-and-images/#respond Thu, 24 Jan 2013 15:30:36 +0000 http://blog.stone-head.org/?p=781 Related posts:
  1. Campamento peruano de programación 2013 El Campamento Peruano de Programación 2013 tiene por objetivo aumentar...
]]>
SIBGRAPI 2013 – The Conference on Graphics, Patterns, and Images is the 26th edition of the formerly Brazilian Symposium on Computer Graphics and Image Processing conference annually promoted by the Brazilian Computer Society (), through its special interest group on Graphics and Image Processing (CEGRAPI).

The XXVI edition of the SIBGRAPI will be organized for the first time outside of Brazil, in coordination with the Peruvian Computer Society (), its special interest group on Computer Graphics and Images (CGI) and the San Pablo Catholic University ().

The conference will be held on August 5-9, in the historical city of Arequipa, Peru. Arequipa is placed in the Southern Coastal region of Peru just below the edge of the Altiplano at 2335 meters above sea level and surrounded by three impressive volcanoes.  Arequipa is also known as The White City (Ciudad Blanca) because its many colonial-era Spanish buildings built of “sillar”, a pearly white volcanic rock. The city is about an hour away by plane from Lima and about 35 minutes away of Cuzco by plane.

Student researchers and professionals are invited to participate by submitting original works in all areas of Computer Graphics, Image Processing, Computer Vision and Pattern Recognition, including but not limited to:

Animation and simulation, Biomedical imaging and visualization, Biometrics, Computational geometry, Computer vision and robotics, Document processing and analysis, Feature extraction and matching, Games, Geometric and solid modeling, Graphical interfaces, Graphics hardware, Image and video analysis, Image and video filtering and restoration, Image and video registration, Image and video retrieval, Image and video segmentation, Information visualization, Visual learning, Mathematical morphology, Mobile graphics, Motion and tracking, Non-photorealistic rendering, Pattern recognition, Point-based modeling, Real-time imaging and rendering, Remote sensing and geophysical imaging, Scientific visualization, Shape representation and matching, Simplification and compression, Stereo/3D imaging, Surface reconstruction, Virtual and augmented reality Visual data mining.

Visit the conference’s website for more details:

]]>
http://blog.stone-head.org/sibgrapi-2013-the-conference-on-graphics-patterns-and-images/feed/ 0
Campamento peruano de programación 2013 http://blog.stone-head.org/campamento-peruano-de-programacion-2013/ http://blog.stone-head.org/campamento-peruano-de-programacion-2013/#respond Thu, 10 Jan 2013 18:48:24 +0000 http://blog.stone-head.org/?p=772 Related posts:
  1. Ciencia de la Computación en Perú Estado actual de la carrera de Ciencia de la Computación...
  2. Cómo y porqué llegue a la UCSP Este es un relato corto que me anime a escribir...
]]>
El Campamento Peruano de Programación 2013 tiene por objetivo aumentar las habilidades algorítmicas y de resolución de problemas de los competidores peruanos del , con la visión de que sean capaces de clasificar a las finales mundiales del 2014 y posteriores.

La sede de este campamento es la , Arequipa, Perú. El campamento se realizará del 11 de febrero al 9 de marzo del 2013. El evento tendrá como a coachs y ex-competidores peruanos y argentinos.

Para mayor información visite la página del evento:

]]>
http://blog.stone-head.org/campamento-peruano-de-programacion-2013/feed/ 0
Function testing using function pointers in C++ http://blog.stone-head.org/function-testing-using-function-pointers-in-c/ http://blog.stone-head.org/function-testing-using-function-pointers-in-c/#comments Wed, 14 Nov 2012 03:55:11 +0000 http://blog.stone-head.org/?p=693 Related posts:
  1. Compute Clusters Integration for Debian Development and Building – Report 4 Hello, this is the fourth report for the project. First,...
  2. Compute Clusters Integration for Debian Development and Testing – Report 3 Hello this is the third report regarding my project. As...
]]>
I do like the way programmers think in terms of DRY, for instance, among other forms of optimization. A couple of days ago I wanted to test different implementations of the same algorithm in C++.

The usual approach would be to implement those algorithms, call them in main() and see the results. A more interesting approach would be to write a validator for each function and print whether the result is correct or not.

Since both are boring and break the rule of DRY, I’ve decided to go complicated but productive, so I’ve implemented a function testing method using function pointers that will allow me to write a single function and use it to test the algorithms using different input and expected results.

Let’s say I have 3 algorithms that implement Modular Exponentiation.

uint64 modexp1new(const uint64 &a, const uint64 &_p, const uint64 &n){
 ...
}

uint64 modexp2(const uint64 &_a, const uint64 &_p, const uint64 &_n){
 ...
} 

uint64 modexp3(const uint64 &a, const uint64 &p, const uint64 &n){
 ...
}

If you are not familiar with the syntax, const means that the parameter is constant, thus it will not be modified inside the function. The & means that the parameter is passed as a reference, read the memory address of the calling variable, so we don’t overload fill the RAM with new variables new copies of the variables.

Now, the testing part. For my very own purposes I just want to test those particular functions and know whether if the result they output conforms what I do expect. Some people call this unit testing.
I do also want to test it in different scenarios, meaning input and output.

So, I’m creating a function that will get the three parameters required to call the functions, and a fourth parameter that is the value I do expect to be the correct answer.

Now, since I don’t want to repeat myself writing a call for each case, I’m going to create a function pointer that is an array and has the function’s address as their value. That way I can call them in a loop, and voila! we are done.

Finally, after calling the function I check the result with the expected value and print an OK or FAIL.

Tricky part for this could be understanding the function pointer. Two things to consider: the returning value from the referenced functions has to be the same for all. Second: the input definition for each function has to be similar too. This is important because function pointers are just pointers and they need to know the size of the data type in order to navigate the memory.

For this sample code the uint64 is a typedef for long long, of course. Full code is below.

void testAlgos(const uint64 &a, const uint64 &e, const uint64 &n, const uint64 &r){
  uint64 (*fP[3])(const uint64&, const uint64&, const uint64&) = { &modexp1new, &modexp2, &modexp3 };
  uint64 t;

  for(int i=0; i<3; i++){
  t = fP[i](a, e, n);
  std::cout < < "F(" << i << ") " << t << "\t";
  if (t == r){
    std::cout << "OK";
  } else {
    std::cout << "FAIL";
  }
    std::cout << std::endl;
  }
}

Now that I have this, I can use it in main this way.

int main(){

  uint64 a = 3740332;
  uint64 e = 44383;
  uint64 n = 3130164467;
  uint64 r = 1976425102;
  testAlgos(a, e, n, r);

  a = 404137263;
  r = 2520752541;
  testAlgos(a, e, n, r);

  a = 21;
  e = 3;
  n = 1003;
  r = 234;
  testAlgos(a, e, n, r);

  return 0;
}

Resulting in:

F(0) 657519405 FAIL
F(1) 1976425102 OK
F(2) 657519405 FAIL
F(0) -2752082808 FAIL
F(1) 2520752541 OK
F(2) -2752082808 FAIL
F(0) 234 OK
F(1) 234 OK
F(2) 234 OK 

I’m happy about not having to write tests like this for all use cases:

std::cout < < "f1: " << modexp1new(a, e, n) << std::endl;
std::cout << "f2: " << modexp2(a, e, n) << std::endl;
std::cout << "f3: " << modexp3(a, e, n) << std::endl; 

Now, happiness can be more exciting if I do use templates so I can test any function independent of the data type for the returning and input values. You know, more abstraction. Homework if time allows! Have fun!

]]>
http://blog.stone-head.org/function-testing-using-function-pointers-in-c/feed/ 5