PrettyPrint Array ?

  • Thread starter Christer Nilsson
  • Start date
C

Christer Nilsson

I'm trying to make my own simple assert, but have problem displaying
arrays.
assert "123", [1,2,[3]].to_s

Is there a method or function x, fullfilling these requirements
assert "[1,2,[3]]", [1,2,[3]].x
assert "[1,2,[3]]", x([1,2,[3]])
assert "1", x(1)
assert "a", x("a")
or some of them?

There is no problem with the comparison as
assert [1,2,[3]], [1,2,[3]]

The problem appears when displaying different values:
assert [1,2,[3]], [1,2,3]

...
expect: 123
actual: 123
...

which is not very helpful.

This is the definition of my assert:

def assert(expect, actual)
expect==actual ? print(".") : print("\nexpect: #{expect}\nactual:
#{actual}\n")
end

This is probably very easy, but I haven't found anything.

Christer
 
M

Michael Fellinger

--nextPart6756536.hdDG7udLqA
Content-Type: text/plain;
charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

Hey Christer,

try [1,2,[3]].flatten.to_s

it solves this one:
assert [1,2,3], [1,2,[3]].flatten
and probably is the easiest solution :)

however - assert not only compares and checks strings - you can use it for =
all=20
other Objects as well... so "123", [1,2,[3]].to_s looks to me not that=20
obvious - but i don't know your approach and what this array should do -=20
sending out this advice and waiting for the pros to comment your post ^^

MfG
manveru

Am Sonntag, 4. Dezember 2005 14:50 schrieb Christer Nilsson:
I'm trying to make my own simple assert, but have problem displaying
arrays.
assert "123", [1,2,[3]].to_s

Is there a method or function x, fullfilling these requirements
assert "[1,2,[3]]", [1,2,[3]].x
assert "[1,2,[3]]", x([1,2,[3]])
assert "1", x(1)
assert "a", x("a")
or some of them?

There is no problem with the comparison as
assert [1,2,[3]], [1,2,[3]]

The problem appears when displaying different values:
assert [1,2,[3]], [1,2,3]

...
expect: 123
actual: 123
...

which is not very helpful.

This is the definition of my assert:

def assert(expect, actual)
expect=3D=3Dactual ? print(".") : print("\nexpect: #{expect}\nactual:
#{actual}\n")
end

This is probably very easy, but I haven't found anything.

Christer

--nextPart6756536.hdDG7udLqA
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)

iD8DBQBDkvlHMdQeL6eBxhIRAuguAJwM9nUMv3CBa+B0EfjMGVFemoHLFACgmhqj
F+Finht6O1eT9m5hJEKedGY=
=U41F
-----END PGP SIGNATURE-----

--nextPart6756536.hdDG7udLqA--
 
R

Ross Bamford

I'm trying to make my own simple assert, but have problem displaying
arrays.

[...]

The problem appears when displaying different values:
assert [1,2,[3]], [1,2,3]

..
expect: 123
actual: 123
..

which is not very helpful.

I'm not sure if this is what you're after, but if it's just about the
displayed values try:

def assert(expect, actual)
print (expect == actual ? "." : "\nexpect #{expect.inspect}\nactual:
#{actual.inspect}\n")
end

which yields:

irb(main):029:0> assert([1,[2,3]], [1,2,3])

expect [1, [2, 3]]
actual: [1, 2, 3]
=> nil

Is that what you're after?
 
C

Christer Nilsson

Fellinger said:
try [1,2,[3]].flatten.to_s

No, I do not want to hide the difference.
def assert(expect, actual)
print (expect == actual ? "." : "\nexpect #{expect.inspect}\nactual:
#{actual.inspect}\n")
end

Yes, "inspect" is exactly what I needed! Thank you very much!

Christer
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
474,199
Messages
2,571,045
Members
47,643
Latest member
ashutoshjha_1101

Latest Threads

Top