Codificación de las conexiones en Perl (4 / 6 paso)

Paso 4: Ejemplos y casos de prueba

Vamos a ejercitar el módulo, con algunos casos de prueba.

Utilizar el módulo que necesitamos

  • agregar la ubicación del módulo en la lista de rutas

    • Esto se hace después de la primera línea con-. /
    • . / asume que el módulo está en el mismo directorio que el script
  • Agregue la línea "uso pares;"
    • Nota el nombre del paquete, nombre de archivo del módulo fueron elegidos para que coincida con

El teststubs_pairwise.pl contiene una versión corriente de estos ejemplos:

 #!/usr/bin/perl -I ./ <br>use strict; use Data::Dumper; use pairwise; ################## teststub1(); teststub2(); teststub3(); teststub4(); ################## #teststubs listed here 

Caso de prueba 1: que es conmigo.

Donuts son negocio serio si desea que su parte justa.
Nada dice que tomamos donuts seriamente como automatizar un llamado a la acción.
En el primer ejemplo construimos un mapa de asociación contacto & y crear una llamada a la acción.

Código

 sub teststub1 {<br> print "teststub1\n"; my $kvp1 = pairwise->new(); $kvp1->addkvp('Chad' ,'locust team'); $kvp1->addkvp('Mike' ,'locust team'); $kvp1->addkvp('Dave' ,'locust team'); $kvp1->addkvp('Jon' ,'locust team'); $kvp1->addkvp('Chad' ,'volunteer'); $kvp1->addkvp('Jon' ,'volunteer'); $kvp1->addkvp('Steve' ,'Citizen Forester'); $kvp1->addkvp('Dave' ,'Music Fan'); # print Dumper $kvp1; print $kvp1->map2str() . "\n"; $kvp1->invertkvp(); print $kvp1->map2str() . "\n"; my $locust_team = $kvp1->getvalue('locust team'); print "locust team Assemble! Attn:" . join (' ', . "\n"; return; } 

Salida (los donuts no ninguna posibilidad!)

 teststub1 Dave,1,Music Fan Dave,1,locust team Jon,1,locust team Jon,1,volunteer Mike,1,locust team Chad,1,locust team Chad,1,volunteer Steve,1,Citizen Forester Music Fan,1,Dave locust team,1,Dave locust team,1,Mike locust team,1,Jon locust team,1,Chad Citizen Forester,1,Steve volunteer,1,Jon volunteer,1,Chad locust team Assemble! Attn:Dave Mike Jon Chad 

Caso de prueba 2: 1 papa 2 Papa...

Podemos encontrar hacia fuera si hay más de 1 patata

Código

 sub teststub2 {<br> print "teststub2\n"; my $kvp1 = pairwise->new(); $kvp1->addkvp('potato1' ,'red'); $kvp1->addkvp('potato2' ,'blue'); $kvp1->addkvp('potato1' ,'blue'); $kvp1->addkvp('potato1' ,'red'); $kvp1->addkvp('potato2' ,'blue'); $kvp1->addkvp('potato3' ,'red'); $kvp1->addkvp('potato4' ,'red'); $kvp1->addkvp('potato4' ,'red'); #print $kvp1->map2str() . "\n"; $kvp1->invertkvp(); #print $kvp1->map2str() . "\n"; #Mr Potato impersonators... my $redpotatos = $kvp1->getvalue('red'); if (scalar( gt '1') { print "More then 1 red potato here \n"; } else { print "Nothing is here ... move along \n"; } } 

Salida (Aviso del tamaño de la matriz proporciona una indicación de la fuerza de enlace)

 teststub2 More than 1 red potato here 

Caso de prueba 3: La caza para la papa roja

En lógica hay un concepto de . Modus Tollens. MT se reduce «negar el consecuente.»

Dicho de otra forma, si p implica q y no q entonces no p
Usaremos esto como parte de un proceso de eliminación para encontrar la verdadera---uhhh---Papa rojo.

Código

 sub teststub3 { print "teststub3\n"; my $kvp1 = pairwise->new(); $kvp1->addkvp('potato1' ,'blue'); $kvp1->addkvp('potato2' ,'red'); $kvp1->addkvp('potato1' ,'red'); $kvp1->addkvp('potato1' ,'blue'); $kvp1->addkvp('potato2' ,'red'); $kvp1->addkvp('potato3' ,'blue'); $kvp1->addkvp('potato4' ,'blue'); $kvp1->addkvp('potato4' ,'blue'); print "starting with : \n"; print $kvp1->map2str() . "\n"; $kvp1->invertkvp(); my $bluelist = $kvp1->getvalue('blue'); foreach my $tot ( $kvp1->removekey($tot); print "removing $tot from consideration\n"; } print "Modus Tolens NOT blue : \n"; print $kvp1->map2str() . "\n"; } 

Salida (Aviso a pesar de múltiples vínculos asociativos, las patatas con las asociaciones de azul se removieron en el 1 paso)

 More then 1 red potato here <br>teststub3 starting with : potato4,2,blue potato2,2,red potato3,1,blue potato1,2,blue potato1,1,red removing potato4 from consideration removing potato3 from consideration removing potato1 from consideration Modus Tolens NOT blue : potato2,2,red 

Caso 4: Histogramas y encontrar las intersecciones

Así que si los valores representan una coordenada para una clave específica, puede ser posible determinar intersecciones

Código:

 sub teststub4 {<br> print "teststub4 finding interesection of defined points\n"; my $kvp1 = pairwise->new(); $kvp1->addkvp('wire1' ,'2,1'); $kvp1->addkvp('wire1' ,'2,2'); $kvp1->addkvp('wire1' ,'2,3'); $kvp1->addkvp('wire1' ,'2,4'); $kvp1->addkvp('wire1' ,'2,4'); $kvp1->addkvp('wire2' ,'4,2'); $kvp1->addkvp('wire2' ,'3,2'); $kvp1->addkvp('wire2' ,'2,2'); $kvp1->addkvp('wire2' ,'1,2'); print "starting with :\n"; print $kvp1->map2str() . "\n"; $kvp1->invertkvp(); my $multi = $kvp1->nonuniqkeys(); print "nonuniqkeys returns a hash of keys with multiple associations / overlaps\n" . Dumper $multi; $multi = $kvp1->nonuniqkvp(); print "nonuniqkeys returns a hash of kvp defined multiple times \n" . Dumper $multi; } 

Salida: (Observe que el campo contiene comas y predeterminada el separador es una coma. Esto ilustra cómo tokenización puede hacerse más complicado. La función de separador puede utilizarse para cambiar lo que el método map2str se une a los campos de... Alternativamente, uno estratégicamente podría tomar ventaja de la situación. En cualquier caso, constante aplicación repetible permite al desarrollador entender y trabajar con el comportamiento. )

 teststub4 finding intersection of defined points<br>starting with : wire1,1,2,3 wire1,1,2,2 wire1,2,2,4 wire1,1,2,1 wire2,1,3,2 wire2,1,1,2 wire2,1,4,2 wire2,1,2,2 nonuniqkeys returns a hash of keys with multiple associations / overlaps $VAR1 = { '2,2' => { 'wire1' => 1, 'wire2' => 1 } }; nonuniqkeys returns a hash of kvp difined multiple times $VAR1 = { '2,4' => { 'wire1' => 2 } }; 

Artículos Relacionados

El peligro de las conexiones eléctricas flojas y arreglarlos!

El peligro de las conexiones eléctricas flojas y arreglarlos!

En el mundo de la energía eléctrica es importante hacer bien todas las conexiones. Es tiene que ser apretada (no tan apretada que tira hilos de pernos/tornillos) para evitar contactos de alta resistencia que generará calor.Soldadura de las conexiones
Cómo hacer las conexiones en el muelle 9

Cómo hacer las conexiones en el muelle 9

¿Quieres conocer a gente en el laboratorio de electrónica pero no tienen idea sobre qué hablar? Hacer algunas conexiones! Pregúnteles acerca de un proyecto que fracasó en el campo, lo más probable es que es debido a una conexión suelta.Todos hemos si
Cocodrilo conduce con Integral los sostenedores del fusible para las conexiones seguras a las baterías de plomo

Cocodrilo conduce con Integral los sostenedores del fusible para las conexiones seguras a las baterías de plomo

no me gusta el fuego.  Me disgusta especialmente incendios en mi tienda y mi saco de dormir. Este instructable detalla los pasos utiliza para crear un par de cocodrilo conduce con portafusibles integral para que lo conectes con el caimán lleva está p
Por qué las bayas con perlas

Por qué las bayas con perlas

Este acerca de cómo ellos Berries Smoothie es increíble. Es perfecto para este día y refrescarse en la piscina del kiddie de vecinos. ADVERTENCIA: sus amigos se convertirá en adictos y siempre pedirá que hacen de este, tan en el lado negativo que no
Árbol de Navidad desde teléfono: no codificación requerida interruptor de red utilizando la partícula fotón y IFTTT hacer

Árbol de Navidad desde teléfono: no codificación requerida interruptor de red utilizando la partícula fotón y IFTTT hacer

Un interruptor accionado por una partícula fotón y IFTTT. Funcionar cualquier dispositivo (árbol de Navidad!) en tu casa desde tu teléfono! O desde twitter! o basado en el tiempo en su ubicación! Con ninguna codificación y mínima soldadura habilidad
Corona del laser

Corona del laser

Me encantan algunas de las cosas de vestir nuevo que está apareciendo en Adafruit, Hackaday y hacer la revista. Cuando vi nuevo 60 LED anillo de Neopixel de Adafruit, sabía exactamente lo que quería construir para mis hijas... Había hecho una tentati
Escudo del Motor V2 de codificación Tutorial de semillas

Escudo del Motor V2 de codificación Tutorial de semillas

En este Intructable a hablar sobre un problema común en la programación, el método de arriba hacia abajo de la programación y aprender a controlar el Motor de Seeed protector V2.0 para el Arduino Uno. Así permite ir directamente a él.Y de mis proyect
Disuasión del animal doméstico - manténgalos alejados de las zonas de límites

Disuasión del animal doméstico - manténgalos alejados de las zonas de límites

El problema: nuestro gato disfruta tratando de "pescar" en nuestro acuario. Hay dos soluciones en el mercado para disuadir a una mascota de este tipo de cosas pero son caros y feos. Se me ocurrió algo asequible y discreta, y cabe fácilmente en n
Semáforo de Control de montaje y conexiones VAC 120

Semáforo de Control de montaje y conexiones VAC 120

el propósito de este Instructable es mostrar cómo fabricar un montaje y un tablero de Control de semáforo AC.Por favor VOTE. Más allá de la zona de confort!Esta es mi primera vez instalar un tablero de control la construcción de cualquier tipo y reac
Esqueletos de escalar las paredes de la casa

Esqueletos de escalar las paredes de la casa

¿Así que quieres ser de la casa (Mieda) fresca en la calle este Halloween, pero no sólo cómo poner su decoraciones al aire libre en la parte superior? Por qué no añadir un toque real y tiene un enjambre de esqueletos escalar las paredes de su casa en
Mac Pro polvo prueba caso - corte Laser

Mac Pro polvo prueba caso - corte Laser

Un buen amigo mío hace un montón de proyecciones polvorienta con su nueva Mac Pro torre. Me preguntó si yo podría construir lo algo para mantener el polvo fuera así que me puse a trabajar. Tengo una tienda de madera y un cortador láser que yo he esta
Realidad aumentada fenomenal nos permite ver cómo las cosas nos miran!

Realidad aumentada fenomenal nos permite ver cómo las cosas nos miran!

En mi infancia descubrí un interesante fenómeno: si conectado una fuente de luz a un receptor de televisión suficientemente amplificada, y saludó la luz por delante de una cámara de vídeo, pude obtener la luz para funcionar como una pantalla 3D de re
Cómo ejecutar un reloj eléctrico de batería de las pilas

Cómo ejecutar un reloj eléctrico de batería de las pilas

Pocos proyectos electrónicos son tan simples como esta. Atraerá a quienes sacar una patada de extraer los últimos vestigios de la energía de baterías agotadas.Paso 1: Resumen Mayoría de los hogares tiene varios ejemplos de un reloj que contiene al ti
CO2 Refrigerador de agua del Laser

CO2 Refrigerador de agua del Laser

Refrigerador de agua de láser de CO2Tubos de láser de CO2 se enfrían o bombeo de agua a través del tubo. Esto es necesario para prolongar la vida útil del tubo que de otra manera sobrecalentarse y perder rápidamente energía y eventualmente dejar de f