phpunit assertEquals dla 2 tablic tak, że kolejność elementów tablic nie gra roli. |
phpunit assertEquals dla 2 tablic tak, że kolejność elementów tablic nie gra roli. |
17.09.2016, 22:54:53
Post
#1
|
|
Grupa: Zarejestrowani Postów: 460 Pomógł: 49 Dołączył: 5.06.2011 Ostrzeżenie: (0%) |
Chodzi mi o porównywanie dwóch tablic w phpunit. Ale wynik ma być pozytywny, gdy tablice mają te same elementy, a kolejność tych elementów jest taka sama lub inna. Czyli tablice mają być traktowane jak takie zbiory, w których kolejności nie ma. W matematyce to się nazywa zbiorem w odróżnieniu od ciągu.
Czy to rozwiązanie jest ok, czy istnieją jakieś lepsze udokumentowane sposoby? http://stackoverflow.com/a/28189403/5673289 Z góry dziękuję |
|
|
18.09.2016, 01:11:54
Post
#2
|
|
Grupa: Zarejestrowani Postów: 428 Pomógł: 77 Dołączył: 10.07.2011 Skąd: Warszawa Ostrzeżenie: (0%) |
(z palca) Ten post edytował kpt_lucek 18.09.2016, 01:12:41 -------------------- Cytat There is a Bundle for that Lukas Kahwe Smith - October 31th, 2014 |
|
|
18.09.2016, 10:42:18
Post
#3
|
|
Grupa: Zarejestrowani Postów: 460 Pomógł: 49 Dołączył: 5.06.2011 Ostrzeżenie: (0%) |
Dziękuje za odpowiedź, @kpt_lucek. Trzeba sprawdzić array_diff w obie strony, czyli array_diff($a, $b) oraz array_diff($b, $a). Oba wyniki mają dawać pusta tablicę.
Ale mnie zastanawia, czy dla TDD lepiej jest pisać taką funkcję porównania, czy lepiej stosować nieudokumentowany parametr $canonicalize. |
|
|
18.09.2016, 17:10:05
Post
#4
|
|
Grupa: Zarejestrowani Postów: 428 Pomógł: 77 Dołączył: 10.07.2011 Skąd: Warszawa Ostrzeżenie: (0%) |
I nigdzie nie widzę problemu takiego użycia. Przy okazji, gdy chcesz sprawdzić czy pod danym kluczem znajduje się ta sama wartość w obu tablicach to możesz zrobić to tak:
Gdy przy okazji chcesz sprawdzić kolejność kluczy, wraz z typami wartości, to robisz to tak:
Ogólnie, to nie potrzebnie sobie życie utrudniasz (z palca) Ten post edytował kpt_lucek 18.09.2016, 17:10:21 -------------------- Cytat There is a Bundle for that Lukas Kahwe Smith - October 31th, 2014 |
|
|
20.09.2016, 03:24:44
Post
#5
|
|
Grupa: Zarejestrowani Postów: 460 Pomógł: 49 Dołączył: 5.06.2011 Ostrzeżenie: (0%) |
Napisałem taką funkcję:
Ale stosowanie nieudokumentowanego parametru $canonicalize ma pewną zaletę, mianowicie w przypadku fail wyświetla poszczególne róznice między tablicami. Przy takich pisanych ręcznie funkcjach trzeba by takie zachowanie dopisać. Ten post edytował trzczy 20.09.2016, 03:27:09 |
|
|
Wersja Lo-Fi | Aktualny czas: 17.04.2024 - 13:15 |